Лучшая практика в 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

Другие вопросы по тегам