linux 添加sudoer,Ubuntu下将用户添加为sudoer

具有sudoer权限的用户,可以在命令前加sudo使自己临时拥有root权限来执行该命令。一直以为Ubuntu添加sudoer用户很简单,只需改下/etc/sudoers配置。今天却遇到了难题,导致所有sudo命令都无法执行,花了好大的功夫才恢复过来。觉得有必要记录一下,分享给大家。

首先看下添加sudoer用户的方法:

将/etc/sudoers文件的写权限赋上

$ sudo chmod u+w /etc/sudoers

注意,这里是”u+w”。用”a+w”就会出问题,后面会讲到。

打开/etc/sudoers文件

$ sudo vi /etc/sudoers

添加你要变为sudoer的用户(假设”bjhee”),可以加到root配置下面

# User privilege specification

root ALL=(ALL:ALL) ALL

bjhee ALL=(ALL:ALL) ALL

如果你希望该用户输入sudo命令时,不用输密码,你可以将配置改为

bjhee ALL=(ALL:ALL) NOPASSWD:ALL

如果你希望所有的sudoer用户输入sudo命令时,都不用输密码,你可以将%sudo这一行的配置改为

%sudo ALL=(ALL:ALL) NOPASSWD:ALL

现在说下我遇到的问题。当我为/etc/sudoers文件赋上写权限时,使用了”a+w”

$ sudo chmod a+w /etc/sudoers

也就是所有用户都可以改此文件。从此执行任何sudo命令,都会报下面的错误:

sudo: /etc/sudoers is world writable

sudo: no valid sudoers sources found, quitting

sudo: unable to initialize policy plugin

而且你想改回来都不行,因为无法sudo操作。查看网上资料,说进入root模式下即可恢复:

重启Ubuntu,并按”ESC”键,进入GRUB引导菜单

选择”Advanced options for Ubuntun”,然后选择”…recovery mode”

等待片刻,你会看到选项菜单,选择”root”,即可进入root模式

547c099daf1b9dd46216cdfd29ed0394.png

既然已经root了,应该什么都能做了吧。试下chmod将文件权限恢复,居然还报错,错误信息是:

chmod: changing permissions of '/etc/sudoers': Read-only file system

这是怎么回事,看来网上很多方案都不彻底。你需要执行下面的命令来以读写方式重新挂载文件系统,解决Read-only file system问题

$ mount -o remount rw /

然后chmod恢复/etc/sudoers权限,输入”exit”退出,选择”resume”选项重启系统。从此一起恢复正常了。

后记

后来又在网上看到一篇更简单的修改sudoer用户的方法。只需输入命令:

$ sudo visudo

就可以编辑sudoers文件了。编辑完后,按”Ctrl+O”保存,注意保存的文件要改为/etc/sudoers。确认保存输入”Y”,然后按”Ctrl+X”退出。这个方法看似安全多了,建议大家使用这个方法,就不用像我之前这么折腾了。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 如果Linux用户不在sudoers中,那么他们将无法使用sudo命令运行具有管理员权限的操作。这意味着他们将无法安装软件、修改系统设置等等。解决方法是将用户添加sudoers文件中或者创建一个新的sudoer账户。 ### 回答2: sudo是一个在Linux系统中非常重要的命令。它可以让普通用户通过输入密码来获得root用户的权限,从而执行一些需要超级用户权限的操作。这个权限是通过把普通用户加入sudoer(使用sudo用户)组来控制的。 如果一个Linux用户不在sudoer组中,那么就不能执行sudo命令,也就不能获得root用户的权限。这个用户只能使用普通用户的权限,执行普通用户能够执行的一些操作。 在一个Linux系统中,把用户加入sudoer组的方法如下:首先要使用root用户或者已经在sudoer组中的用户,执行以下命令: ``` sudo usermod -a -G sudo username ``` 其中,username是要被加入sudoer组的用户名。这个命令将username用户加入sudoer组中。 Linux用户不在sudoer组中可能存在的影响是,他不能执行一些需要root用户权限的操作。例如,如果需要修改一些系统文件,或者执行一些需要root权限的安装程序,这个用户就需要先获得root权限。如果不能通过sudo命令获得这个权限,那么这些操作就无法执行。 因此,如果一个Linux系统中有多个用户需要执行需要root权限的操作,建议把这些用户都加入sudoer组中,以方便管理和操作。 ### 回答3: sudoer是指在Linux系统上可以使用sudo命令的用户列表。当Linux用户需要执行系统级别的操作时,需要获得超级用户的权限。但是,在Linux系统上所有用户都不具备超级用户的权限,而只有那些被列入sudoer列表中的用户才能够通过sudo命令来获得超级用户权限。 如果一个Linux用户不在sudoer中,那么他就不能够使用sudo命令来获得超级用户权限。这意味着,他将无法执行那些只有超级用户才能执行的系统操作,比如修改系统配置、安装程序或者管理用户等。这样将会给用户带来很多限制和不便,特别是在需要处理系统级别的问题时。因此,在Linux系统中,将一个用户添加sudoer列表中是很重要的。 但是,并不是所有的用户都应该被添加sudoer列表中。因为在sudoer列表中的用户可以获得超级用户权限,他们有可能会误操作或者意外地删除或破坏掉系统中重要的文件或者数据。因此,在将用户添加sudoer列表之前,必须非常小心,确保这个用户需要这样的权限。同时,应该给sudoer用户提供必要的培训和指引,以确保他们正确地使用sudo命令来避免出现潜在问题和安全风险。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值