一、SU 认证失败的原因

1、权限问题。SU 的认证需要 root 权限,如果当前用户没有 root 权限,那么认证会失败。可以通过使用 su 命令或者通过将当前用户加入 sudoers 中获取 root 权限。


// su 命令获取 root 权限
$ su

// 将当前用户加入 sudoers 中
$ sudo visudo
// 在文件末尾添加一行
username ALL=(ALL) ALL

2、密码输入错误。SU 认证需要输入 root 用户的密码,如果密码输入错误,那么认证会失败。可以通过重新输入密码或者修改 root 用户密码来解决。


// 重新输入密码
$ su
Password: [输入错误密码]
Sorry, try again.

// 修改 root 用户密码
$ sudo passwd root

3、环境变量问题。如果当前 shell 环境变量没有设置正确,也可能会导致 SU 认证失败。可以通过设置 PATH 等环境变量来解决。


export PATH=$PATH:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin

二、SU 认证失败的解决方案

1、获取 root 权限。可以使用 su 命令或者将当前用户加入 sudoers 中。


// su 命令获取 root 权限
$ su

// 将当前用户加入 sudoers 中
$ sudo visudo
// 在文件末尾添加一行
username ALL=(ALL) ALL

2、输入正确的密码。如果密码输入错误,可以重新输入密码或者修改 root 用户密码。


// 重新输入密码
$ su
Password: [输入错误密码]
Sorry, try again.

// 修改 root 用户密码
$ sudo passwd root

3、设置环境变量。如果环境变量不正确,可以通过设置 PATH 等环境变量来解决。


export PATH=$PATH:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin

三、遇到 SU 认证失败解决的经验

1、检查权限和密码。SU 认证失败的常见原因是权限和密码问题,先检查一下这些方面。

2、查看日志。SU 认证失败会有对应的日志,可以通过查看日志来获取更多信息,进行排查。


$ sudo tail -f /var/log/auth.log

3、尝试使用其他认证方式。如果 SU 认证一直失败,可以尝试使用其他认证方式,比如 sudo 等。


// 使用 sudo 获取 root 权限
$ sudo [command]

四、结语

以上是针对 SU 认证失败的原因和解决方案的分析和总结,希望对大家在开发和运维过程中有所帮助。