我想编写一个 init 服务脚本,以特定用户(而不是 root)身份运行该程序。然后我将 chkconfig 此脚本并安装到我的生产运行级别中。
我可以在脚本中放置一个 su 命令,但我想知道是否有这样做的最佳实践。
谢谢,加里
答案1
你可以直接输入su
。你不需要密码,因为脚本最初将以 root 身份运行。
还有runuser
命令。
如果您使用,/etc/init.d/functions
您可以使用daemon
具有指定以何种用户身份运行的选项的功能。
在其他条件相同的情况下,我个人倾向于后者。
答案2
如果您编写了 redhat 风格的初始化脚本,该daemon
函数有一个--user
选项。
daemon --user=$runasuser --pidfile="$PIDFILE" $yourbinary $youroptions
答案3
最佳做法可能是使用 sudo,并修改必要的文件以确保它自动发生而无需输入密码。如果你不介意密码在脚本中,我认为你可以这样做
echo password | sudo -S -u username command
你在做什么?也许有更好的方法?
编辑
谢谢 TCampbell