如何在初始化脚本中以特定用户身份运行命令?

我正在编写一个初始化脚本,该脚本应该以与root用户不同的用户身份执行单个命令。这是我目前正在做的事情:

sudo -u username command

通常,这在Ubuntu / Debian上可以正常工作,但是在RHEL上,该脚本以command挂起方式执行。

还有另一种以其他用户身份运行命令的方法吗?

(请注意,我不能使用lsb初始化函数,因为它们在RHEL / Centos 5.x中不可用。)

回答:

在RHEL系统上,该/etc/rc.d/init.d/functions脚本旨在提供与所需内容相似的脚本。如果您将其作为源代码放在init脚本的顶部,则所有功能均可用。

为此提供的特定功能是daemon。如果打算使用它来启动类似守护程序的程序,则简单的用法是:

daemon --user=username command

如果对于您所需要的东西来说过于繁琐,则有runuser(请参阅参考资料man runuser以获取完整信息;-u用户名之前可能需要某些版本):

/sbin/runuser username -s /bin/bash -c "command(s) to run as user username"

以上是 如何在初始化脚本中以特定用户身份运行命令? 的全部内容, 来源链接: utcz.com/qa/412821.html

回到顶部