root用户拥有极高的系统所有权,能够管理系统的各项功能,真正让root成为“超级用户”的原因是它的UID值。
每个用户都有对应的 唯一UID值 ,可以分成三类用户:
用户的UID保存在 /etc/passwd 文件中,而账户密码保存在 /etc/shadow 文件中。
例如,输入命令 $ cat /etc/passwd ,可以查看所有的用户信息,下面是三类用户的例子:
第一行为root超级用户,第二行为ftp系统用户,第三行为test普通用户。
每行用户信息都以 “:” 作为分隔符,划分为7个字段,每个字段所表示的含义如下:
用户名:密码:UID:GID:描述性信息:主目录:默认Shell
其中,默认shell为 /bin/bash 表示可以登录,为 /sbin/nologin 时表示不可以登录。
GID 是用户组的编号,可以将多个用户加入到某个组中,方便指派任务或工作。
每个用户在被创建时均会创建一个默认组(其GID与UID相同,叫作基本组或初始组),而后加入的组叫作扩展组或附加组。
用户组名和GID则保存在 /etc/group 文件中。
输入命令 $ cat /etc/group 可以查看所用用户组的信息,例如:
每行的用户组的信息都以 “:” 作为分割符,划分为4个字段,每个字段所表示的含义如下:
组名:密码:GID:该用户组中的用户列表
其中,组密码保存在 /etc/gshadow 文件中,用户组密码一般没用;组中的用户列表只包括附加用户,如果该组是某个用户的初始组,则这个用户不会出现在这个用户列表中。
Linux系统中,每个用户的ID都有两种,即用户ID(User ID,简称UID)和组ID(GroupID,简称GID),这与文件拥有者和拥有群组两种属性所对应。
文章开头也提到了,Linux系统并不认识我们的用户名和密码,那问题来了,文件是如何判别它的拥有者名称及群组名称的呢?
每个文件都有自己的拥有者ID和群组ID,在显示文件属性时,系统会根据/etc/passwd和/etc/group文件中的内容,分别找到UID和GID所对应的用户名和群组名,最终显示出来。
在/etc/passwd文件中,利用UID可以找到所对应的用户名,在/etc/group文件中,利用GID可以找到所对应的群组名。
可以做个小实验,在Linux *** 作系统中,常用的有两个账户,分别为root超级管理员账户和普通账户,我们可以先使用root账号登录并执行命令vim
/etc/passwd,在该文件中找到普通用户并将其UID随意改一个数字,这是你会发现,当你查看普通账户所拥有的文件时,你会发现所有文件的拥有者并不是普通用户,而是数字。
一般情况下,当登录Linux *** 作系统后,会先寻找/etc/passwd是否有输入账号,如果没有,则跳出,如果有,则读取对应的UID与GID,随后进入/etc/shadow核对密码,一切完成后,则进入shell管控。
由此可见,UID与GID在日常的账户管理中,发挥着非常重要的作用,因为一不小心就可能访问不了自己的文件,所以温馨提示大家,不要随便改动自己的/etc/passwd与/etc/group文件。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)