2

当我在我的服务中尝试此代码时

start() {
    sudo -u userName "pwd" &>/home/log
}

我在 /home/log 中得到了这个结果:

sudo: sorry, you must have a tty to run sudo

并且服务不会运行,但是当服务器完成启动时,服务将在我调用时运行

服务测试开始

4

1 回答 1

4

服务通常root从引导(或/etc/init.d/)脚本启动。

您可以使用/bin/su命令(以 root 身份)更改用户:

/bin/su -c "pwd; id" username

另请阅读有关setuid程序以及setuid(2)setreuid(2)系统调用的信息。花时间阅读Advanced Linux Programming以了解相关概念。

还可以考虑为用户的crontab(5)设置一个@reboot条目。

于 2013-08-31T09:17:36.567 回答