用户 xxx is not in the sudoers file.
当在终端执行 sudo 命令时,提示用户 xxx is not in the sudoers file.
上网搜说是没有权限进行 sudo 操作,解决方法如下:
1. 切换到超级用户
首先切换到超级用户,可以直接登录超级用户账号,或者在当前终端直接切换,命令如下:
su root
2. 打开 sudoers 文件
你可以切换后,找到 sudoers 文件进行 nano 或 vim 打开,命令如下:
# Ubuntu 默认情况下通常使用 nano
nano etc/sudoers
# 或也可能是 vim 操作
vim etc/sudoers
也可以用 visudo 直接打开,命令如下(更推荐):
# visudo 会自动打开系统默认的 /etc/sudoers 进行编辑,并在保存前做语法校验
sudo visudo
3. 编辑 sudoers 文件
在 sudoers 文件中找到“root ALL=(ALL:ALL) ALL”这一行,然后在下面增加一行:
# xxx 是所需增加 sudo 权限的用户名称
xxx ALL=(ALL:ALL) ALL
4. 保存 sudoers 文件
增加完后进行保存退出,步骤如下:
-
保存(Write Out)
-
同时按下
Ctrl
+O
(即按住 Ctrl 键再按 O) -
屏幕下方会提示文件名(一般已自动填为
/etc/sudoers.tmp
),直接按回车确认保存
-
-
退出(Exit)
-
按
Ctrl
+X
即可退出 Nano,回到命令行 -
退出后,
visudo
会自动对刚保存的临时文件进行语法检查,若无错误则正式替换旧的sudoers
。若存在格式或拼写错误,Nano 会再次被打开并提示修正
-
ps:如果是 vim 编辑,则是步骤如下:
-
切换到普通模式(Normal Mode)
-
按一下
Esc
键,确保不再处于插入模式 -
屏幕左下角的
-- INSERT --
(或INSERT
)提示会消失,此时即进入普通模式
-
-
保存并退出
-
在普通模式下,输入
:wq
然后按回车:-
:w
表示“写入(write)” -
:q
表示“退出(quit)”
-
-
Vim 会先保存文件,再退出编辑界面,此时
visudo
自动进行语法校验,校验通过后生效,失败则返回 Vim 让你修正
-
-
若要放弃所有修改直接退出
-
确保处于普通模式(按
Esc
),然后输入:q!
并回车,Vim 会放弃当前所有改动并退出,此时visudo
不会修改原有的sudoers
-
5. 退出超级用户
保存好后,退出超级用户,登录原用户即可,命令如下:
# xxx 是原用户名称
su xxx