运行带有sudo命令的脚本的问题

时间:2015-09-20 19:25:10

标签: linux bash shell ubuntu

我正在尝试运行脚本而不询问root密码。 所以我有一个带有几个sudo命令的script.sh,我用“sudo visudo”修改了文件sudoers,以便能够在不询问root密码的情况下运行脚本:

%sudo ALL =(ALL:ALL)ALL root ALL =(ALL)NOPASSWD:/home/user/script.sh

我也改变了我的脚本的用户和组(sudo chown root.root script.sh)并更改了(sudo chmod 777 script.sh) ,但总是我尝试运行我的脚本它要求root密码,我不知道它可以是什么

注意:我试过改变这个> user ALL =(ALL)NOPASSWD:/home/user/script.sh, 和用户,组(用户)和我仍然有同样的问题。

1 个答案:

答案 0 :(得分:1)

删除脚本中的所有sudo命令。只需将以下行放在脚本的开头

即可
#!/bin/bash
if [[ $(/usr/bin/id -u) -ne 0 ]]; then
    echo "Aborting: run as root user!"
    exit 1
fi

#... your program

这使得整个脚本可以与超级用户一起运行。并且脚本中的命令都不需要sudo前缀。