Linux的账号与用户组
用户标识符:UID与GID
每一个文件都有一个所有者ID和用户组ID,当我们需要查看文件属性时,系统会根据/etc/passwd和/etc/group的内容,找到对应UID和GID对应的账户名和组名。
用户账号
用户的登陆流程如下:
1. 先搜索/etc/passwd里面是否有你输入的账号,如果有则将用户名对应的UID和GID(GID在/etc/group内)读取出来
2. 进入/etc/shadow找到对应账户与UID,核对密码是否正确
/etc/passwd文件结构
该文件每一行代表一个账户。每一行共有七个字段,分别如下:
1. 账号名称
2. 密码 密码数据放在/etc/shadow,故该字段显示x
3. UID 0表示系统管理员,1-499为系统账户,500~65535为可登录账号
4. GID
5. 用户信息说明列 用来说明账号的意义
6. 主文件夹
7. Shell
/etc/shadow文件结构
1. 账号名称
2. 密码
3. 最近更改密码的日期 从1970.1.1开始的天数
4. 密码不可被更改的天数
5. 密码需要被重新更改的天数
6. 密码需要更改期限前的警告天数
7. 密码过期后的账号宽限时间
8. 账号失效时间
9. 保留
有效与初始用户组:groups,newgrp
/etc/group文件结构
1. 用户组名称
2. 用户组密码 密码已放到/etc/gshadow
3. GID
4. 此用户组支持的账户名称 多个用户名逗号隔开
有效用户组与初始用户组
每个用户在/etc/passwd的第四列都有一个GID,该ID表示初始用户组。如果用户wuchao同时支持group1和group2两个用户组,那么该用户新建文件时,文件的用户组要取决于有效用户组。
以下举例:
将用户名wuchao加入到用户组root中去
[[email protected] 桌面]$ usermod -a -G root wuchao
查看用户wuchao所支持的用户组:第一个为有效用户组
[[email protected] 桌面]$ groups wuchao root [[email protected] 桌面]$
创建文件并查看文件的用户组
[[email protected] 桌面]$ touch file1 [[email protected] 桌面]$ ls -l file1 -rw-rw-r--. 1 wuchao wuchao 0 7月 20 14:04 file1 [[email protected] 桌面]$
切换有效用户组:newgrp 用户组名
[[email protected] 桌面]$ newgrp root [[email protected] 桌面]$ groups root wuchao [[email protected] 桌面]$ touch file2 [[email protected] 桌面]$ ls -l file2 -rw-r--r--. 1 wuchao root 0 7月 20 14:06 file2 [[email protected] 桌面]$
注意:使用newgrp其实是进入了一个新的shell,使用exit指令退出该新的shell,返回原来的shell,你会发现原来的shell的用户组并没有改变。如下:
[[email protected] 桌面]$ newgrp root [[email protected] 桌面]$ groups root wuchao [[email protected] 桌面]$ exit exit [[email protected] 桌面]$ groups wuchao root [[email protected] 桌面]$
/etc/gshadow
共有四个字段。
1. 用户组名
2. 密码列 如果以!开头表示无用户组管理员
3. 用户组管理员的账号
4. 该用户组所属账号
用户组管理员:当用户想加入某个用户组时可能需要root用户来操作,如果root用户很繁忙,可以为每个用户组创建用户组管理员,用户组管理员可以将其他账号加入到自己管理的用户组去。