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

Исходное сообщение
"sudo и net::SSH::Perl"

Отправлено morzo , 14-Мрт-07 10:43 
Столкнулся с фактом:
#!/usr/bin/perl
use Socket;
use Net::SSH::Perl;
$host = "host";
my $ssh = Net::SSH::Perl->new($host, debug=>1, use_pty=>11);
$ssh->login("username", "pass");
@cd = $ssh->cmd("/usr/local/bin/sudo /bin/bash");
print "cmd result = @cd";

cmd result = Password:

Вопросы:
- Можно ли как нибудь передать пароль через ssh туннель ?
- Если нет, то что можно сделать чтобы в sudoers (sudo) не выставлять флаг NOPASSWD ?
- Как обойти sudo используя ssh туннелирование?


Содержание

Сообщения в этом обсуждении
"sudo и net::SSH::Perl"
Отправлено pavel_simple , 14-Мрт-07 10:44 
expect


"sudo и net::SSH::Perl"
Отправлено chip , 14-Мрт-07 11:04 
>Столкнулся с фактом:
>#!/usr/bin/perl
>use Socket;
>use Net::SSH::Perl;
>$host = "host";
>my $ssh = Net::SSH::Perl->new($host, debug=>1, use_pty=>11);
>$ssh->login("username", "pass");
>@cd = $ssh->cmd("/usr/local/bin/sudo /bin/bash");
>print "cmd result = @cd";
>
>cmd result = Password:
>
>Вопросы:
> - Можно ли как нибудь передать пароль через ssh туннель ?
>
> - Если нет, то что можно сделать чтобы в sudoers (sudo)
>не выставлять флаг NOPASSWD ?
> - Как обойти sudo используя ssh туннелирование?

Стоит посмотреть в сторону empty, если она не устроит своими возможностями - на компбайн expect


"sudo и net::SSH::Perl"
Отправлено morzo , 19-Мрт-07 12:58 
>>Столкнулся с фактом:
>>#!/usr/bin/perl
>>use Socket;
>>use Net::SSH::Perl;
>>$host = "host";
>>my $ssh = Net::SSH::Perl->new($host, debug=>1, use_pty=>11);
>>$ssh->login("username", "pass");
>>@cd = $ssh->cmd("/usr/local/bin/sudo /bin/bash");
>>print "cmd result = @cd";
>>
>>cmd result = Password:
>>
>>Вопросы:
>> - Можно ли как нибудь передать пароль через ssh туннель ?
>>
>> - Если нет, то что можно сделать чтобы в sudoers (sudo)
>>не выставлять флаг NOPASSWD ?
>> - Как обойти sudo используя ssh туннелирование?
>
>Стоит посмотреть в сторону empty, если она не устроит своими возможностями -
>на компбайн expect

Большое спасибо! EXPECT рулит ! А вот решение кому интересно:
my $exp = Expect->spawn(
[
qr'Password: $', sub {
                        my $self = shift;
                        $self->send("somePASS\n");
                        exp_continue;
                     }
])
or die "Cannot spawn password !!!\n";
а далее выполняем
$ssh->cmd("/usr/local/bin/sudo someCOMMAND");


"sudo и net::SSH::Perl"
Отправлено b0br , 25-Фев-09 14:02 
>[оверквотинг удален]
>                        $self->send("somePASS\n");
>            
>          
> exp_continue;
>            
>         }
>])
>or die "Cannot spawn password !!!\n";
>а далее выполняем
>$ssh->cmd("/usr/local/bin/sudo someCOMMAND");

Ниасилил. Мне больше подходит:

~]$ echo "Wfee9XaL" |sudo -H -S bash -c  "whoami"
root