sudo的配置文件 sudoers 通常在 /etc 目录下。 不过无论 sudoers 文件在哪儿,sudo
都提供了一个编辑该文件的命令:visudo 来对该文件进行修改。linux
讲解sudo配置文件/etc/sudoers的格式。
# User privilege specification
root ALL=(ALL) ALL
# Allow members of group sudo to execute any command after they have
# provided their password
# (Note that later entries override this, so you might need to move
# it further down)
%sudo ALL=(ALL) ALL
#
#includedir /etc/sudoers.d
# Members of the admin group may gain root privileges
%admin ALL=(ALL) ALL
以上是个人Ubuntu10.04的默认/etc/sudoers文件。"#"开头的都是注释能够忽略。
首先用户须要转换成根用户并使用visudo命令打开/etc/sudoers文件。
讲解:root ALL=(ALL) ALL
root表示被受权的用户,这里是根用户;
第一个ALL表示全部计算机;
第二个ALL表示全部用户;
第三个ALL表示全部命令;
全句的意思是:受权根用户在全部计算机上以全部用户的身份运行全部文件。
%admin ALL=(ALL) ALL同上面同样,只不过被受权的成了admin这个组。
通用格式
/etc/sudoers的通用格式为:
user host run_as command
user:一位或几位用户,在/etc/group中能够用一个%代替它,组对象的名称必定要用百分号%开头。
host:一个或几个主机名;
run_as:做为哪一个用户运行,常见选项是root和ALL
command:想让用户或组运行的一个或几个根级别命令。
例如:
hans ALL=(root) useradd,userdel
受权hans用户在全部计算机上以root身份运行useradd,userdel命令。
%smith ALL=(ALL) NOPASSWD:useradd,userdel
受权smith组所有成员在全部计算机上以全部用户的身份运行useradd,userdel命令;且运行时没必要输入密码。
须要注意的是,当咱们为用户定义能够运行的命令时,必须使用完整的命令路径。这样作是彻底出于安全的考虑,若是咱们给出的命令只是简单的userad 而非 /usr/sbin/useradd,那么用户有可能建立一个他本身的脚本,也叫作userad,而后放在它的本地路径中,如此一来他就可以经过这个名为 useradd的本地脚本,做为root来执行任何他想要的命令了。这是至关危险的!安全
参考:ide
http://chenall.net/post/linux-sudo-config/post
http://desert3.iteye.com/blog/1663995this
http://blog.csdn.net/a19881029/article/details/18730671.net