Linux shadow文件
MD5进行密码的加密,MD5算法对密码的加密规则,第一个,输入的长度不固定但是输出的长度是固定的,不管输入的密码长度是6位的还是8位的,生成的加密的密码是固定长度的值,单向不可逆的。
[lulei@localhost ~]$ encho "123" | md5sum
bash: encho: 未找到命令...
d41d8cd98f00b204e9800998ecf8427e -
[lulei@localhost ~]$ encho "123345" | md5sum
bash: encho: 未找到命令...
d41d8cd98f00b204e9800998ecf8427e -
可以看到不同长度的密码最终生成的密文都是同等长度的。
在设置密码的时候强度要足够同时应该经常修改密码。
为什么不在/etc/passwd里面放上用户的加密密码。
[lulei@localhost ~]$ ls -l /etc/passwd
-rw-r--r--. 1 root root 2293 12月 27 2016 /etc/passwd
可以看到每个用户都可以对passwd文件进行读取,这样是十分危险的。真正存放密码的地方是shadow文件。
[lulei@localhost ~]$ more /etc/shadow
/etc/shadow: 权限不够
[root@localhost lu]# more /etc/shadow
root:$6$bNqwo0NKVixTqJel$LD6SnkXomum5sk2l6Zggy8jc9Z/NCBQ0sKCXlX4.WLK/jtkMUpFloER7v3m/Sk
pkCrwztdF4krXcvHYWiFuAn/::0:99999:7:::
bin:*:17110:0:99999:7:::
daemon:*:17110:0:99999:7:::
adm:*:17110:0:99999:7:::
lp:*:17110:0:99999:7:::
sync:*:17110:0:99999:7:::
shutdown:*:17110:0:99999:7:::
如果删除一个用户里面的密文那么该用户登入就不需要使用密码输入用户名就可以登入了。
如果root用户忘记了密码就可以将该文件里面的密匙进行删除重新登入设置密码即可。
root:x:0:0:root:/root:/bin/bash
用户名:密码位:UID:GID:描述信息:宿主目录:shell
root:$6$a8fUITZM$cHKJxDBctRd31LmdMeh/oyB.LgaV/HrngmcvljIpjBSLYHg0rhBhYoZRhfehXOj1.FivEjrXnsNvIlB9CXbPS/:17629:0:99999:7:::
用户名:加密密码:最后一次修改时间:要过多少天才可以修改密码:密码多少天后到期:到期前警告期限:账号失效期限,失效了用户登入不了:
为什么要将密码存放在/etc/shadow下面,可以看到
[root@server ~]# ls -l /etc/shadow
----------. 1 root root 1800 Apr 9 12:42 /etc/shadow
只有管理员root才有读权限。所以密码放在该文件里面十分的安全。
上面所诉就是用户配置最重要的两个文件。
[root@localhost lu]# grep root /etc/passwd /etc/shadow
/etc/passwd:root:x:0:0:root:/root:/bin/bash 存放用户信息
/etc/passwd:operator:x:11:0:operator:/root:/sbin/nologin
/etc/shadow:root:$6$bNqwo0NKVixTqJel$LD6SnkXomum5sk2l6Zggy8jc9Z/NCBQ0sKCXlX4.WLK/jtkMUp 存放用户密码
passwd里面的密码位是x,既然没有保存真正的密码为什么不将其去掉呢。其实在添加用户设置密码的时候或者修改密码的时候都是先将密码写到etc/passwd文件里面再转化到shadow里面。
可以看到passwd里面密码位上面已经有密码了。
[root@localhost lu]# pwunconv --这里使用密码转换命令将shadow里面的密码转换到passwd里面了
[root@localhost lu]# grep root /etc/passwd /etc/shadow
/etc/passwd:root:$6$bNqwo0NKVixTqJel$LD6SnkXomum5sk2l6Zggy8jc9Z/NCBQ0sKCXlX4.WLK/jtkMUpFloER7v3m/SkpkCrwztdF4krXcvHYWiFuAn/:0:0:root:/root:/bin/bash
/etc/passwd:operator:*:11:0:operator:/root:/sbin/nologin
grep: /etc/shadow: No such file or directory
[root@localhost lu]# pwconv --将上面passwd里面密码转换到shadow里面去了
[root@localhost lu]# grep root /etc/passwd /etc/shadow
/etc/passwd:root:x:0:0:root:/root:/bin/bash
/etc/passwd:operator:x:11:0:operator:/root:/sbin/nologin
/etc/shadow:root:$6$bNqwo0NKVixTqJel$LD6SnkXomum5sk2l6Zggy8jc9Z/NCBQ0sKCXlX4.WLK/jtkMUpFloER7v3m/SkpkCrwztdF4krXcvHYWiFuAn/:17370:0:99999:7:::
这个先将密码写到/etc/passwd里面之后将密码写到/etc/shadow里面的过程是由系统自动完成的,这个过程是系统自动执行pwconv,将passwd里面的密码写到shadow里面。
在用户管理里面最重要的就是配置文件,了解了配置文件就可以在配置文件里面管理用户而不是通过命令行。如添加一个用户不需要使用useradd命令直接在配置文件里面进行用户的添加,而是用vi对配置文件进行修改添加用户。
在登入linux的时候对用户进行验证要填入用户账号这个是在/etc/passwd里面验证。对密码的验证就是在/etc/shadow里面进行验证。
最重要的就是用户配置文件。可以手动的对用户进行增加修改通过配置文件。
新用户信息文件:/etc/skel
所有新用户的信息配置文件都在这个目录下面,每次添加一个用户都会创建一个宿主目录。
[lu@localhost ~]$ ls -a /etc/skel
. .. .bash_logout .bash_profile .bashrc .mozilla
[root@localhost lu]# useradd jack
[root@localhost lu]# ls -a /home/jack 宿主目录
. .. .bash_logout .bash_profile .bashrc .mozilla
添加一个新用户在宿主目录下面会将skel里面的配置文件自动拷贝过去,手动创建用户也要将/etc/skel里面的配置文件拷贝到宿主目录里面就可以了。
补充:
修改用户家目录:cary这个用户的家目录之前是在根目录下面/cary,现在想迁移到/home/cary下面,下面是步骤
创建目录/home/hello
[root@server ~]# mkdir -p /home/cary
把原先/hello目录下的所有文件拷贝过来(.)
如果用户之前家目录有配置文件,那么就将之前文件拷贝到新目录下面
[root@server ~]# ls -a /home/cary/
. .. .bash_history .bash_logout .bash_profile .bashrc .cache .config
如果之前家目录下面没有什么配置文件
[root@server ~]# cp -a /etc/skel/.[^.]* /home/hello/
调整cary的家目录设置
[root@server ~]# usermod -d /home/cary cary
[root@server ~]# grep cary /etc/passwd
cary:x:1007:1007::/home/cary:/bin/bash
修改家目录所有者和所在组
[root@server ~]# chown -R cary:cary /home/cary/
[root@server ~]# ls -la /home/cary/
total 24
drwxr-xr-x. 4 cary cary 4096 Apr 9 13:17 .
drwxr-xr-x. 10 root root 4096 Apr 9 13:15 ..
-rw-------. 1 cary cary 5 Apr 9 13:15 .bash_history
-rw-r--r--. 1 cary cary 18 Apr 9 13:11 .bash_logout
-rw-r--r--. 1 cary cary 193 Apr 9 13:11 .bash_profile
-rw-r--r--. 1 cary cary 231 Apr 9 13:11 .bashrc
drwxrwxr-x. 3 cary cary 17 Apr 9 13:12 .cache
drwxrwxr-x. 3 cary cary 17 Apr 9 13:12 .config
useradd命令
1.创建用户vanilla
-c :添加全称
-p :设置密码,但是为了安全性,不进行设置
-s :指定shell,如果不指定默认使用/bin/bash
-d :指定家目录的位置,默认/home/vanilla
-u :指定uid , 200
-G :当创建vanilla用户之后,除了为用户创建vanilla组之外,还会加入togogo组,此时用户会属于两个组
-g togogo -G will: -g不会为vanilla创建私人组,只创建togogo组,加入togogo组,-G同时会加入wheel组
usermod命令
实例
改变用户的uid
usermod -u 111 username
改变用户的gid
usermod -g gid username
更改用户家目录
usermod -d /home/linux username
更改登录shell
usermod -s /sbin/nologin username
改变用户扩展组
usermod -G 扩展组名称 username
例:
[root@linux-01 ~]# usermod -G grp1 user1
[root@linux-01 ~]# id user1
uid=1000(user1) gid=1000(user1) groups=1000(user1),1012(grp1)
同时为用户user1添加两个扩展组:
usermod -G 扩展组1,扩展组2 username
例:
[root@linux-01 ~]# usermod -G grp1,grp2 user1
[root@linux-01 ~]# id user1
uid=1000(user1) gid=1000(user1) groups=1000(user1),1005(grp2),1012(grp1)
查看用户UID、GID和所属组:
#id username
例:
[root@linux-01 ~]# id user1
uid=1000(user1) gid=1000(user1) groups=1000(user1)
passwd命令
使用 -n 选项设置密码更改的最短时间
在下面的例子中,grid用户必须果90天后更改密码。0表示用户可以在任何时候更改它的密码。
[root@Database1 skel]# passwd -n 3 grid
Adjusting aging data for user grid.
passwd: Success
[root@Database1 skel]# grep grid /etc/shadow
grid:$6$GVC/mrcu$huMUE9yftkuE.Rv0KrmZGTL1sbBXVHt0NlIy7D6BJtaOiFQGF/iXiQlpm0oj7fS16xQSGe/UC4pRXGSA9Xnll.:17675:3:30:7:4::
使用 -x 选项设置密码最大过期期限
在下面的例子中,grid用户15天后密码过期
[root@Database1 skel]# passwd -x 15 grid
Adjusting aging data for user grid.
passwd: Success
[root@Database1 skel]# grep grid /etc/shadow
grid:$6$GVC/mrcu$huMUE9yftkuE.Rv0KrmZGTL1sbBXVHt0NlIy7D6BJtaOiFQGF/iXiQlpm0oj7fS16xQSGe/UC4pRXGSA9Xnll.:17675:3:15:7:4::
-w 选项在 passwd 命令中用于设置用户的警告期限。这意味着,n天之后,他/她的密码将过期,即在过期前的几天提醒用户密码即将过期。
[root@Database1 skel]# passwd -w 4 grid 4天后密码将会过期
Adjusting aging data for user grid.
passwd: Success
[root@Database1 skel]# grep grid /etc/shadow
grid:$6$GVC/mrcu$huMUE9yftkuE.Rv0KrmZGTL1sbBXVHt0NlIy7D6BJtaOiFQGF/iXiQlpm0oj7fS16xQSGe/UC4pRXGSA9Xnll.:17675:3:15:4:4::
使用 -i 选项设置非活动时间
在 passwd 命令中使用 -i 选项用于设系统用户的非活动时间。当用户(我使用的是linuxtechi用户)密码过期后,用户再经过 n天后没有更改其密码,用户将不能登录。
[root@Database1 skel]# passwd -i 2 grid 2在密码过期的2天之内没有更改密码,两天后用户不能登入
Adjusting aging data for user grid.
passwd: Success
[root@Database1 skel]# grep grid /etc/shadow
grid:$6$GVC/mrcu$huMUE9yftkuE.Rv0KrmZGTL1sbBXVHt0NlIy7D6BJtaOiFQGF/iXiQlpm0oj7fS16xQSGe/UC4pRXGSA9Xnll.:17675:3:15:4:2::
-S选项查看用户密码的状态
[root@Database1 skel]# passwd -S grid
grid PS 2018-05-24 3 15 4 2 (Password set, SHA512 crypt.)采用SHA512对密码加密
-l和-u就不举例了,-l对账户的锁定,-u是对账户的解锁
---------------------
作者:风流搞技术
来源:CSDN
原文:https://blog.csdn.net/qq_34556414/article/details/81275429
版权声明:本文为博主原创文章,转载请附上博文链接!
Linux shadow文件相关推荐
- linux shadow文件如何拷贝,Linux如何查找shadow文件进入?这样几步轻松搞定!
在Linux系统中,用来存储用户的暗码信息的文件一般又叫"影子文件"(shadow文件),最近小编收到许多小白反馈,本身在操纵linux系统时不知道怎么找到这些影子文件,毕竟要怎么 ...
- linux shadow文件*,Linux怎么查找shadow文件进入这样几步轻松搞定
摘要 腾兴网为您分享:Linux怎么查找shadow文件进入这样几步轻松搞定,作业大师,中英翻译,一直播,携程抢票等软件知识,以及倩女,控制时间,蓝墨云,绿豆刷机神器,头影测量软件,正当防卫33dm, ...
- linux 密码文件 /etc/shadow md5,SHA256,SHA512 破解
目录 环境 shadow文件解析 John the Ripper 安装John the Ripper 破解 环境 Kali系统 John the Ripper密码破解者 shadow文件解析 文件的格 ...
- Linux密码文件passwd和shadow分析
引言:与Linux密码密切相关的两个文件 一:关于/etc/passwd: 关于/etc/passwd的内容理解 在/etc/passwd 中,每一行都表示的是一个用户的信息:一行有7个段位: ...
- linux 系统中 /etc/passwd 和 /etc/shadow文件详解
在linux操作系统中, /etc/passwd文件中的每个用户都有一个对应的记录行,记录着这个用户的一下基本属性.该文件对所有用户可读. 而/etc/shadow文件正如他的名字一样,他是pas ...
- linux中/etc/passwd文件与/etc/shadow文件解析
1. /etc/passwd文件 1.1 /etc/passwd文件内容格式 用户名: 密码 : uid : gid :用户描述:主目录:登陆shell 举个例子: #cat /etc/passwd ...
- 误删除Linux下/etc/shadow文件,linux修改密码出现Authentication token manipulation error的解决办法
linux卸载ss的时候误把/etc/shadow删除掉了,导致ssh root登录不了.修改密码出现Authentication token manipulation error的解决办法. 解决办 ...
- john 探测(爆破)弱口令(包含linux机器,aix小机)/linux上的shadow文件破解,亲测可用
john 探测(爆破)弱口令(包含linux机器,aix小机),linux上的shadow文件破解 手头上上面的机器居多,而且这些机器也是几经转折到了奴家的手上,前期已经出现了有几个密码是1234的情 ...
- Linux /etc/shadow文件含义
/etc/shadow 文件,用于存储 Linux 系统中用户的密码信息,又称为"影子文件". 前面介绍了 /etc/passwd 文件,由于该文件允许所有用户读取,易导致用户密码 ...
- Linux中etc下shadow文件详解
Linux中/etc/shadow文件详解 [root@gaki0 ~]# tail -1 /etc/shadow gaki:$6$boB/e/30SJD5GcLh$RR9IlXwNkvUBiRYWu ...
最新文章
- c语言案例——输入一个字符串,将其逆序输出
- 使用SQL脚本创建数据库,操作主键、外键与各种约束(MS SQL Server)
- Python中flatten( ),matrix.A用法
- 克隆管理员帐号的方法
- 【编程好习惯】将常量放在“==”之前
- 21.Merge Two Sorted Lists 、23. Merge k Sorted Lists
- 2018蓝桥杯B组:第几个幸运数字(JAVA/C++)
- 深度可分离卷积结构(depthwise separable convolution)计算复杂度分析
- waiting for lock on working directory of:tortoiseHg
- LINUX下载及编译libtool
- 用 C, C++ 读取DICOM文件
- 《Python编程:从入门到实践》配套源代码下载
- 【Unity3D日常开发】修改游戏对象的材质颜色
- 深度学习 图像分割开源代码(附链接,超级全)
- 微生物多样性数据分析(16S)
- 当前佛教界的乱相之一就是以凡滥圣、惑乱人心
- 蓝桥杯:真题 回文数字
- 微信小程序中view水平垂直居中
- jmeter--参数化--详解
- 白盒测试哪种测试效果好_软件测试选择哪种测试方法比较好?
热门文章
- python自动注册邮箱_python+selenium实现163邮箱自动登陆的方法
- LeetCode 247. 中心对称数
- JAVA计算机毕业设计小型超市管理系统(附源码、数据库)
- Python 高级:人工智能概述
- Python3 网络爬虫:视频下载,那些事儿!
- Nik插件滤镜套装Nik Collection 3 Mac
- 服务器装系统报0x0000005d,虚拟机不能安装Win10系统,提示your PC needs to restart,错误代码0x0000005D该怎么办-电脑自学网...
- mosquitto无法连接
- 大数据技术之大数据概论
- springCloud使用redis报错,Could not resolve type id xxxxx(类全路径名) into a subtype