linux root登陆,密码正确但,错误提示su: Authentication failure

简介: 通过系统化的排查和解决方案,可以有效应对 `su: Authentication failure` 问题,确保系统安全和用户权限的正确管理。

解决 Linux 中 su: Authentication failure 的问题

在 Linux 系统中,当尝试使用 su 命令切换到 root 用户时,即使输入的密码正确,仍可能会遇到 su: Authentication failure 的错误提示。这个问题可能由多个原因引起,以下是详细的排查步骤和解决方案。

一、检查用户是否在 sudoers 列表中

  1. 编辑 sudoers 文件:确保用户在 /etc/sudoers 文件中具有适当的权限。使用 visudo 命令编辑 sudoers 文件:

    sudo visudo
    ​
    
  2. 添加用户权限:在文件中添加以下行,以确保用户具有使用 su 命令的权限:

    username ALL=(ALL) ALL
    ​
    

    username 替换为您的实际用户名。

二、检查 PAM 配置

PAM(Pluggable Authentication Modules)配置错误可能导致认证失败。

  1. 编辑 pam.d 文件:检查 /etc/pam.d/su 文件的配置,确保没有错误配置。该文件的内容应类似于:

    auth       required   pam_rootok.so
    auth       sufficient pam_wheel.so trust use_uid
    auth       required   pam_wheel.so use_uid
    auth       include    system-auth
    account    sufficient pam_rootok.so
    account    include    system-auth
    ​
    
  2. 确保 pam_wheel.so 配置正确:如果使用了 pam_wheel.so 模块,请确保目标用户属于 wheel 组:

    usermod -aG wheel username
    ​
    

三、检查 SELinux 配置

SELinux 可能会阻止某些认证操作。

  1. 临时禁用 SELinux:可以临时禁用 SELinux 以检查是否是其引起的问题:

    sudo setenforce 0
    ​
    
  2. 永久禁用 SELinux:如果确认是 SELinux 问题,可以编辑 /etc/selinux/config 文件,设置 SELINUX=disabled

    SELINUX=disabled
    ​
    
  3. 重启系统:修改后重启系统使设置生效:

    sudo reboot
    ​
    

四、检查系统日志

系统日志可以提供更多关于认证失败的详细信息。

  1. 查看认证日志:使用 journalctl 查看系统日志:

    sudo journalctl -xe
    ​
    
  2. 查看安全日志:检查 /var/log/secure 文件中的日志信息:

    sudo cat /var/log/secure
    ​
    

五、确认 root 用户状态

  1. 确认 root 用户是否锁定:检查 root 用户是否被锁定:

    sudo passwd -S root
    ​
    

    输出应为 root P 表示用户没有锁定。

  2. 解锁 root 用户:如果用户被锁定,可以使用以下命令解锁:

    sudo passwd -u root
    ​
    

六、检查 su 命令权限

  1. 确认 su 命令权限:确保 su 命令具有正确的权限设置:

    ls -l /bin/su
    ​
    

    输出应类似于:

    -rwsr-xr-x 1 root root 32128 Apr  4  2018 /bin/su
    ​
    

    rws 表示 su 命令具有 SUID 位。

  2. 修正 su 命令权限:如果权限不正确,可以使用以下命令修正:

    sudo chmod 4755 /bin/su
    ​
    

七、总结

通过以上步骤,您可以逐一排查和解决 su: Authentication failure 的问题。确保用户在 sudoers 列表中,检查 PAM 和 SELinux 配置,查看系统日志,确认 root 用户状态,以及检查 su 命令权限。希望这些方法能帮助您解决认证失败的问题。

思维导图

- 解决 Linux 中 su: Authentication failure 的问题
  - 检查用户是否在 sudoers 列表中
    - 编辑 sudoers 文件
    - 添加用户权限
  - 检查 PAM 配置
    - 编辑 pam.d 文件
    - 确保 pam_wheel.so 配置正确
  - 检查 SELinux 配置
    - 临时禁用 SELinux
    - 永久禁用 SELinux
    - 重启系统
  - 检查系统日志
    - 查看认证日志
    - 查看安全日志
  - 确认 root 用户状态
    - 确认 root 用户是否锁定
    - 解锁 root 用户
  - 检查 su 命令权限
    - 确认 su 命令权限
    - 修正 su 命令权限
​

通过系统化的排查和解决方案,可以有效应对 su: Authentication failure 问题,确保系统安全和用户权限的正确管理。

目录
相关文章
|
5月前
|
监控 安全 Linux
在Linux中设定账户密码的安全性策略
这些操作应该由有经验的系统管理员进行,因为不当的配置可能导致无法预期的安全问题或者系统访问问题。此外,提升安全性的同时,也需要考虑到用户的便利性,避免设置过于严苛的政策导致用户体验不佳。通常,强密码策略配合两因素认证(2FA)将大大加强账户的安全性。
443 13
|
6月前
|
运维 Ubuntu Linux
Linux重置root用户密码
本文详细介绍了Linux系统中root密码重置的核心技能,涵盖主流发行版如RHEL、CentOS、Debian、Ubuntu、Arch、openSUSE等的实操方法。内容包括通过GRUB引导编辑、单用户模式和Live CD救援三种方式重置密码的具体步骤,适配物理机、虚拟机及云服务器环境。文章分步解析了启动拦截、权限获取和密码重置三大阶段,并提供各发行版的实际操作代码示例,帮助管理员快速解决忘记root密码的问题。
|
8月前
|
安全 Shell Linux
Linux系统之su命令的基本使用
Linux系统之su命令的基本使用
494 4
Linux系统之su命令的基本使用
|
10月前
|
安全 Linux 数据安全/隐私保护
Linux权限揭秘“Root与Sudo”
Root用户是Linux系统中的超级用户,拥有对系统的完全控制权。Root用户几乎可以执行任何命令,修改任何文件,甚至删除系统上的所有内容。因此,Root用户的使用需要非常谨慎,以避免潜在的安全风险。
478 6
|
安全 Linux 数据安全/隐私保护
Linux 忘记密码解决方法
Linux 忘记密码解决方法
223 2
Linux 忘记密码解决方法
|
Linux Shell 数据安全/隐私保护
Linux如何在服务器上进行密码的修改?
【10月更文挑战第6天】Linux如何在服务器上进行密码的修改?
2200 1
|
Linux 数据安全/隐私保护 索引
linux inode索引节点使用率100% 解决+hustoj忘记密码+最新MDK注册方法
linux inode索引节点使用率100% 解决+hustoj忘记密码+最新MDK注册方法
184 1
|
安全 Linux 数据安全/隐私保护
Linux命令 su 和 sudo 的区别
【2月更文挑战第5天】
398 0
Linux命令 su 和 sudo 的区别
|
安全 Linux 数据安全/隐私保护
Linux中su、su -和sudo的区别
Linux中su、su -和sudo的区别
318 0
|
Ubuntu 安全 Unix
Linux 命令 su 和 sudo 的区别?
Linux 命令 su 和 sudo 的区别?
159 0