在Ubuntu及其衍生产品中,当你尝试以普通用户的身份执行Linux命令时,你可能会收到"sudo不在sudoers文件中"。这一事件将被报告为"错误"。此错误消息阻止普通用户在Linux系统上运行管理命令。
"sudoers文件中没有"错误的原因
此错误消息可能是由于我们列出的几个原因造成的:
- 如果您尝试使用“sudo”运行管理命令,但您在系统上的用户名未被识别为admin或没有执行此类命令的权限。
- 如果当前用户未包括在sudoers文件中。Sudoers文件是一个系统配置文件,其中包括允许运行“sudo”命令以执行管理任务的所有已识别用户和组的角色。因此,如果您的用户名未包含在此文件中,而您尝试使用“sudo”命令执行管理操作,则它会阻止您的访问,并在终端上显示“用户名不在sudoer文件中”的错误消息。
如何解决“用户不在Sudoers文件中”错误
有几种解决方案可以修复这个“用户名不在sudoers文件中”的错误,我们将在本节中讨论这一错误。
解决方案1:将用户添加到Sudo组
第一个解决方案是将用户添加到sudo组。如果用户尚未添加到sudo组。在"sudo"组中添加用户是很重要的;您应该拥有管理员或根权限。要查看sudoers文件内容,可以使用"cat"命令:
$cat/etc/sudoers
使用以下命令将用户名添加到sudo组:
#adduser username sudo
例如,我们有一个Ubuntu用户名为"samreenaaslam",我们添加到了sudo组:
#adduser samreenaaslam sudo
解决方案2:在sudoer文件中添加用户名
如果用户不在"/etc/sudoers"文件中,或者该文件被修改为停止向管理员或sudo组添加成员以获得超级用户权限,则在这种情况下,您可以将用户名添加到"/etc/sudoer"文件中。使用以下命令在文本编辑器中打开此文件:
#visido
或
$sudo visudo
现在,文件内容将显示在您的终端中。找到以下行并添加用户名以授予权限:
#用户权限规范
root ALL =(ALL:ALL)ALL
(全部:全部)全部
#管理员组的成员可以获得根权限
% admin ALL =(ALL)ALL
#允许sudo组成员执行任何命令
% sudo ALL =(ALL:ALL)ALL
#请参阅sudoers(5)了解更多关于"#include"指令的信息:
@ includedir/etc/sudoers. d
解决方案3:更改sudoers文件
此错误可能是由于缺少未设置为0440的文件权限。要设置"/etc/sudoers"文件的权限,请使用以下命令:
#chmod 0440/etc/sudoers
或
sudo chmod 0440/etc/sudoers
注意:如果您使用的是基于CentOS或RPM的发行版,请在轮组中添加用户以修复此错误并在各自的文件中进行更改。
结论
这就是解决"用户名不在sudoers文件中"错误的所有解决方案。如果您在Linux系统上遇到此类错误,尤其是在基于Debian的发行版上,请使用提供的方法来修复此错误。我们希望本指南能帮助您解决sudoer文件错误。