URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID9
Нить номер: 8970
[ Назад ]

Исходное сообщение
"ssh && sudo"

Отправлено localhorst , 20-Дек-10 19:50 
Есть два сервера, обзовем их srv1 и srv2. На обоих серверах есть пользователь USER, с правами судоериться под других пользователей. На сервере srv2 есть пользователь CLI.
Пользователь USER может ходить по ssh с сервера srv1 на сервер srv2 без пароля, т.к. есть ключи.
Стандартная последовательность действий:

user@srv1 ~ $ ssh srv2
Last login: Mon Dec 20 19:14:30 2010 from srv1
user@srv2 ~ $ sudo -s -H -u cli
Password:
cli@srv2 /home/user $

Тут все понятно.
Родилась идея сократить количество телодвижений до цели. Идея вот такая:

user@srv1 ~ $ ssh srv2 "sudo -s -H -u cli"

А выглядит оно на самом деле так:

user@srv1 ~ $ ssh srv2 "sudo -s -H -u cli"
Password:(его почему-то видно)

whoami
cli
set|egrep 'USER|SUDO_USER|PS'
GROUPS=()
PS4='+ '
SUDO_USER=user
USER=cli
set|egrep 'HOSTNAME'
HOSTNAME=srv2


То есть ни тебе промпта, ни истории, хотя шелл есть:
set|grep SHELL
SHELL=/bin/bash
SHELLOPTS=braceexpand:hashall:interactive-comments

Если кто-то заморачивался подобным - подскажите, это вообще реально?



Содержание

Сообщения в этом обсуждении
"ssh && sudo"
Отправлено shadow_alone , 20-Дек-10 20:31 
Вообще-то sudo без tty не должно работать.
обычно на такие команды пишется:
sudo: sorry, you must have a tty to run sudo

Во отсюда и такая проблема.
Что за ОС стоит?

И вообще, не проще дать вход на srv2 для пользователя cli


"ssh && sudo"
Отправлено localhorst , 20-Дек-10 21:10 
> Вообще-то sudo без tty не должно работать.
> обычно на такие команды пишется:
> sudo: sorry, you must have a tty to run sudo
> Во отсюда и такая проблема.
> Что за ОС стоит?
> И вообще, не проще дать вход на srv2 для пользователя cli

FreeBSD 6.4
На самом деле не проще, т.к. серверов много и юзеров типа "cli" на них тоже много, и они принадлежат разным людям.
Ошибок оно не пишет (меня это тоже смутило), но и работает как-то не ахти...


"ssh && sudo"
Отправлено Aquarius , 20-Дек-10 20:56 
>[оверквотинг удален]
> PS4='+ '
> SUDO_USER=user
> USER=cli
> set|egrep 'HOSTNAME'
> HOSTNAME=srv2
> То есть ни тебе промпта, ни истории, хотя шелл есть:
> set|grep SHELL
> SHELL=/bin/bash
> SHELLOPTS=braceexpand:hashall:interactive-comments
> Если кто-то заморачивался подобным - подскажите, это вообще реально?

на сколько изменяет мне мой склероз, через ssh невозможно запустить suid-программы


"ssh && sudo"
Отправлено localhorst , 20-Дек-10 21:11 
>[оверквотинг удален]
>> SUDO_USER=user
>> USER=cli
>> set|egrep 'HOSTNAME'
>> HOSTNAME=srv2
>> То есть ни тебе промпта, ни истории, хотя шелл есть:
>> set|grep SHELL
>> SHELL=/bin/bash
>> SHELLOPTS=braceexpand:hashall:interactive-comments
>> Если кто-то заморачивался подобным - подскажите, это вообще реально?
> на сколько изменяет мне мой склероз, через ssh невозможно запустить suid-программы

Изменяет. Всяческие sudo, особенно, если они разрешены с NOPASSWORD возвращают результат таким образом на раз.


"ssh && sudo"
Отправлено localhorst , 20-Дек-10 21:43 
А ларчик просто открывался...
ssh -t srv2 "sudo -s -H -u cli"

"ssh && sudo"
Отправлено shadow_alone , 20-Дек-10 21:46 
> А ларчик просто открывался...
> ssh -t srv2 "sudo -s -H -u cli"

а я с самого начала сказал, дело в отсутствии tty

-t      Force pseudo-tty allocation.