Linux 用户配置文件
一、用户信息文件/etc/passwd
1、用户管理简介
1) 所以越是对服务器安全性要求高的服务器,越需要建立合理的用户权限等级制度和服务器操作规范。
2) 在Linux中主要是通过用户配置文件来查看和修改用户信息
2、/etc/passwd
第1字段:用户名称
第2字段:密码标志
第3字段:UID(用户ID)
0:超级用户
1-499:系统用户(伪用户)
500-65535:普通用户
第4字段:GID(用户初始组ID)
第5字段:用户说明
第6字段:家目录
普通用户:/home/用户名/
超级用户:/root/
第7字段:登录之后的Shell
3、初始组和附加组
初始组:就是指用户一登录就立刻拥有这个用户组的相关权限,每个用户的初始组只能有一个,一般就是和这个用户的用户名相同的组名作为这个用户的初始组。
附加组:指用户可以加入多个其他的用户组,并拥有这些组的权限,附加组可以有多个
4、Shell是什么
Shell就是Linux的命令解释器。在/etc/passwd当中,除了标准Shell是/bin/bash之外,还可以写如/sbin/nologin,/usr/bin/passwd等。
二、影子文件/etc/shadow
1、影子文件/etc/shadow
第1字段:用户名
第2字段:加密密码
加密算法升级为SHA512散列加密算法
如果密码位是“!!”或“*”代表没有密码,不能登录
第3字段:密码最后一次修改日期
使用1970年1月1日作为标准时间,每过一天时间戳加1
第4字段:两次密码的修改间隔时间(和第3字段相比)
第5字段:密码有效期(和第3字段相比)
第6字段:密码修改到期前的警告天数( 和第5字段相比)
第7字段:密码过期后的宽限天数(和第5 字段相比)
0:代表密码过期后立即失效
-1:则代表密码永远不会失效。
第8字段:账号失效时间
要用时间戳表示
第9字段:保留
2、时间戳换算
把时间戳换算为日期
date -d "1970-01-01 16066 days"
把日期换算为时间戳
echo $(($(date --date="2014/01/06" +%s)/86400+1))
三、组信息文件/etc/group 和 组密码文件/etc/gshadow
1、组信息文件/etc/group
第一字段:组名
第二字段:组密码标志
第三字段:GID
第四字段:组中附加用户
2、组密码文件/etc/gshadow(不建议给组设置密码,跟root违背)
第一字段:组名 第二字段:组密码
第三字段:组管理员用户名第四字段:组中附加用户