使用sudoers文件

Gao

想要使用iftop查看一下网卡流量,发现这个命令需要root权限才可以使用,又不想切换账号,所以,使用sudo来执行这个命令就成了解决方案。

使用sudo与配置/etc/sudoers文件

使用sudo需要了机sudoers配置文件,文件保存在/etc/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目录下的配置(开头的#并不是说这个是注释)。

使用别名

可通过定义别名来简化配置

主机别名:

Host_Alias MAILSERVERS = smtp, smtp2

用户别名:

User_Alias ADMINS = jsmith, mikem

命令别名: 多条命令使用,分割

Cmnd_Alias PROCESSES = /bin/nice, /bin/kill, /usr/bin/kill, /usr/bin/killall

危险⚠️

注意⚠️: 如果操作系统没有root账户,编辑sudoers文件中出现格式错误,会导致所有sudoers用户无法使用sudo权限,系统无法被管理。