Linux下强制新用户首次登录时修改密码

如果系统管理员希望添加一个用户以后,让该用户第一次登录以后自己设置自己的密码,那么就要使得用户的初始密码或者空密码立刻过期,强制用户第一次登录后立刻修改密码。

为了强制用户第一次登录时设置一个新密码,请按照下面的指示来做,但是需要的注意的时候如果用户是通过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中相应用户的密码字段(字段以“:”分隔,第二个字段)清空即可。

你可能感兴趣的:(Linux下强制新用户首次登录时修改密码)