Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум программистов > Perl: Общие вопросы > вызов httpd graceful через перл |
Автор: CTYDEHT 12.1.2006, 13:39 | ||
Это собственно говоря все, что нужно сделать. Перегрузить httpd.conf, когда вызывается скрипт через браузер. Я написал такой скриптик:
Но вот проблема... браузеру ничего не выводится, ошибки не происходит, но и httpd не перегружается... Хотя например ls работает нормально, показывает содержимое папки. Кто-то может сказать в чем может быть дело? |
Автор: sharq 12.1.2006, 14:56 | ||
CTYDEHT скорей всего ошибка какая-то вываливается, может прав нет или нет возможности перезагруpить в данный момент виртуальный сервер. Поэтому пробуй так, чтобы увидеть и ошибки:
![]() |
Автор: CTYDEHT 12.1.2006, 18:16 | ||
Сделал, вот что вывело:
Странно... почему? Кстати я также обнаружил, что не работает и 'cd' У меня есть root доступ... Может где что поменять нужно? sharq, вот моя ася 222 697 257, стукни пожалуйста |
Автор: Sadok 13.1.2006, 12:58 |
CTYDEHT Так чтобы перегрузиь сервак, нужны рутовые права, а у тебя скрипт выполняется от какого-нить nobody:nobody (или от чего там сервер запущен). Такчто sudo натрави на него. |
Автор: CTYDEHT 13.1.2006, 17:02 |
Sadok Спасибо за совет. У меня действительно скрипты запускаются от nobody:nobody. Но здесь есть несколько ньюансов. Я не пользовался никогда sudo, но насколько я порылся в интернете я понял, что можно сделать что-то вроде авторизации, т.е. в скрипте указать логин и пароль юзера, который имеет рутовые права и потом от его имени выполнять команды. Такой вариант хоть и подходит, но не очень, потому-что если некоторые "злые дяди" доберутся до этого файла, то сервер будет в их руках. Существует ли возможность сделать так, чтоб какой-то определенный скрипт запускался от имени определенного пользователя, а все остальные по прежнему от nobody:nobody? Или какой-то другой способ, чтоб в самом скрипте никаких "интимных" данных не указывалось и плюс к этому все остальные юзеры и аккаунты по прежнему выполняли скрипты от nobody:nobody. |
Автор: CTYDEHT 14.1.2006, 13:39 |
Попытался я настроить sudoers следующим образом nobody ALL=NOPASSWD: /usr/sbin/httpd graceful secword а мне выдало Sorry, sudo must be setuid root. Я подумал, что я сделал что-то не так, но то же сообщение было и после: nobody ALL=NOPASSWD: /usr/sbin/httpd graceful secword nobody ALL=NOPASSWD: /usr/sbin/httpd graceful nobody localhost=NOPASSWD: /usr/sbin/httpd graceful и даже после: nobody ALL=(ALL) ALL Люди, кто пользовался sudo, подскажите, в чем может быть косяк??? |
Автор: CTYDEHT 15.1.2006, 19:47 |
Проблема решилась. Спасибо всем, кто помог. |
Автор: BlackLFL 15.1.2006, 23:04 |
как она решилась, напишите тут, чтобы другие потом не задавали подобный вопрос ... |
Автор: CTYDEHT 16.1.2006, 09:25 |
Sudo не работал потому что не получал ID текущего юзера. Нужно было выставить права `chmod 4111 /usr/bin/sudo`. Тогда в sudoers нужно указывать не nobody, а имя юзера на чьем аккаунте выполняется скрипт. |