如何在Linux中更改密码(passwd命令)
在本教程中,我将解释用户或者超级用户(root)如何在Linux中更改密码。
passwd是Linux(RedHat,CentOS,Ubuntu,Debian,Fedora)和Unix的操作系统中使用的命令来更改密码。
当我们运行passwd
命令时,用户的加密密码存储在/etc/shadow文件中。
将仅允许普通用户(非root)用户来更改其密码。
虽然root或者sudo用户可以更改任何帐户的密码。
出于安全原因,它始终建议使用强密码并定期更改。
更改密码
如果"passwd"命令由非root用户执行,则它将询问当前密码,然后设置该用户的新密码。
超级用户或者root可以在不知道当前密码的情况下重置包括root的任何用户的密码。
如果使用非root用户调用命令passwd
,则必须先在更改密码之前提供现有密码。
密码必须键入两次,并且在键入它时不会在屏幕上回声。
$passwd Changing password for vagrant. (current) UNIX password: Enter new UNIX password: Retype new UNIX password: passwd: password updated successfully
我们也无法提供简单的单词作为密码。
passwd命令将检查密码的长度和复杂程度。
在以下输出中,尝试了简单的,字典的密码。
$passwd Changing password for vagrant. (current) UNIX password: Enter new UNIX password: Retype new UNIX password: You must choose a longer password Enter new UNIX password: Retype new UNIX password: Bad: new password is too simple Enter new UNIX password: Retype new UNIX password: passwd: password updated successfully
将密码更改为超级用户(root)
任何系统用户都可以更改他/她的密码。
当它作为普通用户运行时,passwd
命令不会采用任何参数。
但作为根源,我们可以在系统中更改和重置任何用户的密码。
用法如下:
# passwd [options] [user_name]
可以使用的不同选项是:
Options: -a, --all report password status on all accounts -d, --delete delete the password for the named account -e, --expire force expire the password for the named account -h, --help display this help message and exit -k, --keep-tokens change password only if expired -i, --inactive INACTIVE set password inactive after expiration to INACTIVE -l, --lock lock the password of the named account -n, --mindays MIN_DAYS set minimum number of days before password change to MIN_DAYS -q, --quiet quiet mode -r, --repository REPOSITORY change password in REPOSITORY repository -R, --root CHROOT_DIR directory to chroot into -S, --status report password status on the named account -u, --unlock unlock the password of the named account -w, --warndays WARN_DAYS set expiration warning days to WARN_DAYS -x, --maxdays MAX_DAYS set maximum number of days before password change to MAX_DAYS
当root运行passwd
命令时,它将默认重置root密码,如果我们在passwd
命令后指定用户名,那么它将更改该用户的密码。
# passwd vagrant Enter new UNIX password: Retype new UNIX password: passwd: password updated successfully #
root用户甚至可以提供简单的密码。
虽然显示了警告,但密码仍然成功更改。
系统用户的密码以加密形式存储/etc/shadow文件。
显示密码状态信息
要显示所需用户的密码状态信息,请使用passwd命令中的-s
选项。
# passwd -S vagrant vagrant P 07/02/2019 0 99999 7 -1 #
第一个字段显示用户名,第二个字段显示密码状态(ps = password set,lk = password锁定,np = no password),第三个字段显示密码最后更改,最后和第四个字段显示最小年龄,最大年龄,警告密码的时期和不活动时间。
要列出系统中所有用户密码的状态,我们将使用"-SA"参数:
# passwd -Sa root P 05/14/2019 0 99999 7 -1 daemon L 05/14/2019 0 99999 7 -1 bin L 05/14/2019 0 99999 7 -1 sys L 05/14/2019 0 99999 7 -1 sync L 05/14/2019 0 99999 7 -1 games L 05/14/2019 0 99999 7 -1 man L 05/14/2019 0 99999 7 -1 lp L 05/14/2019 0 99999 7 -1 mail L 05/14/2019 0 99999 7 -1 news L 05/14/2019 0 99999 7 -1 uucp L 05/14/2019 0 99999 7 -1 proxy L 05/14/2019 0 99999 7 -1 www-data L 05/14/2019 0 99999 7 -1 backup L 05/14/2019 0 99999 7 -1
删除用户的密码
要删除所需用户的密码,我们将使用"-d"命令"选项:
# passwd -d test passwd: password expiry information changed. # passwd -S test test NP 07/02/2019 0 99999 7 -1
注意:选项-d
将使用户的密码为空,并将禁用用户的帐户。
设置密码到期
使用户的密码过期并强制该用户在下次登录时更改密码,请使用"passwd"命令"中的"-e""选项。
# passwd -e test passwd: password expiry information changed. # passwd -S test test NP 01/01/1970 0 99999 7 -1
锁定并解锁系统用户的密码
锁定用户的密码在passwd
命令中使用-l
选项。
它将在用户的密码开始时添加!
当他/她的密码被锁定时,用户无法更改它的密码。
# passwd -l test passwd: password expiry information changed. # passwd -S test test L 07/03/2019 0 99999 7 -1
解锁用户的密码使用u
选项:
# passwd -u test passwd: password expiry information changed. # passwd -S test test P 07/03/2019 0 99999 7 -1
使用-i选项设置非活动天天
当所选用户的密码已过期和用户未在"N"天数(即10天)中没有将其更改为密码时,将激活。
在该用户无法登录之后。
# passwd -i 10 test passwd: password expiry information changed. # passwd -S test test P 07/03/2019 0 99999 7 10
在密码过期之前设置警告日
选项-w
在提醒用户以更改密码之前使用设置警告日。
它意味着用户将在他/她的密码到期前的n天时。
# passwd -w 5 test passwd: password expiry information changed. # passwd -S test test P 07/03/2019 0 99999 5 10
设置最短的天数要更改密码
在下文中,示例测试用户必须在30天内更改密码。
值为零,显示用户可以随时更改它的密码。
# passwd -n 30 test passwd: password expiry information changed. # passwd -S test test P 07/03/2019 30 99999 5 10