编译自:http://www.tecmint.com/sudoers-configurations-for-setting-sudo-in-linux/ 作者: Aaron Kili 译者: GHLandy
在 Linux 和其他的类 Unix 操作系统中,只有 root 用户可以运行所有的命令,才能在系统中执行那些需要鉴权的操作,比如安装、升级和移除软件包、创建用户和用户组[1]、修改系统重要的配置文件等等。
然而,系统管理员,比如说 root 用户,可以通过sudo 命令[2]和一些配置选项来给普通用户进行授权,从而让该普通用户可以运行某些命令已经上述的那些相当重要的系统级操作。
另外,系统管理员还可以分享 root 用户密码 (这个做法是不值得提倡的),这样普通用户就可以通过su命令来转化为 root 用户角色。.
sudo允许已授权用户按照指定的安全策略、以 root 用户 (或者是其他的用户角色) 权限来执行某个命令。
sudo会读取和解析/etc/sudoers文件,查找调用命令的用户及其权限。
然后提示调用该命令的用户输入密码 (通常是用户密码,但也可能是目标用户的密码,或者也可以通过NOPASSWD标志来跳过密码验证)。
这之后,sudo会创建一个子进程,调用 setuid() 来切换到目标用户。
接着,它会在上述子进程中执行参数给定的 shell 或命令。
以下列出十个/etc/sudoers文件配置,使用Defaults项修改 sudo 命令的行为。
$ sudo cat /etc/sudoers
/etc/sudoers文件:
#
# This file MUST be edited with the 'visudo' command as root.
#
# Please consider adding local content in /etc/sudoers.d/ instead of
# directly modifying this file.
#
# See the man page for details on how to write a sudoers file.
#
Defaults env_reset
Defaults mail_badpass
Defaults secure_path="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
Defaults logfile="/var/log/sudo.log"
Defaults lecture="always"
Defaults badpass_message="Password is wrong, please try again"
Defaults passwd_tries=5
Defaults insults
Defaults log_input,log_output
Defaults 项的类型
Defaults parameter, parameter_list ### 对任意主机登录的所有用户起作用
Defaults@Host_List parameter, parameter_list ### 对指定主机登录的所有用户起作用
Defaults:User_List parameter, parameter_list ### 对指定用户起作用
Defaults!Cmnd_List parameter, parameter_list ### 对指定命令起作用
Defaults
|