The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

форумы  помощь  поиск  регистрация  майллист  вход/выход  слежка  RSS
"Функция exec() PHP, проблема с привилегиями"
Вариант для распечатки  
Пред. тема | След. тема 
Форумы OpenNET: Виртуальная конференция (Public)
Изначальное сообщение [ Отслеживать ]

"Функция exec() PHP, проблема с привилегиями"  
Сообщение от demob on 03-Сен-08, 02:46 
Функция exec() PHP, проблема с привилегиями

Вобщем ситуёвина в следующем, есть 3 строки на php
Код:

exec('killall ventrilo_srv');
echo exec("screen -dmS /ecsys/vnt/ventrilo_srv -d");
echo exec('whoami');

Общая задача скрипта запускать\останавливать\перезапускать ventrilo_srv из браузера.

ventrilo_srv запущен.

Выдают следущее
error_log
ventrilo_srv: no process killed
В браузере
Must run suid root for multiuser support.
apache

Сервер под Fedorcore6+plesk
Вопрос как заставить работать первую и вторую строку ?
С screen -d -m -S экспериментировал не помогло, явно проблема с привилегиями для apache но как решить эту задачу не знаю.
Только плиз подробней я совсем алень в никсах.

Высказать мнение | Ответить | Правка | Cообщить модератору

 Оглавление

Сообщения по теме [Сортировка по времени | RSS]


1. "Функция exec() PHP, проблема с привилегиями"  
Сообщение от Pahanivo email(ok) on 03-Сен-08, 07:49 
Обычно сервак крутится под своим юзером - не root/
А килы работают тока для рута или вледельца.

Написать скрипт на шеле. Выставить оунером рута, выставить на него setuid bit.
И запускать не команду килл - а сам скрипт, передавая ему параметры.

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

2. "Функция exec() PHP, проблема с привилегиями"  
Сообщение от demob on 03-Сен-08, 11:50 
>Обычно сервак крутится под своим юзером - не root/
>А килы работают тока для рута или вледельца.
>
>Написать скрипт на шеле. Выставить оунером рута, выставить на него setuid bit.
>
>И запускать не команду килл - а сам скрипт, передавая ему параметры.
>

Шел скрипт это я так понимаю .sh ? встречал подобное решение у хостера геймсерверов.
Как я писал выше для меня никс это ежедневный ребус, и мне бы маленькие примеры.
Выставить оунером рута-сделать то то
выставить на него setuid bit- сделать то то

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

3. "suid shell scripts"  
Сообщение от Andrey Mitrofanov on 03-Сен-08, 12:24 
>Написать скрипт на шеле. Выставить оунером рута, выставить на него setuid bit.

Говорят, "в современных ОС suid бит на шел-скриптах не имеет никакого эффекта"...
G:(suid shell scripts)~

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

4. "sudo"  
Сообщение от Andrey Mitrofanov on 03-Сен-08, 12:34 
>exec('killall ventrilo_srv');
>echo exec("screen -dmS /ecsys/vnt/ventrilo_srv -d");
>Вопрос как заставить работать первую и вторую строку ?
>С screen -d -m -S экспериментировал не помогло, явно проблема с привилегиями
>для apache но как решить эту задачу не знаю.
>Только плиз подробней я совсем алень в никсах.

1) Поставить sudo.

2) Настроить sudo, файл /etc/sudoers.
User_Alias      VENT = apache, ivanov, petrov
Cmnd_Alias VENTSTOP = /usr/bin/killall ventrilo_srv
Cmnd_Alias VENTSTART = /usr/bin/screen -dmS /ecsys/vnt/ventrilo_srv -d
Cmnd_Alias VENTSVC = VENTSTOP, VENTSTART
VENT     ALL=NOPASSWD: VENTSVC

(!!) Полные пути к killall и screen в строках ##2 и 3 написать -- так надо.

3) Пускать команды через sudo (если из-под апача ничего не помешает?):

~exec('sudo killall ventrilo_srv');
~echo exec("sudo screen -dmS /ecsys/vnt/ventrilo_srv -d");

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

5. "sudo"  
Сообщение от demob on 03-Сен-08, 13:07 
>[оверквотинг удален]
>Cmnd_Alias VENTSVC = VENTSTOP, VENTSTART
>VENT     ALL=NOPASSWD: VENTSVC
>
>(!!) Полные пути к killall и screen в строках ##2 и 3
>написать -- так надо.
>
>3) Пускать команды через sudo (если из-под апача ничего не помешает?):
>
>~exec('sudo killall ventrilo_srv');
>~echo exec("sudo screen -dmS /ecsys/vnt/ventrilo_srv -d");

error_log

>>> sudoers file: syntax error, line 3 <<<

Cannot open audit interface - aborting.


Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

6. "sudo"  
Сообщение от demob on 03-Сен-08, 13:34 
может проблема в том что запуск через ssh выглядит так ?
# cd /ecsys/vnt
# /ecsys/vnt/ventrilo_srv -d

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

7. "sudo"  
Сообщение от demob on 03-Сен-08, 16:12 
>может проблема в том что запуск через ssh выглядит так ?
># cd /ecsys/vnt
># /ecsys/vnt/ventrilo_srv -d

С помощью мата и мануала избавился от предедущих ошибок но появилась новая

Cannot open audit interface - aborting


Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

8. "sudo"  
Сообщение от tutitu on 11-Фев-09, 18:41 
>>может проблема в том что запуск через ssh выглядит так ?
>># cd /ecsys/vnt
>># /ecsys/vnt/ventrilo_srv -d
>
>С помощью мата и мануала избавился от предедущих ошибок но появилась новая
>
>
>Cannot open audit interface - aborting

Как побороть Cannot open audit interface - aborting?

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

Архив | Удалить

Индекс форумов | Темы | Пред. тема | След. тема
Оцените тред (1=ужас, 5=супер)? [ 1 | 2 | 3 | 4 | 5 ] [Рекомендовать для помещения в FAQ]




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру