怎样解决“XXX is not in the sudoers file”错误

问题:我想在我的Linux系统上使用sudo来运行一些特权命令,然而当我试图这么做时,我却得到了"[我的用户名] is not in the sudoers file. This incident will be reported."的错误信息。我该怎么处理这种sudo错误呢?

sudo是一个允许特定的用户组用另一个用户(典型的是root)的特权来运行一个命令。sudo有详细的日志功能,并且提供了对用户可通过sudo来运行哪些命令的细粒度控制。

Sudo vs. Su

su命令也提供了同样的特权提升功能,两者不同的是它们认证过程和特权变化的粒度。su允许你从你的登录会话切换到另一个用户的会话,然后你可以随心所欲地用该用户的特权来运行任何程序,但是你需要知道目标用户的密码才能切换这个用户。而另一方面,sudo能在单个命令的基础上工作,允许你用root的特权来运行单个命令。用sudo你不必一定要知道root的密码,但是在提示输入sudo密码的时候要输入你的密码。

在Sudoers列表里添加用户

作为一个新用户的你如果试图运行sudo命令,你会碰到以下错误。意思是你不在这个包含经过认证就可以使用sudo特权的这么一个用户组的sudoers列表里。

 
 
  1. [my-user-id] is not in the sudoers file. This incident will be reported.

有两个方法可以把你加入到sudoers列表中去。

方法一

第一个方法是把你添加到名为sudo的Linux用户组里。这个特殊的Linux用户组是预配置来使用sudo的。因此,一旦你在这个组里面,那你就可以运行sudo命令了。

以下命令会把你加入到Linux的sudo组里,你需要在root用户下运行该命令。

首先切换到root
#su - 
(注意有- ,这和su不同,在用命令"su"的时候只是切换到root,但没有把root的环境变量传过去,还是当前用户的环境变量,而使用带横线参数的"su -"命令则将环境变量也一起转换过去,就象用root登录一样)

 
 
  1. # adduser <用户名> sudo

现在来确认你的组员资格有没有更新,使用groups命令来看看你当前属于哪个组的列表里。这个列表必定是包含sudo组的。

 
 
  1. $ groups

 
 
  1. alice adm cdrom sudo dip plugdev fuse lpadmin netdev sambashare davfs2 libvirtd docker promiscuous

组员资格变动(和sudo访问)会在你登出后重新登录后生效。

方法二

第二个能让你使用sudo的方法是直接把你自己添加到 /etc/sudoers 这个配置文件中去。

要修改 /etc/sudoers 文件,你可以使用一个名为visudo的特殊sudo编辑器命令。用root身份简单调用以下命令。

 
 
  1. # visudo

这条命令能打开并编辑 /etc/sudoers 文件,将以下这行文字添加至文件末尾,并按Ctrl+X。提示出现时,保存修改退出。

 
 
  1. <username> ALL=(ALL) ALL

这个修改会立即生效,你就能马上使用sudo了。


"xxx is not in the sudoers file. This incident will be reported"错误是在执行sudo命令时出现的。这个错误提示表示用户xxx没有被授权使用sudo命令。sudo命令是一种特权命令,只有被授权的用户才能使用它来执行以root权限运行的命令。 要解决这个错误,可以采取以下几种方法: 1. 添加用户到sudo组:在Linux系统中,可以使用visudo命令编辑sudoers文件,将用户添加到sudo组中。具体操作是打开终端并输入sudo visudo命令,然后找到sudoers文件中的"# User privilege specification"部分,在其中添加一行:xxx ALL=(ALL:ALL) ALL,其中xxx是你的用户名。保存并退出sudoers文件后,你就可以使用sudo命令了。 2. 创建新的sudoers文件:如果你无法编辑sudoers文件,或者无法使用sudo命令来编辑该文件,你可以创建一个新的sudoers文件。具体操作是在终端中以root身份运行命令:sudo cp /etc/sudoers /etc/sudoers.bak,然后使用文本编辑器打开/etc/sudoers.bak文件,并按照需要修改该文件。在保存并退出文件后,将新的sudoers文件复制到/etc目录中:sudo cp /etc/sudoers.bak /etc/sudoers。 3. 使用root账户操作:如果你知道root账户的密码,可以直接切换到root账户执行需要root权限的操作,而无需使用sudo命令。具体操作是在终端中输入su -命令,然后输入root账户的密码登录到root账户。注意,在使用root账户时要小心操作,确保只执行必要的操作。 总结起来,要解决"xxx is not in the sudoers file. This incident will be reported"错误,你可以将用户添加到sudo组、创建新的sudoers文件或者使用root账户操作。这些方法中的任何一个都可以帮助你解决这个问题。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *3* [XXXX is not in the sudoers file. This incident will be reported解决方法](https://blog.csdn.net/qq_37964379/article/details/104193627)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* [xxx is not in the sudoers file.This incident will be reported错误](https://blog.csdn.net/m0_49448331/article/details/125920541)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值