Страница 1 из 1
Запуск процесса от другого пользователя
Добавлено: 2008-08-26 14:25:37
savio
Есть у меня скрипт mytest.php - читает с БД ссылку и запускает wget. Скрипт должен работать от юзера mytets
добавил юзера mytest? далее делаю
Код: Выделить всё
chown mytest:mytest /usr/local/www/test/cron/mytest.php
далее закидываю на выполнение скрипта в крон новоиспеченного пользователя запись
собствено запись
Код: Выделить всё
*/1 * * * * /usr/local/www/test/cron/mytest.php
Жду минуту и смотрю top
...
9092 root 1 96 0 5760K 2464K select 0:01 0.00% wget
...
запустился wget от root'а. чего делаю не так?
Re: Запуск процесса от другого пользователя
Добавлено: 2008-08-26 14:38:46
manefesto
Re: Запуск процесса от другого пользователя
Добавлено: 2008-08-26 14:51:23
savio
cсделал
#su mytest
#crontab -e
тоже самое. стартует от рута
Re: Запуск процесса от другого пользователя
Добавлено: 2008-08-26 14:57:36
terminus
/usr/local/bin/php случайно не суидный?
Re: Запуск процесса от другого пользователя
Добавлено: 2008-08-26 14:59:46
savio
извеняюсь, но что значит "суидный"?
Re: Запуск процесса от другого пользователя
Добавлено: 2008-08-26 15:00:37
manefesto
тэкс...очень странно.
По идее не должно такого быть.
Сделай так.
Напиши в начало
wget.sh следующие
А потом смотри /tmp/startwget от имени кого запустилось.
Просто получается что cron запускает юзерскую задачу, а вот смена пользователя не происходит.
Re: Запуск процесса от другого пользователя
Добавлено: 2008-08-26 15:05:59
terminus
Суидный - тот у которого поставлен бит суидности - выполнение происходит не от лица того кто запускает, а от того кто владелец. Например:
Код: Выделить всё
если выполнить от рута
# chown root:wheel ./srcipt.sh
# chmod 4555 ./script.sh
а потом от юзера
$ ./script.sh
то скрипт все равно запустится от рута
Re: Запуск процесса от другого пользователя
Добавлено: 2008-08-26 15:40:27
savio
ясно. вот результат выполнения
Код: Выделить всё
]# ls -laso /usr/local/bin/php
12512 -rwxr-xr-x 1 root wheel - 6381943 Apr 5 15:40 /usr/local/bin/php
Re: Запуск процесса от другого пользователя
Добавлено: 2008-08-26 15:48:32
LimpTeaM
прошу прощения за то что влезаю, но есть вопросик

разве в кроне нельзя указать пользователя от которого должен запускаться скрипт?
Код: Выделить всё
*/1 * * * * mytest /usr/local/www/test/cron/mytest.php
ну это как предположение

Re: Запуск процесса от другого пользователя
Добавлено: 2008-08-26 15:58:17
savio
нужно, но только в файле /etc/crontab
Re: Запуск процесса от другого пользователя
Добавлено: 2008-08-26 16:12:13
savio
так кому ставить бит суидности? поставил его скрипту
Код: Выделить всё
#chmod u+s mytest.php
# ls -l
#-rwsrwxrwx 1 mytest mytest 9546 Aug 26 14:11 mytest.php
в mytest.php есть
Код: Выделить всё
#/usr/local/bin/php
<?php
...
exec(" /usr/local/bin/wget {ну и ссылка на скачку которую беру с MySql}");
...
?>
wget попрежнему стартует с крона от рута...
Re: Запуск процесса от другого пользователя
Добавлено: 2008-08-26 16:28:58
savio
нда.... ничего не понимаю...
отключил на время cron.
зашел под юзером(su mytest)
запустил скрипт - wget работает от пользователя mytest
убил процесс. зашел под рутом, запустил суидный mytest.php - wget запустился под рутом
по ходу дела этот суидный бит никакой роли не играет?
Re: Запуск процесса от другого пользователя
Добавлено: 2008-08-26 21:14:15
f_andrey
savio писал(а):по ходу дела этот суидный бит никакой роли не играет?
Граждане не ленитесь читать документацию и прочие хорошие книжки, суидный бит нужен для запуска программ требуюших административных полномочий НЕ привелигированными пользователями.
Кстати а что вы читали по теме прежде чем задать вопрос?