URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID1
Нить номер: 23227
[ Назад ]

Исходное сообщение
"RE: Как root-ом запустить демон от кого-то другого"

Отправлено aleks , 20-Ноя-02 22:32 
У меня при старте машины с FreeBSD скриптом лежащим в /usr/local/etc/rc.d/ стартуют кое какие программы. Стартуют они от пользователя root, а вот хотелось бы от какого-либо другого. Не подскажите ли как это сделать?

Содержание

Сообщения в этом обсуждении
"RE: Как root-ом запустить демон от кого-то другого"
Отправлено AndreyCh , 21-Ноя-02 06:13 
>У меня при старте машины с FreeBSD скриптом лежащим в /usr/local/etc/rc.d/ стартуют
>кое какие программы. Стартуют они от пользователя root, а вот хотелось
>бы от какого-либо другого. Не подскажите ли как это сделать?

Можно su перйти к пользователю и запустить, а можно поставить sudo и запустить:
%sudo -u vanya cat /etc/hosts
Можно в крайнем случае и crontab'ом воспользоваться!


"RE: Как root-ом запустить демон от кого-то другого"
Отправлено aleks , 21-Ноя-02 07:42 
>%sudo -u vanya cat /etc/hosts
А что такое sudo? У меня FreeBSD 4.5 - ни манов ни команды такой нет.


"RE: Как root-ом запустить демон от кого-то другого"
Отправлено немец , 21-Ноя-02 07:46 
>>%sudo -u vanya cat /etc/hosts
>А что такое sudo? У меня FreeBSD 4.5 - ни манов ни
>команды такой нет.

man su


"RE: Как root-ом запустить демон от кого-то другого"
Отправлено AndreyCh , 21-Ноя-02 11:02 
>>>%sudo -u vanya cat /etc/hosts
>>А что такое sudo? У меня FreeBSD 4.5 - ни манов ни
>>команды такой нет.
>
>man su

http://www.sudo.ws/sudo/


"RE: Как root-ом запустить демон от кого-то другого"
Отправлено немец , 21-Ноя-02 11:10 
>>>>%sudo -u vanya cat /etc/hosts
>>>А что такое sudo? У меня FreeBSD 4.5 - ни манов ни
>>>команды такой нет.
>>
>>man su
>
>http://www.sudo.ws/sudo/

Ну и нафига ему sudo ставить когда с тем, что ему надо, прекрасно справится штатный фришный su. ;-)


"RE: Как root-ом запустить демон от кого-то другого"
Отправлено romn , 21-Ноя-02 10:08 
su - USERNAME -c "command"
пример
su - nobody -c "ls -al /"

"RE: Как root-ом запустить демон от кого-то другого"
Отправлено lavr , 21-Ноя-02 13:09 
>У меня при старте машины с FreeBSD скриптом лежащим в /usr/local/etc/rc.d/ стартуют
>кое какие программы. Стартуют они от пользователя root, а вот хотелось
>бы от какого-либо другого. Не подскажите ли как это сделать?

вопрос не только в том КАК из под su запустить тот или иной сервис,
но еще и в том что этот сервис будет выполнять.


"RE: Как root-ом запустить демон от кого-то другого"
Отправлено aleks , 21-Ноя-02 23:21 
На самом деле задача вроде тривиальная:
#su <user>
> execute_command
> exit
Но вот я наткнулся на следующее. В доке по sql серверу postrgres (он обязательно должен стартовать от юзера postgres):
[ -x /usr/local/pgsql/bin/postmaster ] && {
        su postgres -c '/usr/local/pgsql/bin/postmaster -S -i -D /usr/local/pgsql/data'
        echo -n ' PG_SQL Server started! ...'
        }
Если поместить это в стартовый скрипт системы то в результате имеем процесс запущенный от постгреса. Только вот что сдесь к чему я чего-то не пойму. Может кто-нибуть объяснит?

"RE: Как root-ом запустить демон от кого-то другого"
Отправлено aleks , 21-Ноя-02 23:25 
>вопрос не только в том КАК из под su запустить тот или
>иной сервис,
>но еще и в том что этот сервис будет выполнять.
Сервис самописный. Общается с локальной базой данных и слушает сокет внешней сети. Так что хотелось бы пускануть его от nobody.

"RE: Как root-ом запустить демон от кого-то другого"
Отправлено aleks , 23-Ноя-02 14:56 
>Так что хотелось бы пускануть его от nobody.

