passwd及shadow文件解析

passwd文件是以行为单位的配置文件,每行定义系统上的一个用户,行内分为字段,字段之间由一个冒号隔开。这些字段依次为:

用户名密码用户ID组ID用户全名主目录登录shell
补充:

密码:在旧的UNIX系统上,这个字段含有用户的加密密码,为了安全性,现在的linux均显示为 x 或 * 号。

用户全名:安装linux时如果不输入全名,则显示为跟用户名一样,如果输入,则显示为全名(不可用于登录)


shadow文件
用户名:加密密码:上次更改密码的时间:最小更改密码间隔:密码有效期限:密码过期提示时间:密码锁定期:账户有效期:保留字段

通过perl生成linux系统用户保存在shadow中的密码:

perl -e 'print crypt("12345678",q($1$iLDiYNCq)),"\n"'
 \\其中12345678为要给用户设置的密码,

$1$iLDiYNCq字符串是自定义字符串,shadow里一般用$1$后面跟8个字符这种格式。
生成的密码串样式如下:
$1$iLDiYNCq$0napSn3Qck9Sj4FqP5RFz0
中间有个$,前面算salt,这个salt是随机写入的,跟后面的加密值,合在一起叫hash 


 "$1$" stands for MD5, 后面只能跟8个字符
 "$2a$" is Blowfish,
 "$5$" is SHA-256 
 "$6$" is SHA-512,


crypt 本身默认用des算法 
如果salt以$1$开头就使用md5算法
des算法命令如下:
perl -e 'print crypt("12345678","/g"),"\n"'
生成的密码串样式如下:
/gSr78Mzt1eYI


可以通过查看libcrypt[._*]链接到/usr/lib下的哪些库文件来得知系统密码所使用的加密算法。
如果链接到libcrypt*库,那么使用的为MD5;
如果为libdescrypt*,就应该为DES了。
具体操作如下:
#cd /usr/lib
#ls -l libcrypt[._]*


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值