Согласование PHP и su (Как сделать чтобы su получал пароль посредством stdin)

Модератор: Модераторы разделов

Аватара пользователя
frost666dark
Сообщения: 346
ОС: archlinux

Согласование PHP и su

Сообщение frost666dark »

Буду очень признателен если подскажите как сделать чтобы команда su получала пароль посредством stdin, введенного в поле PHP скрипта?
Т.е. нужно чтобы shell скрипт выполнялся от рута и только от рута :)
А вот как получить этот текст с паролем из stdin и записать в поле ввода пароля su непойму :(
Я надеюсь что более менее понятно разьяснил проблему :)

Или если будут какие то более практичные и рациональные решения, буду очень благодарен :)
Заранее спасибо.
PS: Слакварщики приглашаются slackware@conference.jabber.ru
Спасибо сказали:
Аватара пользователя
Uncle_Theodore
Сообщения: 3339
ОС: Slackware 12.2, ArchLinux 64

Re: Согласование PHP и su

Сообщение Uncle_Theodore »

Ох, друг мой, какой ты настойчивый...
Ну хорошо, вот тебе ужасный и дебильный хак, который можно использовать только если система тебе не дорога, и ты истинный искатель приключений...

Создаем следующий скрипт

Код: Выделить всё

#!/usr/bin/expect -f
# script passcript.sh -- start as user

set pass "пароль_рута"
spawn /bin/su -
expect "Password:"
send "$pass\n"
expect "root@laptop:~"
send "whoami\n"
send "ls -l\n"
send "exit\n"
expect eof


Сделай его исполняемым и прогони от имени пользователя из пользовательской директории. Заметь, что скрипт сам разбирается со сменой пользователя на рута, и что команды "whoami" и "ls -l" выполнены от имени рута в его домашней директории. После чего скрипт аккуратненько выходит.

Точно так же его можно применить и для связи через ssh (замени "/bin/su" на то, что тебе надо, "/usr/bin/ssh" или что там...)

В общем, плохой совет ты получил... :)
Спасибо сказали:
Аватара пользователя
frost666dark
Сообщения: 346
ОС: archlinux

Re: Согласование PHP и su

Сообщение frost666dark »

Нет, все таки мой выбор конечно sudo :)

Но вот загвоздка... Прописал в /etc/sudoers:

apache Apache = NOPASSWD: [имя команды] в моем случае это скрипт...

Но вот из PHP sudo упорно нехочет запускаться... :( Может как по другому надо строку в sudoers прописать? даже незнаю...

Каким способом можно проверить какие ошибки выходят при попытке выполненя sudo апачем? Кроме написания php скрипта, этим я незанимаюсь, мне всего навсего нужно выяснить выполняет ли апач sudo или нет... :)
PS: Слакварщики приглашаются slackware@conference.jabber.ru
Спасибо сказали:
Аватара пользователя
frost666dark
Сообщения: 346
ОС: archlinux

Re: Согласование PHP и su

Сообщение frost666dark »

Ээээ... вроде ложная тревога :)
Просто прописал:

apache ALL= NOPASSWD: [имя команды]

Честно сказать что то испугался этого параметра ALL и решил что это название группы :))) Видимо нет, но что это никак непойму...
PS: Слакварщики приглашаются slackware@conference.jabber.ru
Спасибо сказали:
Аватара пользователя
Uncle_Theodore
Сообщения: 3339
ОС: Slackware 12.2, ArchLinux 64

Re: Согласование PHP и su

Сообщение Uncle_Theodore »

frost666dark писал(а):
02.04.2007 00:48
Ээээ... вроде ложная тревога :)
Просто прописал:

apache ALL= NOPASSWD: [имя команды]

Честно сказать что то испугался этого параметра ALL и решил что это название группы :))) Видимо нет, но что это никак непойму...

Это имя хоста.
man sudoers
Спасибо сказали: