本文将帮助你在Linux操作系统中手动锁定和解锁用户帐户。
前言 如果你的组织中已实施密码策略,则无需查找此选项,但是,如果你将锁定时间设置为24小时,则在这种情况下你可能需要手动解锁用户的帐户。 这可以通过三种方式使用以下两个Linux命令来完成。 1、passwd命令用于更新用户的身份验证令牌,通过调用Linux-PAM和Libuser API来完成此任务,参考Linux passwd命令示例。 2、usermod命令用于修改/更新给定用户的帐户信息,它曾用于将用户添加到特定组等,参考用usermod、gpasswd、Shell script、Manual Method将用户添加到组。 为了阐明这一点,我们选择了ywnz用户帐户,让我们看看,如何一步一步地做。 请注意,你必须使用你需要锁定或解锁的相应用户帐户,而不是我们的帐户。 你可以使用id命令检查系统中是否有可用的给定用户帐户,我的帐户在系统中可用: # id ywnz uid=2240(ywnz) gid=2243(ywnz) groups=2243(ywnz),2244(ladmin)
方法1:使用passwd命令在Linux中锁定、解锁和检查给定用户帐户的状态 passwd命令是Linux管理员经常使用的命令之一。 它用于在/etc/shadow文件中更新用户的身份验证令牌。 使用-l参数运行passwd命令以锁定给定的用户帐户: # passwd -l ywnz Locking password for user ywnz. passwd: Success 可以从/etc/shadow文件中检查锁定的帐户状态,使用passwd命令检查用户帐户锁定状态: # passwd -S ywnz 或者: # passwd --status ywnz ywnz LK 2019-05-30 7 90 7 -1 (Password locked.) 这将输出有关给定帐户的密码状态的简短信息:LK:密码锁定、NP:没有密码、PS:密码设置。 使用/etc/shadow文件检查锁定的用户帐户状态,如果帐户已被锁定,则会在密码前添加两个感叹号: # grep ywnz /etc/shadow ywnz:!!$6$tGvVUhEY$PIkpI43HPaEoRrNJSRpM3HldvMy9trmIV00:18047:7:90:7::: 使用-u参数运行passwd命令以解锁给定的用户帐户: # passwd -u ywnz Unlocking password for user ywnz. passwd: Success
方法2:使用usermod命令在Linux中锁定、解锁和检查给定用户帐户的状态 usermod命令经常被Linux管理员经常使用,usermod命令用于修改/更新给定用户的帐户信息,它曾用于将用户添加到特定组等。 使用-L参数运行usermod命令以锁定给定的用户帐户: # usermod --lock ywnz 或者: # usermod -L ywnz 可以从/etc/shadow文件中检查锁定的帐户状态,使用passwd命令检查用户帐户锁定状态: # passwd -S ywnz 或者: # passwd --status ywnz ywnz LK 2019-05-30 7 90 7 -1 (Password locked.) 这将输出有关给定帐户的密码状态的简短信息:LK:密码锁定、NP:没有密码、PS:密码设置。 使用/etc/shadow文件检查锁定的用户帐户状态,如果帐户已被锁定,则会在密码前添加两个感叹号: # grep ywnz /etc/shadow ywnz:!!$6$tGvVUhEY$PIkpI43HPaEoRrNJSRpM3HldvMy9trmIV00:18047:7:90:7::: 使用-U参数运行usermod命令以解锁给定的用户帐户: # usermod --unlock ywnz 或者: # usermod -U ywnz
方法3、使用usermod命令启用SSH访问Linux中的给定用户帐户 可以通过将nologin shell分配给给定用户来完成,为此,请运行以下命令: # usermod -s /sbin/nologin ywnz 可以通过从/etc/passwd文件中获取给定的用户名来检查锁定的用户帐户详细信息: # grep ywnz /etc/passwd ywnz:x:2240:2243::/home/ywnz:/sbin/nologin 我们可以通过分配回旧shell来启用用户ssh访问: # usermod -s /bin/bash ywnz 附:使用Shell脚本在Linux中锁定、解锁和检查多个用户帐户的状态 如果想锁定/解锁多个帐户,则需要脚本。我们可以编写一个小的shell脚本来执行此操作,为此,请使用以下shell脚本。 创建用户列表,每个用户应该在单独的行中: $ cat user-lists.txt u1 u2 u3 u4 u5 使用以下shell脚本锁定Linux中的多个用户帐户: # user-lock.sh #!/bin/bash for user in `cat user-lists.txt` do passwd -l $user done 为user-lock.sh文件设置可执行权限: # chmod + user-lock.sh 最后运行脚本来实现这一目标: # sh user-lock.sh Locking password for user u1. passwd: Success Locking password for user u2. passwd: Success Locking password for user u3. passwd: Success Locking password for user u4. passwd: Success Locking password for user u5. passwd: Success 使用以下shell脚本检查Linux中的锁定用户帐户: # vi user-lock-status.sh #!/bin/bash for user in `cat user-lists.txt` do passwd -S $user done 为user-lock-status.sh文件设置可执行权限: # chmod + user-lock-status.sh 最后运行脚本来实现这一目标: # sh user-lock-status.sh u1 LK 2019-06-10 0 99999 7 -1 (Password locked.) u2 LK 2019-06-10 0 99999 7 -1 (Password locked.) u3 LK 2019-06-10 0 99999 7 -1 (Password locked.) u4 LK 2019-06-10 0 99999 7 -1 (Password locked.) u5 LK 2019-06-10 0 99999 7 -1 (Password locked.) 使用以下shell脚本解锁Linux中的多个用户帐户: # user-unlock.sh #!/bin/bash for user in `cat user-lists.txt` do passwd -u $user done 为user-unlock.sh文件设置可执行权限: # chmod + user-unlock.sh 最后运行脚本来实现这一目标: # sh user-unlock.sh Unlocking password for user u1. passwd: Success Unlocking password for user u2. passwd: Success Unlocking password for user u3. passwd: Success Unlocking password for user u4. passwd: Success Unlocking password for user u5. passwd: Success 运行相同的shell脚本user-lock-status.sh来检查这些在Linux中解锁的锁定用户帐户: # sh user-lock-status.sh u1 PS 2019-06-10 0 99999 7 -1 (Password set, SHA512 crypt.) u2 PS 2019-06-10 0 99999 7 -1 (Password set, SHA512 crypt.) u3 PS 2019-06-10 0 99999 7 -1 (Password set, SHA512 crypt.) u4 PS 2019-06-10 0 99999 7 -1 (Password set, SHA512 crypt.) u5 PS 2019-06-10 0 99999 7 -1 (Password set, SHA512 crypt.)
相关主题 |