下面是详细讲解Linux下交互式与非交互式修改用户密码的攻略。
一、修改用户密码的基本命令
Linux下修改用户密码的基本命令为passwd
,用法如下:
passwd [选项] [用户名]
其中,[选项]
为可选项,常用的选项有:
-l
:锁定用户账号;-u
:解除锁定用户账号;-d
:删除用户密码,使其变为无密码状态;-e
:让用户下次登录时必须强制修改密码;-S
:显示用户密码信息;-n
:指定修改密码最短天数限制;-x
:指定密码过期天数;
[用户名]
为要修改密码的用户账号名称,默认为当前登录用户。
二、交互式修改用户密码
交互式修改用户密码,是指在命令行中输入passwd
命令后,系统会通过交互式输入方式来修改用户密码。
示例一:
假设我们要修改用户test
的密码,可以执行以下命令:
passwd test
执行上述命令后,系统会提示我们输入两遍新密码。
Changing password for user test.
New password:
Retype new password:
输入两遍新密码后,系统会提示修改密码成功。
passwd: all authentication tokens updated successfully.
示例二:
如果要修改当前用户的密码,可以执行以下命令:
passwd
系统会要求我们输入当前用户的旧密码和两遍新密码。
Changing password for student.
(current) UNIX password:
Enter new UNIX password:
Retype new UNIX password:
输入完密码后,如果旧密码正确,系统就会提示修改密码成功。
三、非交互式修改用户密码
非交互式修改用户密码,是通过编写脚本实现批量修改。
示例一:
假设我们要批量修改所有用户的密码为ABC123
,可以先使用awk
命令获取所有用户账号名称,再使用循环遍历每个用户账号并修改密码。
#!/bin/bash
for user in $(awk -F ':' '/bash/{print $1}' /etc/passwd)
do
echo "user = ${user}"
echo "${user}:ABC123" | chpasswd
done
上述脚本首先使用awk
命令从/etc/passwd
文件中获取所有用户账号名称,再使用for
循环遍历每个用户账号,通过echo
命令将用户名:密码
格式的字符串输送给chpasswd
命令。
示例二:
如果要批量修改指定用户的密码,可以将多个用户名写入文件,然后使用while
循环遍历每个用户名并修改密码。
#!/bin/bash
while read user
do
echo "user = ${user}"
echo "${user}:ABC123" | chpasswd
done < user_list.txt
上述脚本将用户名列表保存在user_list.txt
文件中,使用while
循环遍历每个用户,通过echo
命令将用户名:密码
格式的字符串输送给chpasswd
命令。
综上,以上就是关于Linux下交互式与非交互式修改用户密码的攻略介绍,希望能对大家有所帮助。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Linux下交互式与非交互式修改用户密码的例子 - Python技术站