🔒 解决 “[用户名] 不在 sudoers 文件” 错误
当您尝试使用 sudo 命令但系统提示 <user> is not in the sudoers file.(用户不在 sudoers 文件)时,意味着您的账户没有执行管理员命令(Root权限)的权限。
您需要将您的账户添加到 sudoers 列表中以授予权限。
⚠️ 前置条件:切换到 Root 账户
由于您没有 sudo 权限,您必须先切换到拥有最高权限的 Root 账户才能进行修改。
-
命令: 切换用户并使用 Root 账户的环境变量。
Bash
su - -
操作: 系统将提示您输入 Root 账户的密码。
步骤一:使用 visudo 命令编辑配置
visudo 是编辑 /etc/sudoers 文件的专用安全工具。它会在您保存文件时检查语法错误,防止您因为错误的编辑而导致所有用户都无法使用 sudo,从而锁定系统。
-
命令:
Bash
visudo
步骤二:添加用户权限
在 visudo 打开的配置文件中,找到类似以下格式的行:
# User privilege specification
root ALL=(ALL:ALL) ALL
在该行下面,仿照 root 用户的格式添加一行,为您的目标用户授权。
-
内容:
用户名 ALL=(ALL:ALL) ALL请将
用户名替换为您自己的实际用户名(例如rana)。 -
各字段含义:
用户名: 授予权限的账户名。- 第一个
ALL: 允许此用户在任何主机上使用sudo。 (ALL:ALL): 允许此用户以 任何用户 和 任何用户组 的身份执行命令。- 最后一个
ALL: 允许此用户执行 所有命令。
步骤三:保存并验证
-
保存并退出:
- 如果您使用的是 vi/vim 编辑器(
visudo的默认编辑器):- 先按
Esc键退出编辑模式。 - 然后输入
:wq并按 回车键 (w=write/写入, q=quit/退出)。
- 先按
- 如果您使用的是 vi/vim 编辑器(
-
验证:
-
先使用
exit命令退出root账户。 -
然后使用您的账户运行一个简单的
sudo命令进行验证:Bash
sudo ls -
如果命令成功执行(系统会提示您输入您的用户密码,而不是 Root 密码),则表示权限已成功授予。
-