用户配置文件

1. 用户相关配置文件
A) /etc/passwd 文件是什么
/etc/passwd 是系统识别用户的一个文件,做个不恰当的比喻,
/etc/passwd 是一个花名册,系统所有的用户都在这里有登录记载;当我们以
intern01 这个账号登录时,系统首先会查阅 /etc/passwd 文件,看是否有
intern01 这个账号,然后确定 intern01 的 UID,通过 UID 来确认用户和身
份,如果存在则读取/etc/shadow 影子文件中所对应的 intern01 的密码;如果
密码核实无误则登录系统,读取用户的配置文件;
B) /etc/passwd 的 7 个字段
在/etc/passwd 中,每一行都表示的是一个用户的信息;一行有 7 个字
段;每个字段用:号分割,比如下面是我的系统中的/etc/passwd 的两行;
intern01:x:500:500:张三:/home/intern01:/bin/bash
intern02:x:501:502::/home/intern02:/bin/bash
 第一字段: 用户名, 在上面的例子中,我们看到这两个用户的用户名分别
是 intern01 和 intern02;
 第二字段: 密码;在例子中我们看到的是一个 x,其实密码已被映射到
/etc/shadow 文件中;
 第三字段: UID ;请参看本文的 UID 的解说;
 第四字段: GID;请参看本文的 GID 的解说;
 第五字段: 用户名全称,这是可选的,可以不设置,在 intern01 这个用户
中,用户的全称是张三 ;而 intern02 这个用户没有全称;
 第六字段: 用户的家目录所在位置; intern01 这个用户是/home/
intern01 ,而 intern02 这个用户是/home/ intern02 ;
 第七字段: 用户所用 SHELL 的类型, intern01 和 intern02 都用的是
bash ;所以为/bin/bash 。
C) /etc/shadow 文件
/etc/shadow 文件是/etc/passwd 的影子文件,这个文件并不由
/etc/passwd 而产生的,这两个文件是应该是对应互补的; shadow 内容包括
用户及被加密的密码以及其它/etc/passwd 不能包括的信息,比如用户的有效
期限等;这个文件只有 root 权限可以读取和操作,权限如下:
-r-------- 1 root root 1.5K 10 月 16 09:49 /etc/shadow
/etc/shadow 的权限不能随便改为其它用户可读,这样做是危险的。如果
你发现这个文件的权限变成了其它用户组或用户可读了,要进行检查,以防系
统安全问题的发生;如果我们以普通用户查看这个文件时,应该什么也查看不
到,提示是权限不够:
[intern01@localhost ~]$ more /etc/shadow
/etc/shadow: 权限不够
D) /etc/shadow 的 9 个字段
/etc/shadow 文件的内容包括 9 个段位,每个段位之间用:号分割;我们以
如下的例子说明。
intern01:$1$VE.Mq2Xf$2c9Qi7EQ9JP8GKF8gH7PB1:16662:0:99999:7:::
intern02:$1$IPDvUhXP$8R6J/VtPXvLyXxhLWPrnt/:16662:0:99999:7::16668:
 第一字段: 用户名(也被称之为登录名),在例子中有两条记录,也表示
有两个用户 intern01 和 intern02
 第二字段: 被加密的密码,如果有的用户在此字段中是 x,表示这个用户不
能登录系统,也可以看作是虚拟用户,不过虚拟用户和真实用户都是相对
的,系统管理员随时可以对任何用户操作;
 第三字段: 表示上次更改口令的天数(距 1970 年 01 月 01 日),上面的
例子能说明 intern01 和 intern02 这两个用户,是在同一天更改了用户密
码,当然是通过 passwd 命令来更改的,更改密码的时间距 1970 年 01 月
01 日的天数为 13072;
 第四字段: 禁用两次口令修改之间最小天数的功能,设置为 0
 第五字段: 两次修改口令间隔最多的天数,在例子中都是 99999 天;这个
值如果在添加用户时没有指定的话,是通过/etc/login.defs 来获取默认
值, PASS_MAX_DAYS 99999; 你可以查看/etc/login.defs 来查看,具体
的值;
 第六字段: 提前多少天警告用户口令将过期;当用户登录系统后,系统登
录程序提醒用户口令将要作废;如果是系统默认值,是在添加用户时由
/etc/login.defs 文件定义中获取,在 PASS_WARN_AGE 中定义;在例子
中的值是 7 ,表示在用户口令将过期的前 7 天警告用户更改期口令;
 第七字段: 在口令过期之后多少天禁用此用户;此字段表示用户口令作废
