在 Upstart 配置文件中分配伪 TTY

在 Upstart 配置文件中分配伪 TTY

我们想使用 Upstart 来管理 Java 进程,并使用 sudo 以非 root 身份运行它。我们使用的是 RHEL 6,这意味着 Upstart 太旧了,不允许我们明确指定用户,因此使用 sudo。

但是,Sudo配置文件指定了,Defaults requiretty这意味着我们无法sudo -u以非root用户身份运行该命令。我们收到以下错误

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

有没有办法让 Upstart 分配一个伪 TTY,以便 sudo 允许我们启动此过程?sudoers 文件是根据公司政策设置的,我们无法更改它。

答案1

你不需要 - 也不应该 - 使用sudo来更改用户在初始化脚本中。请使用su或 better runuser。该runuser命令应从 RHEL 5 开始可用,并将根据 SELinux 上下文等执行正确的操作。

runuser -u username -g groupname command arguments

相关内容