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
我有一个脚本,我试图在启动时更改用户(从 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