在Ubuntu系统中普通用户均可以通过sudo 命令以super user 身份执行指令,只要输入该用户的密码即可,然而在CentOS中,即管在安装系统时候创建用户有Advance的设置项,可以将新创建的用户加入到群组中,这个时候填写了sudoer/sudoers均不行,登陆系统后执行sudo 命令还是会提示该用户不存在与群组sudoers中。遇到这个问题我们就需要将当前的用户添加到sudoers用户组中。
一. 修改/etc/sudoers文件的权限
1. 因为/etc/sudoers文件的所有者是root,这个文件当前的权限是
-r--r-----. 1 root root #440
2. 我们要对这个文件进行修改就需要将其权限改成对其他用户具备写权限,或者切换到超级用户模式。
切换用户: 直接切换至root模式,并直接修改文件
或者
修改权限: 在root身份修改权限后以当前用户身份访问。
二. 向sudoers中添加用户
1. 在sudoers文件中找到
root ALL=(ALL) ALL # 后面换行并将当前用户添加进去
xxx ALL=(ALL) ALL;
2. 如果不想每次都输入密码,可以修改后不需要每次都输入密码了。
xxx ALL=(ALL) NOPASSWD: ALL
三. 撤销对/etc/sudoers文件权限的修改
如果是通过修改文件的权限去添加用户的,则在添加完后需要还原文件的权限属性。
四. 注意事项
如果在修改权限时为了图方便,直接chmod 777 /etc/sudoers 则在添加完用户后必须还原权限,如果不还原则在执行sudo命令时会出现如下错误提示:
- sudo:/etc/sudoers is world writable
- sudo:no valid sudoers sources found ,quitting
- sudo:unable to initialize policy plugin
执行以下命令即可修复这个问题
以root身份运行: chmod 440 /etc/sudoers 即可