前言
首先Sudo命令主要是让非root用户以root身份执行命令,来完成一些我们这个帐号完成不了的任务。
然而在你新建一些用户之后,在使用sudo命令输入密码过后,会被提示"不在 sudoers文件中,此事将被报告"
思路
首先已知导致这个问题的主要原因是因为该用户的权限不够
且里面提到了sudoers文件,所以第一反应当然是去找/etc/sudoers文件
打开这个文件之后,看到了
root ALL=(ALL) ALL
%wheel ALL=(ALL) ALL这两行内容,查看上面的注释,发现这两段的意思分别是
允许`root`用户在`任何地方`运行`任何命令`
允许`wheel`用户组在`任何地方`运行`任何命令`看懂这个了之后的事情就很好办了~
解决方案
根据上面的思路,这个问题有两个解决办法。
1.通过添加用户的方案来给予权限
添加用户给予权限
这个办法可以说是十分简单了
首先我们切换到
找到
首先我们切换到
root用户找到
/etc/sudoers文件并打开,找到下面这一行root ALL=(ALL) ALL在它的下方紧跟着添加下面这一句。注意username要改为你那个显示不在 sudoers文件中的用户名
username ALL=(ALL) ALL加好后保存退出,用刚才有问题的账户重新用sudo来执行命令即可发现问题已经解决!
2.通过添加用户组,并将没权限的用户添加至用户组来解决
添加用户组给予权限
这个方法略显麻烦,但是十分适合那些用户比较多,懒得一个个去通过添加用户名的方法来解决问题的朋友①首先我们可以新建一个用户组,例如命名为
③完成后,将组添加至
①首先我们可以新建一个用户组,例如命名为navidrome
在新建之前我们首先查一下该组是否已仅存在
grep "navidrome" /etc/group若没有返回内容,我们创建组即可
groupadd navidrome创建好后,我们仍可用上一个命令来确认创建是否成功
grep "navidrome" /etc/group②成功后,我们将没有权限的用户添加进去
usermod -G 组名 用户名比如
usermod -G navidrome test添加好后,我们还是可以用之前的命令来查看该用户组是否已有该用户
grep "navidrome" /etc/group③完成后,将组添加至sudoers文件内
找到/etc/sudoers文件,在%wheel ALL=(ALL) ALL
这一行的下方添加以下内容,注意用户组改为你创建的用户组名
%用户组 ALL=(ALL) ALL如
%navidrome ALL=(ALL) ALL保存后就完工了,现在你可以去测试一下是否修复了该问题!
顺便,如果你想让用户在使用sudo命令时不再每次输入密码,可以将
XXX ALL=(ALL) ALL这一行中,最后的ALL改为NOPASSWD: ALL,例如
XXX ALL=(ALL) NOPASSWD: ALL这样就省去了每次输密码的麻烦。
当然,做这一步时请你清楚你在做什么!不建议用!
以上~欢迎大佬来进行指点!