问题

也许是由于之前对/usr 下的文件修改权限为 777 了,现在不能直接 su 切换为 root 用户了,会报错:

su: Authentication Failure

解决过程

第一次尝试

修改密码?

首先上网搜基本都是建议直接sudo passwd root

但是 sudo 报错:

[user_name@localhost ~]$ sudo passwd root sudo: /usr/bin/sudo must be owned by uid 0 and have the setuid bit set

单人模式?

对于上述 sudo 报错,看到这一篇文章,说是需要进入单人模式:

ubuntu /usr/bin/sudo必须属于用户ID 0(的用户)并设置setuid位 踩坑解决_必须属于用户id0并且设置setuid-CSDN博客

可是如何进入单人模式呢?

我先按照这篇文章的 把ro修改成“rw init=/sysroot/bin/sh”:

Linux系统CentOS进入单用户模式和救援模式详解 - EasonV5 - 博客园

可什么命令都执行不了

后来改为如此进入,则可以执行 chown 和 chmod 命令:

centos7 进入单人模式

  • 重启 CentOS 7 系统
    • 当出现 GRUB 启动菜单时(通常会显示 CentOS Linux 选项),按下键盘上的e键进入编辑模式
  • 修改启动参数
    • 在打开的编辑界面中,找到以linux16或linux开头的行(通常是较长的一行)
    • 找到rhgb quiet部分,将其替换为single或init=/bin/bash
    • 如果你想进入带网络支持的救援模式,可以替换为rescue
  • 启动到恢复模式
    • 按下Ctrl + X或F10启动系统
    • 系统会进入单用户模式(恢复模式),此时你将获得 root 权限,无需输入密码
  • 退出恢复模式
    • 完成必要的修复操作后,执行reboot命令重启系统回到正常模式

新的 sudo 报错

回到正常模式 sudo,报错

user_name is not in the sudoers file(user_name 是我的普通用户)

参考这一篇解决Linux下is not in the sudoers file解决方法-CSDN博客

对文件的修改保存不了的话参考评论区,要先给权限chmod u+w /etc/sudoers

失败

sudo passwd root修改密码,并不能解决最初的问题

第二次尝试

这次找到了这篇文章CentOS 7下Authentication failure问题 - 疯子110 - 博客园

它的结尾如此写道:

我尝试了 sudo su,成功了。。。

结论

su 的问题没有解决,但是 sudo su 可以先做为替代方案。

Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