LINUX.ORG.RU

Нужна помощь! suidperl + system(«sudo -u ...


0

0

Здравствуйте! Пытаюсь сообразить как мне можнно выполнить perl-скрипт:
> ls -l | grep suidexec
-rwsr-xr-x 1 root root 2402 Май 14 22:07 suidexec.pl

Его содержимое:
#!/usr/bin/perl

print "Content-type: text/plain; charset=UTF-8\n\n";
$ENV{'PATH'} = '/bin:/usr/bin';
delete @ENV{'IFS', 'CDPATH', 'ENV', 'BASH_ENV'};

system("sudo -u vasiya ls /home/vasiya 2>&1");

----
> ./suidexec.pl
Content-type: text/plain; charset=UTF-8

vasiya's password:

Так вот, он запрашивает пароль. Как мне сделать чтобы он этого не делал. Ведь выполняется он от имени root'a?

Ответ на: Re: Нужна помощь! suidperl + system("sudo -u ... от swizard

Re: Нужна помощь! suidperl + system("sudo -u ...

Да нет, чего-то не помогает. Вообще моя мечта, это исполнить какой-либо файл от имени другого пользователя, и чтобы он не спрашивал пароль. Как я не бьюсь уже не первый день над этой проблемой, ничего не помогает :(

anterior ()
Ответ на: Re: Нужна помощь! suidperl + system("sudo -u ... от swizard

Re: Нужна помощь! suidperl + system("sudo -u ...

Теперь и я могу... но так не честно! Теперь любой пользователь может выполнить sudo rm -rf / :(

Вот мой sudoers:
#Defaults always_set_home
#Defaults env_reset
#Defaults targetpw
Defaults env_keep="DISPLAY"
#Defaults root_sudo
ALL ALL = (ALL) ALL
root ALL=(ALL) ALL
ALL ALL = NOPASSWD: ALL

anterior ()
Ответ на: Re: Нужна помощь! suidperl + system("sudo -u ... от anterior

Re: Нужна помощь! suidperl + system("sudo -u ...

> ALL ALL = NOPASSWD: ALL

Жесть =) Почитай man 5 sudoers, можно sudo без пароля разрешить только для одного юзера и только для одной команды

swizard ()

Re: Нужна помощь! suidperl + system("sudo -u ...

> Ведь выполняется он от имени root'a?

щас :) сделай print `id` у убедись в обратном

phoenix ★★★★ ()

Re: Нужна помощь! suidperl + system("sudo -u ...

Всем спасибо большое! Вот мое счастье, я его нашел:
lighttpd ALL = (%muausers) NOPASSWD : ALL

:)

Это даже лучше чем я предполагал. Зачем мне тогда к черту этот suidperl! sudo рулит, линух форева! ;)

anterior ()
Ответ на: Re: Нужна помощь! suidperl + system("sudo -u ... от anterior

Re: Нужна помощь! suidperl + system("sudo -u ...

> Всем спасибо большое! Вот мое счастье, я его нашел:

> lighttpd ALL = (%muausers) NOPASSWD : ALL

Это неправильный способ.

Правильный - делать, как вначале, но сказать $< = $> перед system (да, да, именно так ;-)

man perlvar и все такое.

anonymous ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.