首页 > 代码库 > 账号管理与群组

账号管理与群组

使用者标识符:UID(用户ID),GID(组id)用户id信息存放在 etc/passwd群组id信息 存放在 etc/group口令表存放在 etc/shadow当用户登陆时,其实并不是直接通过输入的账号来读取的,而是通过uid/gid/shadow相应的id登陆过程如下:1.先寻找 /etc/passwd里面是否有你输入的账号,如果没有则跳出,如果有的话则将该账号对应的的UID与GID(在 /etc/group中)读出来,另外,该账号的家目录与shell配置也一并读出2.再来则是核对口令表,这时 linux 会进入 /etc/shadow 里面找出对应的账号与uid,然后核对一下你刚刚输入的口令与里面的口令是否相符3.如果一切都对的话,就可以进入 shell 的阶段/etc/passwd 文件结构root:x:0:0:root:root:/bin/bashbin:x:1:1:bin:/bin:/sbin/nologinlin3615:x:500:500:lin3615:/home/lin3615:/bin/bashapache:x:48:48:Apache:/var/www:/sbin/nologinmysql:x:27:27:Mysql Server:/var/lib/mysql:/bin/bash..................以上每一行代表一个账号,有几行就代表有几个账号在这个系统中,里面有好多账号是系统正常运行所必须的,我们简称为系统账号,例如:bin其中root的那一行就是这个系统管理员了,可以看到是用":"来分隔成七部分,解释如下:root(1账号名称):x(2口令):0(3uid):0(4GID):root(5用户信息说明栏):root(6家目录):/bin/bash(7Shell)1.账号名称:就是账号,用来对应 UID,例如 root 的UID 对应的就是 0(第三字段)2.口令早期 Unix系统的口令就是放在这字段上,但是因为这个文件的特性是所有的程序都能读取,为了安全性,因此后来就将这个字段的口令数据改放到/etc/shadow 中去了,所以这里看到的是 "X"3.UID这个就是使用者的标识符了其中里面的ID 范围有其特殊性id:为0时,表示系统管理员当在 (1-499)时表示是系统账号,当在(500-...)给一般使用者用 与 /etc/passwd 文件相关4.GID这个与 /etc/group有关,其实与/etc/passwd差不多,只是名字不同而已5.用户信息说明栏这个字段基本上是用来解释这个账号的意义而已6.家目录这个是用户的家目录,默认的用户家目录在 /home/用户名7.shell:这个就是一个shell 命令,并指定默认的 bash/etc/shadow文件结构这个保存着用户密码之类的信息,之前的密码是保存在 /etc/passwd中的第二个字段,但是为了安全性,所以在 /etc/passwd 中的第二个字段值设为"X",然后把密码等之类的存放在这个文件中文件的内容形式如下:root:$1$9asfdsfsdfsdfsfsdffa:16543:0:9999999:7:::
root(1账号名称):$1$9asfdsfsdfsdfsfsdffa(2口令):16543(3最近更动口令的日期)
:0(4口令不可被更动的天数):9999999(5口令需要重新变更的天数):7(6口令需要变更限前的警告天数)
:(7口令过期后的账号宽限时间):(8账号失效日期):(9保留字段)用 ‘:‘分成九段了,每一段如下:1.账号名称这个字段名称必须与 /etc/passwd 相同才行2.口令这个是加密后的口令字段值,当这个字段的长度改变后,该口令就会失效,所以很多软件透过这个功能,在此字段前加上!或者是 * 改变口令字段长度,就会让口令暂时失效3.最近更动口令的日期这个字段记录了更动口令那天的日期,算法是从1970/01/01那天到更新口令那一天的天数4.口令不可被更动的天数这个字段值表示在设置的天数内不能修改口令,如果为0,则表示没有限制5.口令需要重新变更的天数表示在这个指定的天数后,要改变口令才能使用6.口令需要变更期限前的警告天数当账号的口令限制期快到时,会根据这个设置值来提示警告修改口令7.口令过期后的账号宽限时间(口令失效日)当口令过期时,其实还可以登陆,但是必须在这个指定的天数内,不然就失效,无法登陆8.账号失效日期设置多少天后,这个账号失效,无法使用9.保留字段/etc/group 文件结构这个文件就是记录GID与组名的对应关系形式如下:root:x:0:lin3615:x:500:以“:”分隔,共分为四栏as:root(1组名):x(2群组口令):0(3群组id):[4root可空](此群组支持的账号)1.组名就是组名2.群组口令通常不用配置,这个是给群组管理员使用,很少有必要配置,同样的,口令已经移动/etc/gshadow去,所以此字段只会存在一个 "X"3.gid就是群组 ID了,我们/etc/passwd 第四个字段使用的 gid对应的群组名,就是由这里对应出来的4.此群组支持的账号名称一个账号可以加入多个群组,那某个账号想要加入此群组,将该账号填入这个字段即可。如:我想把lin3615也加入root这个群组,那么在第一行的最后加上 ",lin3615",不要有空格,使其成为root:x:0:root,lin3615,此字段可为空,如果为空,则表示就是前面的组名查看用户所在的组名:groups

账号管理与群组