shiniei
shiniei
发布于 2025-11-06 / 4 阅读
0
0

解决无法使用sudo问题

🔒 解决 “[用户名] 不在 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: 允许此用户执行 所有命令

步骤三:保存并验证

  1. 保存并退出:

    • 如果您使用的是 vi/vim 编辑器(visudo 的默认编辑器):
      • 先按 Esc 键退出编辑模式。
      • 然后输入 :wq 并按 回车键 (w=write/写入, q=quit/退出)。
  2. 验证:

    • 先使用 exit 命令退出 root 账户。

    • 然后使用您的账户运行一个简单的 sudo 命令进行验证:

      Bash

      sudo ls
      
    • 如果命令成功执行(系统会提示您输入您的用户密码,而不是 Root 密码),则表示权限已成功授予。


评论