![]() |
|
![]() ![]() ![]() |
|
CTYDEHT |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 27 Регистрация: 17.10.2004 Где: Восточная Европа Репутация: нет Всего: нет |
Имеется скрипт perl, который должен перегрузить httpd.conf.
Но при вызове system ("httpd graceful"); ничего не происходит, не ошибки, ни перезагрузки... Я думаю, может какая-то проблема с правами? |
|||
|
||||
DENNN |
|
|||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 3878 Регистрация: 27.3.2002 Где: Москва Репутация: 2 Всего: 43 |
А почему не
apachectl restart ? |
|||
|
||||
CTYDEHT |
|
||||||
![]() Новичок Профиль Группа: Участник Сообщений: 27 Регистрация: 17.10.2004 Где: Восточная Европа Репутация: нет Всего: нет |
DENNN, ну во первых вот например при таком вводе дает такой вывод, т.е. при запросе через SSH команды apachectl меня посылает на httpd и при вводе apachectl ничего не происходи и по больщому счету это то же самое.
А во вторых я попробовал вызвать apachectl restart через скрипт, но также ничего не произошло... а вот после вызова такого кода:
выдало такое:
С чего бы это? Это сообщение отредактировал(а) CTYDEHT - 12.1.2006, 18:21 |
||||||
|
|||||||
Sun |
|
|||
Account removed ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 1611 Регистрация: 14.8.2002 Репутация: 2 Всего: 48 |
Graceful restart происходит когда процессам httpd передается сигнал HUP. Можно даже так
killall -HUP httpd Не бойтесь комманды killall. Она всего лишь посылает сигнал HUP всем процессам httpd.
С того что путь к httpd надо указать. -------------------- Account removed |
|||
|
||||
CTYDEHT |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 27 Регистрация: 17.10.2004 Где: Восточная Европа Репутация: нет Всего: нет |
Существует ли возможность сделать так, чтоб какой-то определенный скрипт запускался от имени определенного пользователя (или скрипты определенного аккаунта на сервере), а все остальные по прежнему от nobody:nobody? Тогда я бы ског настроить sudo...
|
|||
|
||||
Sun |
|
|||
Account removed ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 1611 Регистрация: 14.8.2002 Репутация: 2 Всего: 48 |
Делаем так, в файле /etc/sudoers пишем
nobody ALL = NOPASSWD:path_to_my_admin_script.pl the_secret_word Где path_to_my_admin_script.pl путь к скрипту который будет выполнять перезагрузку. В качестве параметра он будет прнимать секретное слово. Если оно будет равно the_secret_word, то производим перезагрузку, если нет то ничего не делаем. Дальше ты в своем CGI скрипте вставляешь вызов `sudo path_to_my_admin_script.pl the_secret_word` и радуешься жизни -------------------- Account removed |
|||
|
||||
CTYDEHT |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 27 Регистрация: 17.10.2004 Где: Восточная Европа Репутация: нет Всего: нет |
Попытался я настроить 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 |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 27 Регистрация: 17.10.2004 Где: Восточная Европа Репутация: нет Всего: нет |
Проблема решилась.
Спасибо всем, кто помог. Sudo не работал потому что не получал ID текущего юзера. Нужно было выставить права `chmod 4111 /usr/bin/sudo`. Тогда в sudoers нужно указывать не nobody, а имя юзера на чьем аккаунте выполняется скрипт. Это сообщение отредактировал(а) CTYDEHT - 16.1.2006, 09:26 |
|||
|
||||
![]() ![]() ![]() |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Администрирование Web серверов и Web служб | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |