sudo 提示 'xxx is not in the sudoers file.This incident will be reported.的解决方法'

在使用 Linux 的过程中,有时候需要临时获取 root 权限来执行命令时,一般通过在命令前添加 sudo 来解决。

但是第一次使用 sudo 时,有可能会得到这样一个错误提示

xxx is not in the sudoers file.This incident will be reported.的解决方法

xxx代表你当前的用户名。

出现该问题的原因是,在通过 sudo 获取 root 权限之前,用户需要先获得使用 sudo 命令的权限。

通过简单的搜索,我得知 sudo 命令的配置由 /etc/sudoers 文件来定义,所以我们要通过修改这个配置文件来让当前的用户获得 sudo 命令的权限。

我果断地执行了 vim /etc/sudoers ,然后看到下面的画面

sudo 提示 'xxx is not in the sudoers file.This incident will be reported.的解决方法'_第1张图片

放在 /etc 下的文件当然只有 root 能操作,于是我使用 su 切换成 root

我再一次执行了 vim /etc/sudoers

sudo 提示 'xxx is not in the sudoers file.This incident will be reported.的解决方法'_第2张图片

发现居然是个只读的文件, 我用下面的命令查看了这个文件的权限设置

[x@1lin24 ~]$ ls -l /etc/sudoers
-r--r----- 1 root root 3955 Oct 18 09:50 /etc/sudoers

这个文件对于 root 只有读的权限。但文件开头提醒我们,编辑这个文件只能使用 visudo

当然,我在网上也看到过,给 /etc/sudoers 添加了写的权限,设置完之后再取消掉。

这里不建议这样,首先,官方已经给出了不修改文件读写权限的方法,另一方面,修改权限的操作容易出现失误或者遗漏。

有了 visudo ,我们要看一下如何来配置,下面我列举了几个比较常用的配置语法:

username     ALL=(ALL)        ALL    # 允许用户执行 sudo 命令(需要输入密码)
%username     ALL=(ALL)        ALL    # 允许用户组执行 sudo 命令 (需要输入密码)
username    ALL=(ALL)        NOPASSWD: ALL    # 允许用户执行 sudo 命令 (不需要输入密码
%username    ALL=(ALL)     NOPASSWD: ALL    # 允许用户组执行 sudo 命令 (不需要输入密码

你可能感兴趣的:(sudo 提示 'xxx is not in the sudoers file.This incident will be reported.的解决方法')