一、Linux账户信息存储在文件passwd中,每个用户一行信息,第一个冒号后面的值是表示用户的密码,此处正常状态密码是写的X,用户真正的密码是存储在shadow文件中。

当用户被“passwd -l 用户名”锁定后,该用户的密码在shadow文件中真正密码前增加两个感叹号。此时,从root 用户su到该锁定账户是可以的。但该账户不能再登录。但当root账户将该账户密码重置后,该账户自动解锁,可以正常登录。此时再次查看shadow文件,感叹号没有了。

与“passwd -l 用户名”对应的是“passwd -u 用户名”。可以对该用户解锁。

当用户被”usermod -L 用户名”锁定后,该用户的密码在shadow文件中真正密码前增加一个感叹号。此时,从root 用户su到该锁定账户是可以的。但该账户不能再登录。但当root账户将该账户密码重置后,该账户自动解锁,可以正常登录。此时再次查看shadow文件,感叹号没有了。

与”usermod -L 用户名”锁定命令对应的是”usermod -U 用户名”解锁用户账户命令,解锁后,shadow文件中该用户名的密码前感叹号自动去除,用户可以正常登录。

二、关于/etc/passwd文件中,每行最后一个字段是该用户可以使用的shell,对于一个普通用户,该值为/bin/bash。此外,还有其他的bash类型,如/bin/sync,/bin/sh,/bin/shutdown, /bin/halt,/sbin/nologin等,其中/sbin/nologin的意思是该用户禁止登录,需要注意的是,虽然禁止了登录,但是还可能有其他可以运行的内容,只是不能登录了而已。

因此,如果想禁止某账户登录,可以在passwd文件中,将该账户的默认shell修改为/bin/nologin。

总结禁用用户的方法

1、usermod -L username

2、passwd -l username

3、修改/etc/passwd,把表示密码的第二个字段中X改为其他任意的字符,该账号就不能登录。

4、修改/etc/passwd,把最后一个shell字段修改为/sbin/nologin。

5、修改/etc/shadow,在第二个密码字段前面加上一个!或者两个!!,该账号就不能登录,这个效果和方法一和方法二一样。

6、修改/etc/shadow,在最后两个冒号之间加上数字“1”,表示该账号的密码自1970年1月1日起,过一天后立即过期,当然现在自然就不能登录了。

反之,如果想解禁,把修改的东西去掉就可以了。

 

 

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