RHEL - 不能从脚本中执行 sudo

RHEL - can't sudo from script

我有一个脚本,我试图在启动时更改用户(从 root)。在 /etc/rc.d/rc.local 中,我将其更改为 cd 到脚本目录并执行它。一切正常,除了它试图执行的时候:

sudo -u newuser ./myscript.sh

我收到一条错误消息:

sorry, you must have a tty to run sudo

所以我查看了我的 /etc/sudoers 文件,它已经设置为 !requiretty,应该将其关闭。我也尝试过 gksudo 等替代方案,但显然 RHEL 6.5 只支持基本的 sudo。

我知道该脚本有效,因为我可以从终端自己执行它,只是在我尝试从启动脚本执行它的时候。

刚刚更改:

sudo -u newuser ./myscript.sh

收件人:

/bin/su -c ./myscript.sh newuser

它似乎有效。我猜是因为 sudo 通常是用来提升你的权限的,但因为它以 root 身份启动,所以我真的不需要它,可以使用 su 代替。将在不同的地方进行尝试,以确保它 100% 有效。

su -u newuser -c ./myscript.sh