在 Ubuntu 22.04 上,你可以通过以下几种方法检查 root 密码是否被修改以及是否修改成功:

1. 检查日志文件

Ubuntu 系统会记录一些与用户账户和密码修改相关的日志。你可以查看这些日志文件来检查是否有密码修改的记录。

查看 auth.log 文件

/var/log/auth.log 文件包含了与认证相关的日志,包括密码修改记录。

sudo grep passwd /var/log/auth.log
  • 1.

如果 root 密码被修改,你会在输出中看到类似以下的记录:

Jul 31 12:34:56 hostname passwd[1234]: pam_unix(passwd:chauthtok): password changed for root
  • 1.
查看 syslog 文件

你也可以查看 /var/log/syslog 文件来查找密码修改记录。

sudo grep passwd /var/log/syslog
  • 1.
2. 检查 /etc/shadow 文件

/etc/shadow 文件中保存了用户的密码信息,你可以查看文件的修改时间来判断是否修改过密码。

ls -l /etc/shadow
  • 1.

输出中会包含文件的最后修改时间,例如:

-rw-r----- 1 root shadow 1200 Jul 31 12:34 /etc/shadow
  • 1.

如果修改时间与预期时间相符,说明密码可能在那个时间点被修改。

3. 尝试登录

最直接的方法是尝试使用新的 root 密码登录:

sudo su -
  • 1.

如果能够成功切换到 root 用户,说明密码修改成功。

4. 脚本修改后的提示信息

如果你使用脚本修改了 root 密码,脚本应该输出相应的成功或失败信息。确保你已经记录或检查了脚本的输出。

5. 查看历史命令

你可以查看用户的历史命令,以确认是否执行了修改密码的命令。

history | grep passwd
  • 1.
示例脚本

你可以编写一个简单的脚本来检查和验证密码修改:

#!/bin/bash

# 检查是否有密码修改记录
password_change_log=$(grep passwd /var/log/auth.log)
if [ -n "$password_change_log" ]; then
    echo "Password change log found:"
    echo "$password_change_log"
else
    echo "No password change log found."
fi

# 检查 /etc/shadow 文件的修改时间
shadow_file_mod_time=$(ls -l /etc/shadow | awk '{print $6, $7, $8}')
echo "Last modification time of /etc/shadow: $shadow_file_mod_time"

# 尝试使用新密码切换到 root 用户
echo "Attempting to switch to root user..."
if sudo su -; then
    echo "Password change was successful."
else
    echo "Password change failed."
fi
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.
  • 18.
  • 19.
  • 20.
  • 21.
  • 22.

将此脚本保存为 check_password_change.sh 并执行:

chmod +x check_password_change.sh
./check_password_change.sh
  • 1.
  • 2.

通过这些方法,你可以检查 root 密码是否被修改以及是否修改成功。