Как правильно раздать права?

И всё прочее, что касается HTML
Правила форума
Убедительная просьба юзать теги [code] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
Telegazik
рядовой
Сообщения: 23
Зарегистрирован: 2008-04-12 11:04:26

Как правильно раздать права?

Непрочитанное сообщение Telegazik » 2009-03-06 9:58:44

Тут небольшая проблема, может кто подскажет как правильнее сделать.
Есть страничка, на ней забивает мак адрес абонента, скрпит все пишет в базу mysql. Надо чтобы скрипт добавлял новый мак в лист статик ip днср и рестартовал службу. Но проблема упирается в правильную раздачу прав, ведь днсп работает под другим юзером, а скрипт под www:www как я понимаю. Как реализовать?

Хостинговая компания Host-Food.ru
Хостинг HostFood.ru
 

Услуги хостинговой компании Host-Food.ru

Хостинг HostFood.ru

Тарифы на хостинг в России, от 12 рублей: https://www.host-food.ru/tariffs/hosting/
Тарифы на виртуальные сервера (VPS/VDS/KVM) в РФ, от 189 руб.: https://www.host-food.ru/tariffs/virtualny-server-vps/
Выделенные сервера, Россия, Москва, от 2000 рублей (HP Proliant G5, Intel Xeon E5430 (2.66GHz, Quad-Core, 12Mb), 8Gb RAM, 2x300Gb SAS HDD, P400i, 512Mb, BBU):
https://www.host-food.ru/tariffs/vydelennyi-server-ds/
Недорогие домены в популярных зонах: https://www.host-food.ru/domains/

zg
полковник
Сообщения: 5845
Зарегистрирован: 2007-12-07 13:51:33
Откуда: Верх-Нейвинск

Re: Как правильно раздать права?

Непрочитанное сообщение zg » 2009-03-06 10:05:25

через судо

paradox
проходил мимо
Сообщения: 11620
Зарегистрирован: 2008-02-21 18:15:41

Re: Как правильно раздать права?

Непрочитанное сообщение paradox » 2009-03-06 10:05:53

system
вроде работал

Telegazik
рядовой
Сообщения: 23
Зарегистрирован: 2008-04-12 11:04:26

Re: Как правильно раздать права?

Непрочитанное сообщение Telegazik » 2009-03-06 13:02:22

system - это порт? Утилитка?
Односложный ответ очень трудно трактовать однозначно. Не могли бы вы пояснить свой ответ?

Аватара пользователя
skeletor
майор
Сообщения: 2548
Зарегистрирован: 2007-11-16 18:22:04

Re: Как правильно раздать права?

Непрочитанное сообщение skeletor » 2009-03-06 13:41:02

Я бы сделал так. Написал бы скрипт и запихнул бы его в крон по времени запуска каждую минуту. Этот скрипт по крону будет запускать от рута, собственно может выполнять добавление записей в dhcp и последующий рестарт демона. Будет файлик, в который будут заносится изменения о МАСе. А скрипт будет читать данные из файла, и добавлять\удалять записи. Естественно, нужна проверка на валидность добавляемых данных.

Telegazik
рядовой
Сообщения: 23
Зарегистрирован: 2008-04-12 11:04:26

Re: Как правильно раздать права?

Непрочитанное сообщение Telegazik » 2009-03-06 13:52:12

Интересное решение. Попробую так реализовать!
Спасибо за подсказку!

paradox
проходил мимо
Сообщения: 11620
Зарегистрирован: 2008-02-21 18:15:41

Re: Как правильно раздать права?

Непрочитанное сообщение paradox » 2009-03-06 14:53:44

как задали вопрос так и ответили
вы ж не сказали на каком языке у вас скрипт
system то функция выполнение команды
ищите в своем языке такую функцию и запускайте
в крайнем случае враппер всегда работал

Dmitriy_K
сержант
Сообщения: 200
Зарегистрирован: 2009-04-07 6:22:33
Откуда: г.Королёв

Re: Как правильно раздать права?

Непрочитанное сообщение Dmitriy_K » 2009-04-16 22:20:10

У меня вот тоже сходные проблемы. Сейчас завожу сайты на новый сервер FreeBSD. Поддержки кого-то, кто знал настройки исполнения скриптов нет. И вот нарвался на затык с правами на исполнение такого фрагмента:

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

function make_cache($filename)
   {
   global $common_data_server;
   $content=$this->body.$this->separator.$this->title.$this->separator.$this->keywords.$this->separator.$this->description;
   @mkdir($common_data_server."block_cache/block".$this->block_id."/");
   chmod($common_data_server."block_cache/block".$this->block_id."/",0777);
   $file=fopen($common_data_server."block_cache/block".$this->block_id."/".$filename,"w");
   fwrite($file,$content);
   fclose($file);
   chmod($common_data_server."block_cache/block".$this->block_id."/".$filename,0777);
   }
Я, конечно не знаток, но вижу команды создания директории и т.д.
Ошибки начинаются с первого "chmod" и до конца.
Я проверил права исполняемого здесь скрипта. Они высокие: на время тестирования мой пользовательский логин (не рутовский).

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

