用户和用户组管理用户配置文件——用户基本信息文件/etc/passwd、影子文件/etc/shadow、组信息文件/etc/group、组密码文件/etc/gshadow

用户和用户组管理:

  • 用户配置文件
  • 用户管理相关文件
  • 用户管理命令
  • 用户组管理命令

一、用户配置文件

  • 用户信息文件/etc/passwd
  • 影子文件/etc/shadow
  • 组信息文件/etc/group和组密码文件/etc/gshadow
用户管理简介
  • 所以越是对服务器安全性要求高的服务器,越需要建立合理的用户权限等级制度和服务器操作规范。
  • 在Linux中主要是通过用户配置文件来查看和修改用户信息。
  • 在Linux系统里面很多时候做一些更改,必须写入到它的配置文件才会永久生效。用命令做的更改可能已重启就不存在了。
  • 对服务器来讲我们需要添加更多的用户,用来分配合理的用户权限。
  • 在Linux当中为主要是通过用户的配置文件来进行用户信息的查看、修改和甚至手工添加都是没有问题的。
1、/etc/passwd(用户基本信息文件)
  • 第1字段:用户名称
  • 第2字段:密码标志
  • 第3字段:UID(用户ID)
    • 0 : 超级用户
    • 1-499 : 系统用户(伪用户)
    • 500-65535 : 普通用户
  • 第4字段 : GID(用户初始组ID)
  • 第5字段 : 用户说明
  • 第6字段 : 家目录
    • 普通用户 : /home/用户名/
    • 超级用户 : /root/
  • 第7字段 : 登录之后的Shell

关于以上的说明:

  • 用户名称 ——> 用户名不要用一些特殊符号。用户名最好是统一的,例如;stu1,stu2…
  • 密码标志 ——> “ x ”标志表示这个用户时有密码的。如果这个” x “不写,这个系统登录的时候不会在shadow中去搜索它真正的密码串,认为这个用户没有密码,可以直接登录(但是这个没有密码登录值允许本机登录,不允许远程登录)。密码放在了/etc/shadow的这个文件当中,密码并非明文而是加密过的密文。
  • UID(用户ID) ——> 内核有很多的操作对象(包括:用户、用户组、进程、文件等),内核对它们进行调用操作的时候只识别数字标识,内核通过这个数字标识来调用这个对象,用户就是UID。
    • 在Linux里面不能说root是管理员,只能说UID为0的为管理员。将一个用户的UID改成另一个用户的UID,操作系统会将这两个文件当做一个文件来处理。
    • 系统用户(伪用户)——> 不能登录,也不能删除,否则系统会崩溃, 最好不要操作。
    • 普通用户 ——> 普通用的UID是500-65535。你在使用的时候添加的第一个用户UID一定是500开始的。
  • GID(用户初始组ID) ——> 在/etc/passwd看到的这个组ID,其实就是这个用户初始组ID。
  • 家目录(宿主目录) ——> Linux系统初始的登录位置称为这个用户的家。这个家目录时固定的记住就好了 。普通用户的家目录是在/home/用户名/目录下,如果添加一个user1用户会默认的建立一个/home/user1/目录,作为user1用户的家目录,user1用户对这个目录拥有所有的读写权限。超级用户的家目录是/root/。
  • Shell ——>所有的普通用户和root用户登录的权限都是/bin/bash,即标准Shell。所有的伪用户的Shell都是/sbin/nologin,将这个用户禁用,不能正常登录。(即。nologin是禁止登录的意思) 这个Shell如果不小心改错了,结果就悲剧了。

示例如下:

[root@root ~]# man 5 passwd
#显示这个文件的帮助信息

[root@root ~]# vim /etc/passwd
#打开这个文件

内容如下:
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
sync:x:5:0:sync:/sbin:/bin/sync
shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
... ...
#这个文件当中每一行代表一个用户。
#而且每一行用 : (冒号)分割,代表一个字段,总共七个字段。

#x代表这个用户的密码标志。
[root@root ~]# ll /etc/passwd
-rw-r--r--. 1 root root 1971 7月  18 09:44 /etc/passwd
[root@root ~]# ll /etc/shadow
----------. 1 root root 2045 7月  18 09:44 /etc/shadow
#可以看到passwd权限是644,而shadow的权限是000
1.1>初始组和附加组

用户组 ——> 在Linux系统里面,相同用户类型的集合就可以成为用户组。

  • 初始组: 就是指用户一登录就立刻拥有这个用户组的相关权限,每个用户的初始组只能有一个,一般就是和这个用户的用户名相同的组名作为这个用户 的初始组。
  • 附加组: 指用户可以加入多个其他的用户组,并拥有这个组的权限,附加组可以有多个。

