Лучшая практика в RedHat
Я хочу написать сценарий службы инициализации, который запускает программу от имени конкретного пользователя (а не root). Затем я выполню chkconfig этого сценария и установлю его на уровень производственного запуска.
Я мог бы просто вставить команду su в скрипт, но мне было интересно, есть ли лучший способ сделать это.
Спасибо гарри
3 ответа
Вы можете просто 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