*** is not in the sudoers file. This incident will be reported.”
(用户不在sudoers文件中……)
处理这个问题很简单,但应该先理解其原理再操作。首先要明白root的密码一般用户是不应该知道的,但一般用户有时可能要用到root的一些权限。
这里就有了一个 /etc/sudoers 文件,用来保存一些用户,使这些用户可以通过sudo命令来暂时获取root的权限。这些用户使用sudo时输入的密码是当前用户密码,而不是root密码。还可以在sudoers文件里限制一般用户的权限,这样就有了安全保证。
我在网上搜这个问题,大家都是这样解决的:
现在要让你的用户获得sudo使用权
1.切换到超级用户root
$su -
2.查看/etc/sudoers权限,可以看到当前权限为440
$ ls -all /etc/sudoers
-r--r----- 1 root root 744 6月 8 10:29 /etc/sudoers
3.更改权限为777
$chmod 777 /etc/sudoers
4.编辑/etc/sudoers
$vi /etc/sudoers
5.在文件中找到root ALL=(ALL) ALL,在该行下添加提升权限的用户信息,如:
root ALL=(ALL) ALL
‘yourname’ ALL=(ALL) ALL
然后保存退出。
第一个ALL是指网络中的主机,我们后面把它改成了主机名,它指明你的用户可以在此主机上执行后面的命令。
第二个括号里的ALL是指目标用户,也就是以谁的身份去执行命令。
最后一个ALL当然就是指命令名了。
具体这里不作说明
6.把/etc/sudoers权限改回440
$chmod 440 /etc/sudoers
7.操作完成,切换到你的用户下测试一下
实际上,这个问题也不没这么复杂,因为默认只有root能够执行sudo,因此其他账号若要使用sudo执行属于root的权限命令,则root需要先使用visudo去修改/etc/sudoers,让该账号能够使用全部或部分root命令功能。visudo相比直接使用vi的好处就在于,/etc/sudoers是有语法的,如果设置错误那会造成无法使用sudo命令的后果,而使用visduo去修改,系统会去检验有无语法错误。
1.切换到超级用户root
$su -
2.编辑/etc/sudoers
$visudo
3.在文件中找到root ALL=(ALL) ALL,在该行下添加提升权限的用户信息,如:
root ALL=(ALL) ALL
‘yourname’ ALL=(ALL) ALL
然后保存退出,效果和上面的方法是一样的。