Пускаю так:
# su nobody -c "/path/to/my_prog"
Врезультате:
This account is currently not available.

Ответ то конечно логичен (у nobody ни папки нет и shell - /sbin/nologin), но ведь надо пустить от nobody. Подскажите уж очень не хочется sudo сюда привлекать?


"RE: Как root-ом запустить демон от кого-то другого"
Отправлено lavr , 24-Ноя-02 16:49 
>>Так что хотелось бы пускануть его от nobody.
>
>Пускаю так:
># su nobody -c "/path/to/my_prog"
>Врезультате:
>This account is currently not available.
>
>Ответ то конечно логичен (у nobody ни папки нет и shell -
>/sbin/nologin), но ведь надо пустить от nobody. Подскажите уж очень не
>хочется sudo сюда привлекать?

а что религия не позволяет создать пользователя postgres аналог nobody
но с shell (разумеется w/o password) если уж этот пользователь должен
иметь среду.

PS. Я так думаю что в документации по postgres должен раскрываться этот
вопрос или в списках рассылки или в howto или ...


"RE: Как root-ом запустить демон от кого-то другого"
Отправлено lavr , 24-Ноя-02 16:50 
>>>Так что хотелось бы пускануть его от nobody.
>>
>>Пускаю так:
>># su nobody -c "/path/to/my_prog"
>>Врезультате:
>>This account is currently not available.
>>
>>Ответ то конечно логичен (у nobody ни папки нет и shell -
>>/sbin/nologin), но ведь надо пустить от nobody. Подскажите уж очень не
>>хочется sudo сюда привлекать?
>
>а что религия не позволяет создать пользователя postgres аналог nobody
>но с shell (разумеется w/o password) если уж этот пользователь должен
>иметь среду.
>
>PS. Я так думаю что в документации по postgres должен раскрываться этот
>
>вопрос или в списках рассылки или в howto или ...


Мб дело и вовсе в чем-то другом? Mysql вполне справляется с запуском без
shell(среды)


"RE: Как root-ом запустить демон от кого-то другого"
Отправлено qq , 24-Ноя-02 17:49 
уже был такой вопрос, и не один раз

http://cr.yp.to/daemontools/setuidgid.html
http://cr.yp.to/daemontools/daemontools-0.76.tar.gz


"RE: Как root-ом запустить демон от кого-то другого"
Отправлено aleks , 25-Ноя-02 07:46 
>>PS. Я так думаю что в документации по postgres должен раскрываться этот

Так пользователь постгрес у меня есть (и среда у него есть), с постгресом всё в порядке. Стартовый скрипт я тут привёл т.к. не совсем понял его конструкцию. Но т.к. у nodody shell-а нет то данный способ видно не подходит. Попробую setuidgid.


"RE: Как root-ом запустить демон от кого-то другого"
Отправлено lavr , 25-Ноя-02 11:02 
>>>PS. Я так думаю что в документации по postgres должен раскрываться этот
>
>Так пользователь постгрес у меня есть (и среда у него есть), с
>постгресом всё в порядке. Стартовый скрипт я тут привёл т.к. не
>совсем понял его конструкцию. Но т.к. у nodody shell-а нет то
>данный способ видно не подходит. Попробую setuidgid.

все что нужно сделать, это прочесть man su в той системе в которой
работаешь:

>Но вот я наткнулся на следующее. В доке по sql серверу postrgres (он >обязательно должен стартовать от юзера postgres):
>[ -x /usr/local/pgsql/bin/postmaster ] && {

если существует файл /path/postmaster и он исполняемый, делаем:

>        su postgres -c '/usr/local/pgsql/bin/postmaster -S -i -D >/usr/local/pgsql/data'

запускаем из под пользователя postgres - 'su postgres' команду с аргументами: -c '/path/postmaster ARGS'

>        echo -n ' PG_SQL Server started! ...'

выводим на экран: сервис запущен

>        }

и чего здесь непонятного!?
данные и директории должны быть владельцем postgres или группой с доступом на запись, чего такого сложного?

короче: man su


"RE: Как root-ом запустить демон от кого-то другого"
Отправлено aleks , 25-Ноя-02 19:36 
Спасибо за исчерпывающий ответ. Для меня вопрос закрыт.

"RE: Как root-ом запустить демон от кого-то другого"
Отправлено lavr , 25-Ноя-02 22:28 
>Спасибо за исчерпывающий ответ. Для меня вопрос закрыт.

cool.

Удачи