分类:
2009-12-19 05:06:38
如何实现让用户第一次登录时使用命令行工具设置自己的密码?
解决方法:
如果系统管理员希望添加一个用户以后,让该用户第一次登录以后自己设置自己的密码,那么就要使得用户的初始密码或者空密码立刻过期,强制用户第一次登录后立刻修改密码。
为了强制用户第一次登录时设置一个新密码,请按照下面的指示来做,但是需要的注意的时候如果用户是通过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","salt")
输出将会类似是:
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: