文章目录
- 问题重现
- 解决方法
-
- 解决方案1:把想要给与sudo的用户写在root的下面一行
- 解决方案2:把想要给与sudo的用户添加到wheel用户组中
问题重现
创建用户,比如创建一个【developer】的用户:
su
adduser developer
passwd developer
创建用户后,会在 /home 的目录下新建一个 developer 的文件夹,属于【developer】用户,切换用户:
su developer
如果直接使用su,后面不接用户名,默认会切换到root用户下
通常正常用户能够执行的操作都可以完成,但是很多时候,需要临时使用一下sudo命令时,会出现如下报错:
developer is not in the sudoers file. This incident will be reported.
解决方法
这种用户是没有能力直接使用sudo的,如果这样的用户使用,然后修改配置,使当前用户拥有能够使用sudo的权限:
su # 切换管理员用户
vim /etc/sudoers
可以看到如下部分:
这里的:
root ALL=(ALL) ALL
代表:root用户有执行sudo的权限%wheel ALL=(ALL) ALL
代表:wheel用户组有执行sudo的权限
因此解决方案有两个:
- 把想要给与sudo的用户写在root的下面一行
- 把想要给与sudo的用户添加到wheel用户组中
解决方案1:把想要给与sudo的用户写在root的下面一行
su
chmod u+w /etc/sudoers
vim /etc/sudoers
然后在root的下一行添加新的用户【developer】,注意中间的间隔是一个TAB键:
## Allow root to run any commands anywhere
root ALL=(ALL) ALL
developer ALL=(ALL) ALL
注意:如果希望用户执行sudo时不用输入密码也可以执行,可以写成这样:
youuser ALL=(ALL) NOPASSWD: ALL
最后撤销掉root可编辑的权限,防止以后误操作,执行:
chmod u-w /etc/sudoers
然后切换回【developer】用户,就可以执行sudo了:
su developer
sudo -i # 正常执行
解决方案2:把想要给与sudo的用户添加到wheel用户组中
su # 同样先切换到root用户下
usermod -aG wheel developer # 添加【developer】用户到 【wheel】用户组下
然后就结束啦