我正在编写一个初始化脚本,该脚本应该以与root用户不同的用户身份执行单个命令。这是我目前正在做的事情: sudo -u username command
sudo -u username command
通常,这在Ubuntu / Debian上可以正常工作,但是在RHEL上,该脚本以command挂起方式执行。 还有另一种以其他用户身份运行命令的方法吗? (请注意,我不能使用lsb初始化函数,因为它们在RHEL / Centos 5.x中不可用。)
command
在RHEL系统上,该/etc/rc.d/init.d/functions脚本旨在提供与所需内容相似的脚本。如果您将其作为源代码放在init脚本的顶部,则所有功能均可用。
/etc/rc.d/init.d/functions
为此提供的特定功能是daemon。如果打算使用它来启动类似守护程序的程序,则简单的用法是:
daemon
daemon --user=username command
如果对于您所需要的东西来说过于繁琐,则有runuser(请参阅参考资料man runuser以获取完整信息;-u用户名之前可能需要某些版本):
runuser
man runuser
-u
/sbin/runuser username -s /bin/bash -c "command(s) to run as user username"