多少天后,系统会禁用此用户,也就是说系统会不能再让此用户登录,也
不会提示用户过期,是完全禁用;在例子中,此字段两个用户的都是空
的,表示禁用这个功能;
 第八字段: 用户过期日期;此字段指定了用户作废的天数(从 1970 年的 1
月 1 日开始的天数),如果这个字段的值为空,帐号永久可用;在例子
中,我们看到 intern01 这个用户在此字段是空的,表示此用户永久可用;
而 intern02 这个用户表示在距 1970 年 01 月 01 日后 16668 天后过期,算
起来也就是 2010 年 11 月 21 号过期
 第九字段: 保留字段,目前为空,以备将来 Linux 发展之用;
2. 用户组相关配置文件
A) /etc/group 文件
/etc/group 文件是用户组的配置文件,内容包括用户和用户组,并且能显
示出用户是归属哪个用户组或哪几个用户组,因为一个用户可以归属一个或多
个不同的用户组;同一用户组的用户之间具有相似的特征。比如我们把某一用
户加入到 root 用户组,那么这个用户就可以浏览 root 用户家目录的文件,如果
root 用户把某个文件的组读写执行权限开放, root 用户组的所有用户都可以修
改此文件,如果是可执行的文件(比如脚本), root 用户组的用户也是可以执
行的;
用户组的特性在系统管理中为系统管理员提供了极大的方便,但安全性也
是值得关注的,如某个用户下有对系统管理有最重要的内容,最好让用户拥有
独立的用户组,或者是把用户下的文件的权限设置为完全私有;另外 root 用户
组一般不要轻易把普通用户加入进去。
B) /etc/group 的 4 个字段
/etc/group 的内容包括用户组(Group) 、用户组口令、 GID 及该用户组
所包含的用户(User), 每个用户组一条记录; 格式如下:
group_name:passwd:GID:user_list
在/etc/group 中的每条记录分四个字段:
 第一字段: 用户组名称;
 第二字段: 用户组密码;
 第三字段: GID
 第四字段: 用户列表,每个用户之间用,号分割;本字段可以为空;如果字
段为空表示用户组为 GID 的用户名;
我们举个例子:
root:x:0:root,intern02
#用户组 root, x 是密码段,表示没有设置密码, GID 是 0,root 用户组下包括 root、 intern02
以及 GID 为 0 的其它用户(可以通过/etc/passwd 查看)
intern01:x:500:intern02
#用户组 intern01, x 是密码段,表示没有设置密码, GID 是 500,intern01 用户组下包括
intern02 用户及 GID 为 500 的用户(可以通过/etc/passwd 查看)
intern02:x:502:intern02
#用户组 intern02, x 是密码段,表示没有设置密码, GID 是 502,intern02 用户组下包用户
intern02 及 GID 为 502 的用户(可以通过/etc/passwd 查看)
helloer:x:503:
#用户组 helloer, x 是密码段,表示没有设置密码, GID 是 503,helloer 用户组下包括 GID
为 503 的用户,可以通过/etc/passwd 查看
而/etc/passwd 对应的相关的记录为:
root:x:0:0:root:/root:/bin/bash
intern01:x:500:500:intern01 sun:/home/intern01:/bin/bash
intern02:x:505:502:intern02 open,intern02 office,13898667715:/home/intern02:/bin/bash
helloer:x:502:503::/home/helloer:/bin/bash
由此可以看出 helloer 用户组包括 helloer 用户;所以我们查看一个用户组
所拥有的用户,可以通过对比/etc/passwd 和/etc/group 来得到。
C) /etc/gshadow 文件
/etc/gshadow 是/etc/group 的加密文件, 比如用户组(Group) 管理密码
就是存放在这个文件。 /etc/gshadow 和/etc/group 是互补的两个文件;对于
大型服务器,针对很多用户和组,定制一些关系结构比较复杂的权限模型,设
置用户组密码是极有必要的。比如我们不想让一些非用户组成员永久拥有用户
组的权限和特性,这时我们可以通过密码验证的方式来让某些用户临时拥有一
些用户组特性,这时就要用到用户组密码。
D) /etc/gshadow 的 4 个字段
/etc/gshadow 格式如下,每个用户组独占一行,我们举例来说明:
intern01:!::intern02
intern02:oUS/q7NH75RhQ::intern02
 第一字段: 用户组名
 第二字段: 用户组的密码, intern01 用户组无密码; intern02 用户组有已
经,已经加密;
 第三字段: 用户组管理者,两者都为空;
 第四字段: intern01 用户组所拥有的成员是 intern02 ,然后还要对照一下
/etc/group 和/etc/passwd 查看是否还有其它用户,一般默认添加的用
户,有时同时也会创建用户组和用户名同名称; intern02 用户组有成员
intern02。

猜你喜欢

转载自my.oschina.net/u/3127489/blog/1624253