以root身份运行bash脚本时出错

我有一个简单的关机脚本,我想以root身份运行

shutdown -h +30; echo "succesfull"; 

我已经按照这些答案1,2来使我的脚本成为根。

首先我运行此命令

 sudo chown root.root $HOME/test/test.sh sudo chmod 4755 $HOME/test/test.sh 

然后改变了sudoers

 sudo visudo 

在此行%sudo ALL=(ALL:ALL) ALL之后添加此命令

 eka ALL=(ALL) NOPASSWD: $HOME/test/test.sh 

但是,当我执行我的脚本时,它显示此错误

 shutdown: Need to be root succesfull 

不要使用setuid shell脚本,在当前系统上无论如何都不会在shell脚本上使用SUID位。 无论如何,请尝试使用sudo

 eka ALL = NOPASSWD:/home/eka/test/test.sh

然后:

 eka $ sudo~ / test / test.sh

有了它, test.sh将作为“root”执行。 这里不需要使用setuid。