Linux-用户和用户组管理

参考学习 史上最牛的Linux视频教程—兄弟连

 


用户管理路径:

用户信息文件 :/etc/passwd
(用户)影子(密码)文件:/etc/shadow
组信息文件: /etc/group
组影子(密码)文件: /etc/gshadow

用户管理简介:
1.越是对服务器安全性要求高的服务器,越是需要建立合理的用户权限等级制度和服务器操作规范.
2.Linux 中主要是通过用户配置文件来查看和修改用户信息

一、用户信息文件

vim /etc/passwd

使用查看帮忙命令man 如果提示找不到命令,需要联网使用

yum install -y man-pages

  

安装完后使用命令查看password 的文件解释

man 5 passwd (5,代表配置信息)

 

上图中用":"分开的七个字段,正好对应图一中用":"分开的内容分别是
用户登录名称:密码标识:用户ID:组ID:备注:用户家目录:SHELL
空格后下一页查看具体字段的解释,如下图


 翻译如下:

 


第1个字段:用户名称(登录的用户名),不要使用特殊字符、不要使用无意义的(如aabb)

第2个字段:密码标识

第3个字段:UID 0 超级用户 1-999 系统用户(伪用户) 1000-65535:普通用户
如果把普通用户的UID 改为0,那么该用户将会被系统认证为超级用户

第4个字段:初始组ID
初始组和附加组
初始组:就是指用户一登录就立即拥有这个用户组的相关权限,每个用户的初始组只能有一个,一般就是这个用户的用户名相同的组名作为这个用户的初始组。不建议修改初始组。
附加组:指用户可以加入多个其他的用户组,并拥有这些组的权限,附加组可以有多个。

第5个字段:用户说明

第6个字段:家目录
普通用户:/home/用户名/
超级用户:/root/

第7个字段:登录之后的Shell
Shell 是什么?
Shell 就是Liunx 的命令解释器。在/etc/passwd 当中,除了标准的Shell 是/bin/bash 之外,还有:/sbin/nologin

二、影子文件:/etc/shadow

权限:000

内容:

vim /etc/shadow


 

字段解释,共九个字段,用八个冒好分割。也可以使用 man 5 shadow 来查看


第1个字段:login name 登录用户名

第2个字段:encrypted password 加密的用户密码
加密算法升级为SHA512 散列加密算法
如果密码位是"!!"或者"*" 代表没有密码,不能登录

第3个字段:date of last password change 密码最后一次修改的日期
使用1970年1月1日作为标准时间,每过一天时间戳加1

第4个字段:mininum password age 两次密码的修改间隔时间(和第3个字段相比)
默认是0或者空白,代表立即可以更改密码,如果是1的话,代表第3个字段后加1天后才可以更改密码。

第5个字段:maximum password age 密码有效期(和第3个字段相比)
默认是99999或者空白,代表一直有效
根据密码的三大原则(复杂性,时效性,易记性)中的时效性,每三个月就应该修改一次,最长不应该超过半年。即为了安全,该字段的值最好设置为90,最大不可以超过180。

第6个字段:password waring period 密码修改到期的警告天数(和第5个字段相比)
举例:如果第5个字段设置的是90,第6个字段设置的是7的话,那么在新密码使用的第83天就会开始在每次登录的时候提示用户修改密码。

第7个字段:password inactivity period 密码过期后的宽限天数(和第5个字段相比)

举例:如果第5个字段设置的是90,第7个字段设置的是3,那么在新密码使用的第93天后,该用户将无法登录。
0或者空白代表密码过期后立即失效
老师讲的是-1代表密码永远不会失效,权重大于第5个字段。也就是该字段如果为-1,则第5个字段为任何数都无意义。

(笔者实际测试命令行模式下:
情况一:登录的时候如果已经提示密码过期需要更改密码,此时使用超级用户登录更改该字段是无意义的。仍不可避免每次登录都要你更改密码,否则进不了系统,且更改后密码,该字段的-1会自动被清空。
情况二:设置密码有效期为2,警告为1,过期后的宽限天数为-1,此时更改系统时间后,使用改账户登录,仍提示需要修改密码。
测试完后记得同步硬件
不晓得是不是centos5和centos7的差别,亦或者是图形界面和命令行的区别,后者可能性比较小)

第8个字段:account expiration date 账号失效时间
需要用时间戳标识(失效日期到1970年1月1日的天数),字段权重大于密码有效期的权重。即如果到达账号失效时间,则账号会被禁用,哪怕没有达到密码的有效期
把时间戳换算为日期:date -d "1970-01-01 xxxxx(时间戳) days"
把日期换算为时间戳:echo $(($(date --date="2021/12/13" +%s)/86400+1))

第9个字段:reserved field 保留字段

三、组信息文件/etc/group 和组密码文件/etc/gshadow

1.组信息文件:/etc/group
第一字段:组名
第二字段:组密码标志
第三字段:GID
第四字段:组中附加用户

 

2.组密码文件:/etc/gshadow
第一字段:组名
第二字段:组密码 默认没有组密码,组密码的作用是组管理员用来管理组内成员的密码,不建议使用,会降低系统的安全性。
第三字段:组管理员用户名
第四字段:组中附加用户

 


扩展:可以通过vim 使用G 查看最后一行来查看有多少用户,或者使用wc /etc/passwd 来查看有多少行知道有多少用户。

 

posted @ 2021-12-21 12:14  Gnbp  阅读(77)  评论(0编辑  收藏  举报