Linux中的UID与GID

什么是UID与GID?

    登录Linux时,看起来是登录的账号,其实在计算机中仅仅认识ID,而每个登录的用户都会取得两个
ID这就是GID与UIDUID也称为用户ID(UserID),GID也称为用户组ID(Group ID)。操作系统就是利用
它两来判断文件的所有者与用户组的。

UID

   提到UID,就必须提一下专门管理用户UID的文件/etc/passwd。以下是我自己电脑的/etc/passwd
文件头几行:
[yiranblade@localhost ~]$ head /etc/passwd
root<img align="absmiddle" alt=":x:" class="emoji" src="http://yiranblade.cn/js/lib/emojify.js-1.1.0/images/basic/x.png" title=":x:" width="20px" height="20px"></img>0:0:root:/root:/bin/bash
bin<img align="absmiddle" alt=":x:" class="emoji" src="http://yiranblade.cn/js/lib/emojify.js-1.1.0/images/basic/x.png" title=":x:" width="20px" height="20px"></img>1:1:bin:/bin:/sbin/nologin
daemon<img align="absmiddle" alt=":x:" class="emoji" src="http://yiranblade.cn/js/lib/emojify.js-1.1.0/images/basic/x.png" title=":x:" width="20px" height="20px"></img>2:2:daemon:/sbin:/sbin/nologin
adm<img align="absmiddle" alt=":x:" class="emoji" src="http://yiranblade.cn/js/lib/emojify.js-1.1.0/images/basic/x.png" title=":x:" width="20px" height="20px"></img>3:4:adm:/var/adm:/sbin/nologin
lp<img align="absmiddle" alt=":x:" class="emoji" src="http://yiranblade.cn/js/lib/emojify.js-1.1.0/images/basic/x.png" title=":x:" width="20px" height="20px"></img>4:7:lp:/var/spool/lpd:/sbin/nologin
sync<img align="absmiddle" alt=":x:" class="emoji" src="http://yiranblade.cn/js/lib/emojify.js-1.1.0/images/basic/x.png" title=":x:" width="20px" height="20px"></img>5:0:sync:/sbin:/bin/sync
shutdown<img align="absmiddle" alt=":x:" class="emoji" src="http://yiranblade.cn/js/lib/emojify.js-1.1.0/images/basic/x.png" title=":x:" width="20px" height="20px"></img>6:0:shutdown:/sbin:/sbin/shutdown
halt<img align="absmiddle" alt=":x:" class="emoji" src="http://yiranblade.cn/js/lib/emojify.js-1.1.0/images/basic/x.png" title=":x:" width="20px" height="20px"></img>7:0:halt:/sbin:/sbin/halt
mail<img align="absmiddle" alt=":x:" class="emoji" src="http://yiranblade.cn/js/lib/emojify.js-1.1.0/images/basic/x.png" title=":x:" width="20px" height="20px"></img>8:12:mail:/var/spool/mail:/sbin/nologin
operator<img align="absmiddle" alt=":x:" class="emoji" src="http://yiranblade.cn/js/lib/emojify.js-1.1.0/images/basic/x.png" title=":x:" width="20px" height="20px"></img>11:0:operator:/root:/sbin/nologin


    我们以第一行的root账户为例,第一个字段就是账号名称,对应着UID。第二个字段为密码,早期的UNIX密码放于此字段,后来由于安全问题将密码数据改放到/etc/shadow中,所以此处看到的是一个x。第三个字段就是用户标识符即UID,一般情况下0代表系统管理员,1-499代表系统账号,500-65535代表可登录账号。第四个字段为其GID即用户组ID。第五个字段为用户信息说明列。第六个字段为该用户的主文件夹,例如root的主文件夹为/root。第七个字段表示用到的shell。

GID

    GID相关的是/etc/group文件,同样的以下为自己电脑的相关文件:
[yiranblade@localhost ~]$ head /etc/group
root<img align="absmiddle" alt=":x:" class="emoji" src="http://yiranblade.cn/js/lib/emojify.js-1.1.0/images/basic/x.png" title=":x:" width="20px" height="20px"></img>0:
bin<img align="absmiddle" alt=":x:" class="emoji" src="http://yiranblade.cn/js/lib/emojify.js-1.1.0/images/basic/x.png" title=":x:" width="20px" height="20px"></img>1:
daemon<img align="absmiddle" alt=":x:" class="emoji" src="http://yiranblade.cn/js/lib/emojify.js-1.1.0/images/basic/x.png" title=":x:" width="20px" height="20px"></img>2:
sys<img align="absmiddle" alt=":x:" class="emoji" src="http://yiranblade.cn/js/lib/emojify.js-1.1.0/images/basic/x.png" title=":x:" width="20px" height="20px"></img>3:
adm<img align="absmiddle" alt=":x:" class="emoji" src="http://yiranblade.cn/js/lib/emojify.js-1.1.0/images/basic/x.png" title=":x:" width="20px" height="20px"></img>4:
tty<img align="absmiddle" alt=":x:" class="emoji" src="http://yiranblade.cn/js/lib/emojify.js-1.1.0/images/basic/x.png" title=":x:" width="20px" height="20px"></img>5:
disk<img align="absmiddle" alt=":x:" class="emoji" src="http://yiranblade.cn/js/lib/emojify.js-1.1.0/images/basic/x.png" title=":x:" width="20px" height="20px"></img>6:
lp<img align="absmiddle" alt=":x:" class="emoji" src="http://yiranblade.cn/js/lib/emojify.js-1.1.0/images/basic/x.png" title=":x:" width="20px" height="20px"></img>7:
mem<img align="absmiddle" alt=":x:" class="emoji" src="http://yiranblade.cn/js/lib/emojify.js-1.1.0/images/basic/x.png" title=":x:" width="20px" height="20px"></img>8:
kmem<img align="absmiddle" alt=":x:" class="emoji" src="http://yiranblade.cn/js/lib/emojify.js-1.1.0/images/basic/x.png" title=":x:" width="20px" height="20px"></img>9:

    这个文件每一行为一个用户组,第一个字段为用户组名称。第二个字段为用户组密码。第三字段就是用户组标识符。第四个字段代表用户组支持的账号名称每个用户之间用,号分割;本字段可以为空;如果字段为空表示用户组为GID的用户名。
  • 有效用户组和初始用户组
        关于用户组必须提一下初始用户组和有效用户组这一概念,在/etc/passwd中第四个字段的GID即为初始用户组,也就是用户登录后立即获得权限的用户组。而有效用户组可以这样理解,比如一个账号同时可以隶属于好几个用户组,利用touch创建一个文件,那么这个文件所属的用户组即为其有效用户组,通常可以使用groups命令查看当前所属的用户组,然后输出的第一个为有效用户组,用newgrp命令可以更改有效用户组。
    

结束语

      一般情况下当登录linux后系统会先找寻/etc/passwd是否有输入账号,没有则跳出,有则读出对应UID与GID,随后进入/etc/shadow核对密码,一切完成后则进入shell管控。
    由此可见,UID与GID在日常的账户管理中发挥着重要的作用,一不小心就有可能访问不了自己的文件了,所以不要随便改动自己的/etc/passwd与/etc/group文件哦~
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值