关于以上的说明:

  • 初始组 ——> 这个用户一建立就默认生成一个初始组,作为这个用户的初始组。特点是:每一个用户必须有一个初始组, 每个用户只能有一个初始组。虽然初始组可以更改,但不推荐更改初始组。
  • 附加组 ——> 如果希望将用户加入到其他组请使用附加组。用户可以加入多个附加组。
1.2> Shell是什么
  • Shell就是Linux的命令解释器(Shell的基本功能就是命令解释器)。
  • 在/etc/passwd当中,除了标准Shell是/bin/bash(所有的普通用户的Shell是/bin/bash)之外,还可以写如/sbin/nologin(所有的伪用户的Shell是/sbin/nologin,相当于将这个用户禁用)。
2、影子文件/etc/shadow
[root@root 桌面]# ll /etc/passwd
-rw-r--r--. 1 root root 1971 7月  18 09:44 /etc/passwd
[root@root 桌面]# ll /etc/shadow
----------. 1 root root 2045 7月  18 09:44 /etc/shadow

从上面我们可以看到passwd的权限是644,而shadow的权限是000。因此,我们在shadow中保存的是真正的加密的密码串,而在passwd里面只有密码标志x。shadow这个文件非常重要,因为保存了经过加密的真正用户密码,需要中调保护这个文件。

2.1> 影子文件/etc/shadow
[root@root 桌面]# vim /etc/shadow

#打开shadow的内容
root:$6$s8MbLzksXLV6bOox$OoLL5N4Kyj0R8umI0.gMH.uZb6VpuyqF8bxO7KDk31t6R1LLUpKj2AxWUIuvjSIrp0FknPStrD3GVy/n11VM.0:18069:0:99999:7:::
bin:*:15937:0:99999:7:::
daemon:*:15937:0:99999:7:::
adm:*:15937:0:99999:7:::
lp:*:15937:0:99999:7:::
sync:*:15937:0:99999:7:::
shutdown:*:15937:0:99999:7:::
... ...
user1:!$6$aW6WIzJY$oNTEO8mSLV2at6udgeVd5ckJyXFtjauboJ0gR0bWsAJzUmNeeL732ru4ZaHFHGD3ozw5TXkYiO38QWMgC/V270:18101:0:99999:7:::
#如果在user1密码前面加一个!感叹号(!感叹号代表没有密码),相当于这个密码失效了
#我们可以用这种方式禁用某一个密码,都是允许的
  • 这个文件同样使用 : (冒号)分割字段,这里有9个字段
  • 第1字段 : 用户名
  • 第2字段 : 加密密码(这个密码重点保护,不要随便给别人传)
    • 加密算法升级为SHA512散列加密算法
    • 如果密码位是“ !! ” 或 “ * ” 代表没有密码,不能登录
  • 第3字段 : 密码最后一次修改日期
    • 使用1970年1月1日作为标准时间,每过一天时间戳加1
  • 第4字段 : 两次密码的修改间隔时间(和第3字段相比)
  • 第5字段 : 密码有效期(和第3字段相比)
  • 第6字段 : 密码修改到期前的警告天数(和第5字段相比)
  • 第7字段 : 密码过期后的宽限天数(和第5字段相比)
    • 0 : 代表密码过期后立即失效
    • -1 : 则代表密码永远不会失效
  • 第8字段 : 账号失效时间
    • 要用时间戳表示
  • 第9字段 : 保留

关于以上的说明:

  • 用户名 ——>
  • 加密密码 ——> 如果密码位是“ !! ” 或 “ * ” 代表没有密码,不能登录。我们可以发现绝大多少的伪用户的密码要么是 “ * ” ,要么是“ !! ”,所以说伪用户时不能登录的。
  • 第4字段 : 两次密码的修改间隔时间 ——> 加入这里为10,意思是说与第3字段相比有10天的间隔,即10天之内不能修改密码,10天之后才能修改密码。
  • 第8字段 : 账号失效时间 ——> 如果这里写了时间,到这个时间账号就失效,不管密码有效期是多少,账号依然失效。
2.2> 时间戳换算
  • 把时间戳换算为日期
    • date -d “1970-01-01 16066 days”
  • 把日期换算为时间戳
    • echo$(($(date --date=“2014/01/06” +%s)/86400+1))
3、组信息文件/etc/group和组密码文件/etc/gshadow
3.1> 组信息文件/etc/group
[root@root 桌面]# vim /etc/group

#组信息文件/etc/group
root:x:0:
bin:x:1:bin,daemon
daemon:x:2:bin,daemon
sys:x:3:bin,adm
adm:x:4:adm,daemon
tty:x:5:
... ...
  • 第1字段 : 组名
  • 第2字段 : 组密码标志
  • 第3字段 : GID(即group ID)
  • 第4字段 : 组中附加用户
3.2> 组密码文件/etc/gshadow
在这里插入代码片
  • 第1字段 : 组名
  • 第2字段 : 组密码
  • 第3字段 : 组管理员用户名
  • 第4字段 : 组中附加用户
  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值