linux sudoers修改导致不能在终端使用sudo 和su的解决方法

首先要严正声明:如果不是非常必要,请不要擅自修改/etc/sudoers里的内容

如果终端执行sudo 相关指令,但是提示 用户名不在sudoers文件中,网上有解决方案 如下:

  1. 切换到root用户

    [linux@localhost ~]$ su root

    密码:

    [root@localhost ~]#

  2. 2

    查看/etc/sudoers文件权限,如果只读权限,修改为可写权限

     [root@localhost ~]# ll /etc/sudoers

    -r--r-----. 1  root root 4030 12月  10 09:55 /etc/sudoers

     [root@localhost ~]#  chmod 777 /etc/sudoers

    [root@localhost ~]# ls -l /etc/sudoers

    -rwxrwxrwx. 1 root root 4030 12月  10 09:57 /etc/sudoers

  3. 3

    修改/etc/sudoers文件,执行命令如下:

    /*username是你的用户名*/

    [root@localhost ~]# echo 'username  ALL=(ALL)    ALL' >> /etc/sudoers  

    或者root权限下输入Visudo 或者 vim /etc/sudoers,找到 root    ALL=(ALL)    ALL的字段,在下一行追加:

    username    ALL=(ALL)     ALL

    5分钟之后密码过期,下次需要重新输入,如果不想如此麻烦,可以用以下方法

    username    ALL=(ALL)     NOPASSWD: ALL

    说明:格式为{用户名    网络中的主机=(执行命令的目标用户)    执行的命令范围}

  4. 4

    保存退出,并恢复/etc/sudoers的访问权限为440

    [root@localhost ~]# chmod 440 /etc/sudoers

    [root@localhost ~]# ll /etc/sudoers

    -r--r-----. 1 root root 4030 12月  10 09:59 /etc/sudoers

  5. 5

    切换到普通用户,测试用户权限提升功能

  6. 如果你发现在你执行第一步su root时提示:su 认证失败,那么问题来啦,你要解决sudo不在sudoers的问题,必须要跳转到root目录,但是su root又无法认证,由于你更改了sudoers的内容;环环相套,
  7. 我的解决方法是:重启电脑,一直按着esc键,进入recovery mode,选入 root,回车,这是会进入root目录
  8. 在root终端输入  mount -o remount rw /
  9. 然后 chmod 777 /etc/sudoers
  10. nano /etc/sudoers 回车,然后在后端加入 %admin ALL=(ALL) ALL 回车 sudo    ALL=(ALL:ALL) ALL 保存
  11. 输入 chmod 440 /etc/sudoers 回车
  12. 输入 reboot

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 如果修改了/etc/sudoers文件后无法重启系统,可以尝试以下解决方法: 1. 在启动画面按下e键,进入启动参数编辑界面。 2. 找到“linux”开头的行,在末尾添加init=/bin/bash。 3. 按下Ctrl + x或F10键,使用这些修改启动系统。 4. 系统将进入单用户模式,你可以进入系统并修改/etc/sudoers文件。 5. 修改完成后,输入“reboot”命令重启系统。 注意:在修改/etc/sudoers文件之前,应该备份原始文件,以便在出现问题时进行恢复。 ### 回答2: 当我们在Linux系统中修改了/etc/sudoers文件后,如果无法重启系统,可能是由于对sudoers文件的修改导致sudo命令无法正常执行,进而导致系统无法正常重启。解决此问题的方法如下: 1. 尝试使用备份文件恢复sudoers文件:在修改sudoers文件之前,我们通常会创建一个备份文件,其命名类似于sudoers.bak。可以尝试将备份文件复制回/etc/sudoers,覆盖已经修改的文件。 2. 利用恢复模式(Single User Mode)修复系统:在启动时选择恢复模式,通常通过在GRUB菜单中选择“恢复模式”或者“single user mode”。进入恢复模式后,系统以最小的运行级别启动,并且只使用root帐户身份,不需要sudo权限。在此模式下,可以使用root权限修改/etc/sudoers文件,并确保修改正确。 3. 使用安装介质进入救援模式:如果无法进入恢复模式,可以使用Linux安装介质(如光盘或USB驱动器)进入救援模式。在受损的系统中,选择“救援模式”选项,并按照提示选择语言和键盘布局。进入命令行环境后,可以挂载受损的根文件系统,并修改/etc/sudoers文件进行修复。 4. 使用其他Linux系统启动并挂载根文件系统:如果系统无法正常启动,但您拥有其他可以正常运行的Linux系统,可以使用该系统启动电脑,并将受损系统的根文件系统挂载到新系统中。然后,对挂载的文件系统中的/etc/sudoers文件进行修复。 5. 在单用户模式下重建sudoers文件:如果以上方法都无法解决问题,可以尝试在单用户模式下重建sudoers文件。在单用户模式下,以root用户身份,使用文本编辑器(如vi或nano)打开sudoers文件,并按照正确的语法和格式进行修改。然后保存文件并尝试重启系统。 总的来说,当我们在Linux系统中修改了/etc/sudoers文件后无法重启系统时,可以尝试恢复备份文件、进入恢复模式修复、使用安装介质进入救援模式、或者在单用户模式下重建sudoers文件等方法解决问题。 ### 回答3: 解决Linux修改了/etc/sudoers后无法重启系统的问题有以下几种方法: 1. 使用恢复模式:进入恢复模式后,挂载根目录为只读模式,并修复/etc/sudoers文件中的错误。在终端中输入以下命令: ``` mount -o remount,ro / visudo ``` 然后修复/etc/sudoers文件并保存退出。最后重新启动系统。 2. 利用启动盘修复:使用Linux启动盘或其他可引导的介质启动系统,将根目录挂载到一个临时目录下,并修复/etc/sudoers文件中的错误。具体步骤如下: - 插入启动盘并从中启动系统。 - 进入恢复模式并选择root shell选项。 - 将根目录挂载到一个临时目录下,例如/mnt: ``` mount /dev/sda1 /mnt ``` - 使用文本编辑器打开修复/etc/sudoers文件: ``` nano /mnt/etc/sudoers ``` - 修复文件中的错误并保存退出。 - 卸载挂载的根目录: ``` umount /mnt ``` - 重新启动系统。 3. 由于修改/etc/sudoers文件可能导致权限问题,可能无法使用sudo命令执行操作。可以使用root用户登录系统,并在终端中输入以下命令修复文件: ``` su visudo ``` 然后修复/etc/sudoers文件并保存退出。 4. 如果以上方法都无法解决问题,可以考虑备份重要数据后重新安装系统。在安装过程中,确保不修改/etc/sudoers文件,以免再次出现无法重启系统的问题。然后将备份的数据恢复到新系统中。 无论选择哪种方法,都应该谨慎修改/etc/sudoers文件,并确保在修改之前备份好该文件,以便发生问题时可以方便地恢复。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值