如果系统管理员希望添加一个用户以后,让该用户第一次登录以后自己设置自己的密码,那么就要使得用户的初始密码或者空密码立刻过期,强制用户第一次登录后立刻修改密码。
为了强制用户第一次登录时设置一个新密码,请按照下面的指示来做,但是需要的注意的时候如果用户是通过SSH远程登录进去的,那么该方法是不能生效的。
1. 锁定用户密码 - 如果用户不存在,用useradd添加用户,但是不设置密码,使得该帐号仍然处于锁定状态,如果用户密码已经激活,则用下面命令锁定:
usermod -L username
2. 强制密码立刻过期:
chage -d 0 username
该命令设置用户上次修改密码的时间为纪元时间(1970年1月1日),这样会使得该命令立刻过期,而不论密码过期策略的设置。
3. 对帐号解锁 - 这里有两个方法来实现,管理员可以设置一个新密码或者设置空密码:
注意:不要使用passwd来设置密码,因为它会使得刚才设置的使密码立刻过期的设置失效。
为了设置初始密码,使用下面步骤:
- 启动Python:
# python Python 2.3.4 (#1, Feb 6 2006, 10:38:46) [GCC 3.4.5 20051201 (Red Hat 3.4.5-2)] on linux2 Type "help", "copyright", "credits" or "license" for more information. >>>
- 在提示符>>>后输入下面命令:
import crypt; print crypt.crypt("userpassword","username") 输出将会类似是: 12CsGd8FRcMSM
- 输入[Ctrl]+[D]退出python。
- 拷贝刚才的输出密码结果,12CsGd8FRcMSM,用在下面的命令中:
usermod -p "12CsGd8FRcMSM" username
当然也可以给用户给一个空密码:
usermod -p "" username
注: 虽然空密码很方便,但是有安全风险。
然后登录该用户,就会提示输入密码。
其他办法:
使用下面方法也可以实现:
1. 使用useradd添加用户 2. 使用passwd设置用户密码 3. 使用usermod -L来锁密码 4. 强制用户帐号过期chage -d 0 username 5. 解锁用户帐号
上面流程的示例:
# useradd dan # passwd dan Changing password for user dan. New password: Retype new password: passwd: all authentication tokens updated successfully. # usermod -L dan # chage -d 0 dan # usermod -U dan
当然用户dan第一次登录,就会提示设置密码如下:
$ su dan Password: You are required to change your password immediately (root enforced) Changing password for dan (current) UNIX password: New password: Retype new password:
本文摘自redhat官方文档!
根据本人理解只需2步:
1、建立用户账户 2、强制用户帐号过期
若需清空账户只需将/etc/shadow中相应用户的密码字段(字段以“:”分隔,第二个字段)清空即可。
时间: 2024-11-01 04:48:15