shadow文件中第二列的格式,它是加密后的密码,它有些玄机,不同的特殊字符表示特殊的意义:
①.该列留空,即"::",表示该用户没有密码。
②.该列为"!",即":!:",表示该用户被锁,被锁将无法登陆,但是可能其他的登录方式是不受限制的,如ssh公钥认证的方式,su的方式。
③.该列为"*",即":*:",也表示该用户被锁,和"!"效果是一样的。
④.该列以"!"或"!!"开头,则也表示该用户被锁。
⑤.该列为"!!",即":!!:",表示该用户从来没设置过密码。
⑥.如果格式为"$id$salt$hashed",则表示该用户密码正常。其中$id$的id表示密码的加密算法,$1$表示使用MD5算法,$2a$表示使用Blowfish算法,"$2y$"是另一算法长度的Blowfish,"$5$"表示SHA-256算法,而"$6$"表示SHA-512算法,目前基本上都使用sha-512算法的,但无论是md5还是sha-256都仍然支持。$salt$是加密时使用的salt,hashed才是真正的密码部分。
passwd -l与usermod -L没有什么区别,最终的作用就是让某用户账户密码暂时失效(也就是锁定)。锁定的原理就是在/etc/shadow第二栏(代表用户密码)最前面加上叹号(!),让密码暂时失效。因为linux帐户的密码是经过特殊加密的,每一种加密方式产生的密码长度和格式是相同的,加上叹号使之暂时失效。
使用相应的passwd -u 或usermod -U进行解锁。
Linux下的帐户系统文件主要有/etc/passwd、/etc/shadow、/etc/group和/etc/gshadow 4个。(1)/etc/passwd文件中每行定义一个用户帐号,一行中又划分为多个不同的字段定义用户帐号的不同属性,各字段用“:”隔开。
各字段定义如下:
用户名:用户登录系统时使用的用户名,它在系统中是唯一的。
口令:此字段存放加密的口令。在此文件中的口令是x,这表示用户的口令是被/etc/shadow文件保护的,所有加密口令以及和口令有关的设置都保存在/etc/shadow中。
用户标识号:是一个整数,系统内部用它来标识用户。每个用户的UID都是唯一的。root用户的UID是0,1~499是系统的标准帐户,普通用户从500开始。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)