小编典典

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

linux

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

通常,这在Ubuntu / Debian上可以正常工作,但是在RHEL上,该脚本以command挂起方式执行。
还有另一种以其他用户身份运行命令的方法吗?
(请注意,我不能使用lsb初始化函数,因为它们在RHEL / Centos 5.x中不可用。)


阅读 491

收藏
2020-06-07

共1个答案

小编典典

在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"
2020-06-07