使用sudoers文件

Gao
想要使用`iftop`查看一下网卡流量,发现这个命令需要root权限才可以使用,又不想切换账号,所以,使用sudo来执行这个命令就成了解决方案。 ### 使用`sudo`与配置`/etc/sudoers`文件 使用sudo需要了机sudoers配置文件,文件保存在`/etc/sudoers`里。 文件内容: ```sudoers Defaults env_reset Defaults mail_badpass Defaults secure_path="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/snap/bin" root ALL=(ALL:ALL) ALL %wheel ALL=(ALL) ALL %sudo ALL=(ALL:ALL) ALL #includedir /etc/sudoers.d ``` 第一行 `Defaults env_reset`表示重置所有用户环境变量。 第二行`Defaults mail_badpass`表示回发邮件(默认是root)提示用户使用了badpass。 第三行`Defaults secure_path=`表示sudo操作使用时的`PATH`环境变量。 * `root` ALL=(ALL:ALL) ALL 第一个字段表示允许使用sudo的用户,如果使用%开头则表示用户组。 * root `ALL`=(ALL:ALL) ALL 第一个ALL表示可以在所有主机上使用。 * root ALL=(`ALL`:ALL) ALL 这个ALL表示可以以任意用户身执行命令。 * root ALL=(ALL:`ALL`) ALL 这个ALL表示可以使用任意用户组身份来执行命令。 * root ALL=(ALL:ALL) `ALL` 最后一个ALL表示可以执行所有命令,可以添加前缀`NOPASSWD:` 表示不需要验证密码。如: `Jonathan ALL=(ALL:ALL) NOPASSWD:ALL` 最后一行`#includedir /etc/sudoers.d`表示会读取所有在`/etc/sudoers.d`目录下的配置(开头的#并不是说这个是注释)。 #### 使用别名 可通过定义别名来简化配置 主机别名: ```sudoers Host_Alias MAILSERVERS = smtp, smtp2 ``` 用户别名: ```sudoers User_Alias ADMINS = jsmith, mikem ``` 命令别名: 多条命令使用`,`分割 ``` Cmnd_Alias PROCESSES = /bin/nice, /bin/kill, /usr/bin/kill, /usr/bin/killall ``` ### 危险⚠️ 注意⚠️: 如果操作系统没有root账户,编辑sudoers文件中出现格式错误,会导致所有sudoers用户无法使用sudo权限,系统无法被管理。