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

Выделить псевдо TTY в файле конфигурации Upstart

Мы хотели бы использовать Upstart для управления процессом Java и запускать его без полномочий root с помощью sudo. Мы находимся на RHEL 6, что означает, что Upstart слишком стар, чтобы позволить нам явно указывать пользователя, поэтому мы используем sudo.

Однако в файле конфигурации Sudo указано Defaults requiretty что означает, что мы не можем бежать sudo -u для запуска команды от имени пользователя без полномочий root. Получаем следующую ошибку

sudo: sorry, you must have a tty to run sudo

Есть ли способ заставить Upstart выделить псевдо-TTY, чтобы sudo позволил нам запустить этот процесс? Файл sudoers настроен в соответствии с политикой компании, и мы не можем его изменить.

Вам не нужно - и не следует - использовать sudo менять пользователей в сценарии инициализации. Использовать su или лучше, runuser вместо. В runuser команда должна быть доступна из RHEL 5 и будет делать правильные вещи в отношении контекстов SELinux и т. д.

runuser -u username -g groupname command arguments