当我在我的服务中尝试此代码时
start() {
sudo -u userName "pwd" &>/home/log
}
我在 /home/log 中得到了这个结果:
sudo: sorry, you must have a tty to run sudo
并且服务不会运行,但是当服务器完成启动时,服务将在我调用时运行
服务测试开始
服务通常root
从引导(或/etc/init.d/
)脚本启动。
您可以使用/bin/su
命令(以 root 身份)更改用户:
/bin/su -c "pwd; id" username
另请阅读有关setuid程序以及setuid(2)和setreuid(2)系统调用的信息。花时间阅读Advanced Linux Programming以了解相关概念。
还可以考虑为用户的crontab(5)设置一个@reboot
条目。