Назад | Перейти на главную страницу

Лучшая практика сценария инициализации Redhat

Я хочу написать сценарий службы инициализации, который запускает программу от имени конкретного пользователя (а не root). Затем я chkconfig этот скрипт и установлю на свой рабочий уровень.

Я мог бы просто поместить в сценарий команду su, но мне было интересно, есть ли лучший способ сделать это.

Спасибо, Гарри

Вы можете просто su. Пароль вам не понадобится, потому что сценарий изначально будет запущен от имени пользователя root.

Также есть runuser команда.

Если вы используете /etc/init.d/functions вы можете использовать daemon функция, в которой есть возможность указать пользователя, от имени которого запускается.

Я лично склоняюсь к последнему при прочих равных условиях.

Если вы напишете сценарий инициализации в стиле redhat, daemon функция имеет --user вариант.

daemon --user=$runasuser --pidfile="$PIDFILE" $yourbinary $youroptions

Лучше всего использовать sudo и изменить необходимые файлы, чтобы это происходило автоматически, без запроса пароля. Если вы не против того, чтобы пароль был в скрипте, я думаю, вы можете сделать что-то вроде

 echo password | sudo -S -u username command

Что делаешь? Может есть способ получше?

РЕДАКТИРОВАТЬ

Спасибо TCampbell