❀My学习Linux小记录之UID和GID(用户ID和组ID)❀
目录
❀My学习Linux小记录之UID和GID(用户ID和组ID)❀
用户ID(UID)
组ID(GID)
登陆 Linux 系统时,虽然输入的是自己的用户名和密码,但其实 Linux 并不认识你的用户名称,它只认识用户名对应的 ID 号(也就是一串数字)。Linux 系统将所有用户的名称与 ID 的对应关系都存储在 /etc/passwd 文件中。
说白了,用户名并无实际作用,仅是为了方便用户的记忆而已。root用户拥有极高的系统所有权,能够管理系统的各项功能,真正让root成为“超级用户”的原因是它的UID值。
Linux 系统中,每个用户的 ID 细分为 2 种,分别是用户 ID(User ID,简称 UID)和组 ID(Group ID,简称 GID),这与文件有拥有者和拥有群组两种属性相对应。
每个文件都有自己的拥有者 ID 和群组 ID,当显示文件属性时,系统会根据 /etc/passwd 和 /etc/group 文件中的内容,分别找到 UID 和 GID 对应的用户名和群组名,然后显示出来。
用户ID(UID)
UID(User Identification)中文用户ID,相当于身份证一样,在系统中是唯一的。
对于centos7而言
超级用户 UID=0 root
普通用户 UID=1001起
虚拟用户 UID=1-1000 存在满足文件或者服务启动的需要。一般不需要登录
查看一下系统里的用户: # cat /etc/passwd
root:(账号名称):x(:账号密码):0(:账号UID):0(:账号GID):root(:用户说明):/root(:用户家目录):/bin/bash(:shell解析)
1、账号名称:和用户UID对应,这是用户登录时使用的账号名称,在系统中是唯一的,不能重复。
2、账号密码:早期的Unix系统中,该字段是存放账号密码的,由于安全原因,后来把这个密码字段内容移动到/etc/shadow中,这里可以看到一个字母表示该用户密码在/etc/shadow中保护。
3、账户UID:账号UID一般由一个整数表示的,范围是0~65535。
4、账户GID:账号GID一般也是由一个整数表示的,范围是0~65535,当添加账户时,默认情况下会同时建立一个与用户同名且UID和GID相同的组。
5、用户说明:这个字段是对这个账号二队描述说明。
6、用户家目录:用户登录后首先进入的目录,一般为(/home/用户名)这样的目录。
7、shell解析器:当前用户登录后所使用的shell,在centos/rhel等linux中,默认的shell为bash,就是在这里设置的。如果不希望用户登录系统,可以用个usermod或者手工修改passwd配置,将该字段改为/sbin/nologin即可。如果仔细看passwd文件,会发现大部分内置系统虚拟账号的这个字段都是/sbin/nologin,表示禁止登录系统,这是出于安全考虑的。(echo $SHELL及cat /etc/shells)。
组ID(GID)
GID (Group Identification)是用户组的编号,可以将多个用户加入到某个组中,方便指派任务或工作。
每个用户在被创建时均会创建一个默认组(其GID与UID相同,叫作基本组或初始组),而后加入的组叫作扩展组或附加组。
用户组名和GID则保存在 /etc/group 文件中。
查看一下系统里的用户组: # cat /etc/group
每行的用户组的信息都以 “:” 作为分割符,划分为4个字段,每个字段所表示的含义如下:
组名:密码:GID:该用户组中的用户列表
其中,组密码保存在 /etc/gshadow 文件中,用户组密码一般没用;组中的用户列表只包括附加用户,如果该组是某个用户的初始组,则这个用户不会出现在这个用户列表中。