清除Linux用户密码

本文介绍两种方法清除Linux用户的密码。清除密码的前提是,机器就在你手边,可以随意重启。文中介绍的方法都经过测试,但随着操作系统的发展,具体的操作方式可能会发生变化,所以重要的是提供两种思路供参考。


一、利用单用户模式
1.进入root shell,有两种方法。其一是在GRUB选项中选择Recovery Mode(恢复模式),进入子菜单后选

择“root”项启动root shell。其二是在GRUB相应选项上按e键进入编辑界面,在“linux /boot/… … root=… quite 

…”一行(有的是“kernel”一行)中加入“single”选项,也可以用数字“1”代替,引导启动即可。
(有的系统可能在启动时不显示GRUB菜单,若要其显示,按住Shift键,也有的可能是Esc键。)

2.输入 passwd -d [user] 就可以把user用户的登录密码清除。

3.reboot重启。


二、使用live系统修改shadow文件
1.启动live系统。

2.sudo fdisk -l 查看磁盘分区情况,识别安装分区所在。

3.挂载安装分区(如/dev/sda2)。sudo mount /dev/sda2 /mnt

4.进入其etc文件夹,注意不是live系统的etc文件夹。 cd /mnt/etc

5.编辑shadow文件,找到要清除密码的用户名(一般在最后两行),将其名字之后的两个冒号之间的内容全部删除(两个冒号要保留!)。(这步改动之前最好先备份)

6.如果顺利,密码应该已经被清除了,重启即可。

注:如果shadow文件由于权限问题无法编辑,可以在live 系统 的terminal中输入:

>sudo passwd

输入两次密码,为root用户设置密码

>su

输入root密码,提升成root用户

>gedit  ****/shadow

成功打开shadow文件,也可以用vi,nano等编辑器

Linux修改用户密码脚本,可以用shell脚本编写,主要功能是以管理员权限修改系统中指定用户密码。 首先用户需要输入目标用户用户名和新的密码,可以通过以下代码实现: ``` #!/bin/bash read -p "Enter the username: " username read -p "Enter the new password: " password ``` 然后需要判断用户是否存在,该用户是否为超级管理员,以及密码的复杂度是否符合要求。可以使用以下代码: ``` if ! id "$username" >/dev/null 2>&1; then echo "User $username does not exist" exit 1 fi if [ $(id -u) -ne 0 ]; then echo "Only root can run this script" exit 2 fi if [[ ${#password} -lt 8 ]] || [[ ! $password =~ [[:lower:]] ]] || [[ ! $password =~ [[:upper:]] ]] || [[ ! $password =~ [[:digit:]] ]]; then echo "Password does not meet complexity requirements" exit 3 fi ``` 接下来,需要使用passwd命令来修改密码,如下所示: ``` echo "$username:$password" | chpasswd ``` 最后需要输出修改结果,以及清除敏感数据: ``` echo "Password for $username has been changed successfully" unset password ``` 完整的修改用户密码脚本如下: ``` #!/bin/bash read -p "Enter the username: " username read -p "Enter the new password: " password if ! id "$username" >/dev/null 2>&1; then echo "User $username does not exist" exit 1 fi if [ $(id -u) -ne 0 ]; then echo "Only root can run this script" exit 2 fi if [[ ${#password} -lt 8 ]] || [[ ! $password =~ [[:lower:]] ]] || [[ ! $password =~ [[:upper:]] ]] || [[ ! $password =~ [[:digit:]] ]]; then echo "Password does not meet complexity requirements" exit 3 fi echo "$username:$password" | chpasswd echo "Password for $username has been changed successfully" unset password ``` 这样,我们就可以轻松实现修改Linux用户密码的脚本。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值