shadow密码文件
登录Linux会要求输入用户名和密码。通常本地文件中会存储一份用户密码,并与用户输入对比,如果相同就允许用户登录。起初用户密码存储与/etc/passwd中,但由于/etc/passwd必须供所有用户读取,因此为了避免密码破译,unix系统将加密后的密码存储于/etc/shadow中,仅供超级用户可读。
/etc/shadow中密码格式:
$id$salt$encrypted
id表示hash算法。起初密码用DES算法加密,单随着DES加密破解难度的降低,已用其他加密算法替代DES。在shadow文件中,密码字段如果以“$”打头,则表示非DES加密,如:
$1$2eWq10AC$NaQqalCk3
即表示非DES加密密码,而$1$表示使用了基于MD5的加密算法。
$2a$04$NZJWn7W2skvQRC5lW3H7q.ZTE8bz4xbC
$2a$表示Blowfish算法。常见的标识与算法:
ID | 算法 |
$1$ | MD5 |
$2a$ | Blowfish |
$5$ | SHA-256 |
$6$ | SHA-512 |
/etc/passwd文件的格式:
username:passwd:UID:GID:full_name:directory:shell
从shadow文件中摘录数行:
root:$1$TCVDVaiT$JC7TbKjvIZpIprdehWFH/1:15157:0:99999:7:::
bin:*:15157:0:99999:7:::
daemon:*:15157:0:99999:7:::
/etc/shadow文件的每行由9个字段组成,以“:”作为字段分隔符。每个字段的说明:
1. 用户名
2. 加密后的密码。如果密码是“*”或“!”,则表示不会用这个帐号来登录(通常是一些后台进程)
3. 密码最后修改时间。 从1970年1月1日起计算的天数。
4. 不可修改密码的天数。 如果是0,则表示可以随时修改密码。如果是N,表示N天后才可修改密码。
5. 密码可以维系的天数。如果设置为N,表示N天后必须更新密码。设置为99999通常表示无需更新密码。
6. 在密码必须修改前的N天,就开始提示用户需要修改密码。
7. 密码过期的宽限时间。
8. 帐号失效时间。也是UNIX时间戳格式。
9. 保留字段。
pwconv系列命令
pwconv命令从/etc/passwd生成/etc/shadow。它将密码从passwd文件中抽取出来放到shadow文件中。
运行pwunconv命令则会关闭shadow功能,并把加密密码转移到passwd中。
系统启动时,就默认开启了pwconv
ls -l /etc/passwd /etc /shadow
-rw-r--r-- root root Mar : /etc/passwd
-rw-r----- root shadow Mar : /etc/shadow
取root用户对比两个文件的记录:
$ cat /etc/shadow | grep ^root
root:x:::root:/root:/bin/bash $ cat /etc/shadow|grep ^root
root:$$0fa52kBa$5rQfmjjrmvVmepfQylZINajIUp/cTWi9GjdgONbYVRPlstFbjD54DXUgA2yE5QxdWm0ZX4.z238E/IPv0yAxY0:::::::
关闭shadow:
$ pwunconv
此时shadow文件消失。
再次查看passwd文件:
cat /etc/passwd | grep ^root
root:$$0fa52kBa$5rQfmjjrmvVmepfQylZINajIUp/cTWi9GjdgONbYVRPlstFbjD54DXUgA2yE5QxdWm0ZX4.z238E/IPv0yAxY0:::root:/root:/bin/bash
可以看到shadow中的加密密码被转移到了passwd中。
运行pwconv,即可恢复shadow文件
shadow密码文件的更多相关文章
- Linux用户密码文件/etc/shadow相关
(1).密码文件 [root@xuexi ~]# head -3 /etc/shadow root:$6$kcgcu794R0VP3fDL$aYN8XUbtWvZ4QQtT2xVW.N2CgE3YLP ...
- Linux基础命令---检查密码文件pwck
pwck 检查用户密码文件“/etc/passwd”和“/etc/shadow”的完整性,将验证结果送到标砖输出.提示用户删除格式不正确或有其他不可更正错误的条目.检查以验证每个条目是否具有:正确的字 ...
- Linux用户相关文件之密码文件
1.文件地址: /etc/shadow ----------. 1 root root 842 10月 6 13:09 /etc/shadow 2.文件内容: xiaol_1:$6$NdCAnK3y$ ...
- passwd - 密码文件
描述 Passwd 是个文本文件, 它包含了一个系统帐户列表, 给出每个帐户一些有用的信息,比如用户 ID,组 ID, 家目录, shell,等. 通常它也包含了每个用户经过加密的密码. 它通常应该是 ...
- Linux:用户账号、密码、群组、群组密码文件查看
使用者账号密码存放文件:/etc/passwd, /etc/shadow 虽然我们登入 Linux 主机的时候,输入的是我们的账号,但是,其实 Linux 主机并不会直接认识你的『账 号名称』的,他仅 ...
- Apache 使用密码文件验证用户
使用文本文件作为密码文件 创建密码文件 需要使用htpasswd.exe文件来创建用户密码文件 语法: htpasswd -c '文件完整路径' 用户名 向一个用户密码文件中添加一个新用户 语法: h ...
- samba服务日志文件-密码文件及启停
1.Samba服务日志文件日志文件对于samba非常重要,它存储着客户端访问samba服务器的信息,以及samba服务的错误提示信息等,可以通过分析日志,帮助解决客户端访问和服务器维护等问题.在/et ...
- oracle 密码文件文件
密码文件作用: 密码文件用于dba用户的登录认证. dba用户:具备sysdba和sysoper权限的用户,即oracle的sys和system用户. 本地登录: 1)操作系统认证: [oracle@ ...
- rsync如何不指定密码文件
平时用rsync做数据同步时,都是通过--password-file指定一个密码文件 这个密码文件权限要求比较高,一般是600,属主属组都是rsync命令执行者 如果是在脚本中执行rsync,比如定时 ...
随机推荐
- APIO2018练习赛伪题解
传送门:https://pcms.university.innopolis.ru/statements/org/apio/2018/practice/statements.pdf 主要就在于后面三道构 ...
- Uva 12063 Zero and Ones
给个链接:https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem ...
- POJ3294 Life Forms(二分+后缀数组)
给n个字符串,求最长的多于n/2个字符串的公共子串. 依然是二分判定+height分组. 把这n个字符串连接,中间用不同字符隔开,跑后缀数组计算出height: 二分要求的子串长度,判断是否满足:he ...
- centos下crontab的使用
1.作用 使用crontab命令可以修改crontab配置文件,然后该配置由cron公用程序在适当的时间执行,该命令使用权限是所有用户. 2.格式 crontab [-u user] {-l | -r ...
- sqlserver日志文件缩小
原文:sqlserver日志文件缩小 最近装了个500g的固态硬盘,导入我原来的数据库后发现有60多个G的内存不见了, 最后发现我的某个数据库有60多个G的日志文件(.ldf文件)文件, ...
- 使用Python3解压gz、tar、tgz、zip、rar五种格式的压缩文件例子
使用Python3解压如下五种压缩文件:gz.tar.tgz.zip.rar 简介 gz: 即gzip,通常只能压缩一个文件.与tar结合起来就可以实现先打包,再压缩. tar: linux系统下的打 ...
- Ubuntu系统日志
一.指定系统日志路径到: /var/log/messages 1.默认系统日志 root@HDController:~# tail -1000 /var/log/syslog Oct 20 06:2 ...
- C#中out与ref区别
一.ref(参考)与out区别 1.out(只出不进) 将方法中的参数传递出去,在方法中将该参数传递出去之前需要在该方法起始赋初值:在方法外传递的该参数可以不用赋值: 简单理解就是:将一个东西抛出去之 ...
- Chromatix
1.Lens Rolloff Correction 透镜衰减矫正 The Lens Rolloff correction takes into account the fact that,with ...
- python langid实现语种识别
2017-04-26 语料数据入库时有个小需求,需要用一个字段存储语料的语种,偶然发现langid可以实现这一功能,再次感叹python的好用! #coding=utf-8 import langid ...