Current PHP script owner: admin
Права на папки тоже такие же.
Видимых несоответствий нет. :cz2:

А в результате вылезает такое:

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

Warning: chmod() [function.chmod]: Operation not permitted in /data/modules/module/module.php on line 120
Warning: fopen(/data/block_cache/block1035/c4ae60988ec59ac33a84cf3fef2ba974.html) [function.fopen]: failed to open stream: Permission denied in /data/modules/module/module.php on line 122
Warning: fwrite(): supplied argument is not a valid stream resource in /data/modules/module/module.php on line 123
Warning: fclose(): supplied argument is not a valid stream resource in /data/modules/module/module.php on line 124
Warning: chmod() [function.chmod]: Operation not permitted in /data/modules/module/module.php on line 125
Warning: chmod() [function.chmod]: Operation not permitted in /data/modules/module/module.php on line 120

zg
полковник
Сообщения: 5845
Зарегистрирован: 2007-12-07 13:51:33
Откуда: Верх-Нейвинск

Re: Как правильно раздать права?

Непрочитанное сообщение zg » 2009-04-16 22:25:15

Dmitriy_K писал(а):Права на папки тоже такие же.
выложи права и владельца на папку

Dmitriy_K
сержант
Сообщения: 200
Зарегистрирован: 2009-04-07 6:22:33
Откуда: г.Королёв

Re: Как правильно раздать права?

Непрочитанное сообщение Dmitriy_K » 2009-04-17 18:02:34

zg писал(а):выложи права и владельца на папку
Сейчас у меня на неё права 755

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

drwxr-xr-x  *****  wheel  512 Oct 28 15:29 data
На папке, куда скрипт пытается прописать директории

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

/data/block_cache/
были такие же прова. Переделал на пользователя "apache" со всеми разрешениями - не помогло.
В PHP "safe_mode = Off". Вообще, попробую его переставить, может было неправильно собирать его из исходников с

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

--enable-safe-mode
Можно ли как-то вычислить проблему по логам? Где и как стоит поискать?

zg
полковник
Сообщения: 5845
Зарегистрирован: 2007-12-07 13:51:33
Откуда: Верх-Нейвинск

Re: Как правильно раздать права?

Непрочитанное сообщение zg » 2009-04-17 18:07:24

скрипт кривой, логи тут не помогут

Dmitriy_K
сержант
Сообщения: 200
Зарегистрирован: 2009-04-07 6:22:33
Откуда: г.Королёв

Re: Как правильно раздать права?

Непрочитанное сообщение Dmitriy_K » 2009-04-17 19:50:53

zg писал(а):скрипт кривой, логи тут не помогут
Да, там вся система запутана. Её фирма РБК разрабатывала. Куча недокументированных возможностей. Я нашёл пока пять скриптов, в которых был зашит старый рутовый пароль на базу. Может и на другие права даступа параметры где-то заныканы.

А с какой стороны всё-таки можно попробовать подступиться к проблеме?

zg
полковник
Сообщения: 5845
Зарегистрирован: 2007-12-07 13:51:33
Откуда: Верх-Нейвинск

Re: Как правильно раздать права?

Непрочитанное сообщение zg » 2009-04-17 20:04:03

Dmitriy_K писал(а):Куча недокументированных возможностей.
эм... лучше сказать атавизмов
Dmitriy_K писал(а):А с какой стороны всё-таки можно попробовать подступиться к проблеме?
var_dump

Dmitriy_K
сержант
Сообщения: 200
Зарегистрирован: 2009-04-07 6:22:33
Откуда: г.Королёв

Re: Как правильно раздать права?

Непрочитанное сообщение Dmitriy_K » 2009-04-17 20:19:08

Вот хрень! Эмпирически попробовал сменить пользователя на все директории на "apache" и ошибки пропали. Оказывается высоких прав на исполнение скриптам недостаточно, нужно чтобы совпадало с тем, что у сервера. Блинн, а для тестирования двух серверов мне теперь придётся менять пользователя то на "apache", то на "nginx"? :-o
Кстати, как из мирового опыта лучше будет выставить права на PHP-диры?
744 или как ещё?

zg
полковник
Сообщения: 5845
Зарегистрирован: 2007-12-07 13:51:33
Откуда: Верх-Нейвинск

Re: Как правильно раздать права?

Непрочитанное сообщение zg » 2009-04-17 20:50:47

Dmitriy_K писал(а):Кстати, как из мирового опыта лучше будет выставить права на PHP-диры?
это например какие?

Dmitriy_K
сержант
Сообщения: 200
Зарегистрирован: 2009-04-07 6:22:33
Откуда: г.Королёв

Re: Как правильно раздать права?

Непрочитанное сообщение Dmitriy_K » 2009-04-17 21:04:16

Можно было бы 755 для удобства (просмотр не через админа), но не знаю насколько безопасно. Пожалуй, лучше обойдусь.