4.2 任务2 理解用户账户文件和组群文件
用户账户信息和组群信息分别存储在用户账户文件和组群文件中。
4.2.1 子任务1 理解用户账户文件
1./etc/passwd文件
在Linux系统中,所创建的用户账户及其相关信息(密码除外)均放在/etc/passwd配置文件中。用vim编辑器打开passwd文件,内容格式如下。
root:x:0:0:root:/root:/bin/bash bin:x:1:1:bin:/bin:/sbin/nologin daemon:x:2:2:daemon:/sbin:/sbin/nologin user1:x:500:500:oneuser:/home/user1:/bin/bash
文件中的每一行代表一个用户账户的资料,可以看到第一个用户是root。然后是一些标准账户,此类账户的shell为/sbin/nologin代表无本地登录权限。最后一行是由系统管理员创建的普通账户:user1。
passwd文件的每一行用“:”分隔为7个域,每一行各域的内容如下。
用户名:加密口令:UID:GID:用户的描述信息:主目录:命令解释器(登录shell)
passwd文件中各字段的含义如表4-2所示,其中少数字段的内容是可以为空的,但仍需使用“:”进行占位来表示该字段。
表4-2 passwd文件字段说明
2./etc/shadow文件
由于所有用户对/etc/passwd文件均有读取权限,为了增强系统的安全性,用户经过加密之后的口令都存放在/etc/shadow文件中。/etc/shadow文件只对root用户可读,因而大大提高了系统的安全性。shadow文件的内容形式如下。
root:$1$rRetvF5m$e3X1HGNncwP9DxRSNHMxr/:13757:0:99999:7::: bin:*:13734:0:99999:7::: user1:$1$xOojnJBE$P1t.wluVYU4rLMpFYD6LY.:13734:0:99999:7:::
shadow文件保存投影加密之后的口令以及与口令相关的一系列信息,每个用户的信息在shadow文件中占用一行,并且用“:”分隔为9个域,各域的含义如表4-3所示。
表4-3 shadow文件字段说明
3./etc/login.defs文件
建立用户账户时会根据/etc/login.defs文件的配置设置用户账户的某些选项。该配置文件的有效设置内容及中文注释如下所示。
MAIL_DIR /var/spool/mail //用户邮箱目录 MAIL_FILE .mail PASS_MAX_DAYS 99999 //账户密码最长有效天数 PASS_MIN_DAYS 0 //账户密码最短有效天数 PASS_MIN_LEN 5 //账户密码的最小长度 PASS_WARN_AGE 7 //账户密码过期前提前警告的天数 UID_MIN 500 //用useradd命令创建账户时自动产生的最小UID值 UID_MAX 60000 //用useradd命令创建账户时自动产生的最大UID值 GID_MIN 500 //用groupadd命令创建组群时自动产生的最小GID值 GID_MAX 60000 //用groupadd命令创建组群时自动产生的最大GID值 USERDEL_CMD /usr/sbin/userdel_local //如果定义,将在删除用户时执行,以删除相 应用户的计划作业和打印作业等 CREATE_HOME yes //创建用户账户时是否为用户创建主目录
4.2.2 子任务2 理解组群文件
组群账户的信息存放在/etc/group文件中,而关于组群管理的信息(组群口令、组群管理员等)则存放在/etc/gshadow文件中。
1./etc/group文件
group文件位于“/etc”目录,用于存放用户的组账户信息,对于该文件的内容任何用户都可以读取。每个组群账户在group文件中占用一行,并且用“:”分隔为4个域。每一行各域的内容如下。
组群名称:组群口令(一般为空):GID:组群成员列表
group文件的内容形式如下。
root:x:0:root bin:x:1:root, bin, daemon daemon:x:2:root, bin, daemon bobby:x:500:
group文件的组群成员列表中如果有多个用户账户属于同一个组群,则各成员之间以“, ”分隔。在/etc/group文件中,用户的主组群并不把该用户作为成员列出,只有用户的附属组群才会把该用户作为成员列出。例如,用户bobby的主组群是bobby,但/etc/group文件中组群bobby的成员列表中并没有用户bobby。
2./etc/gshadow文件
/etc/gshadow文件用于存放组群的加密口令、组管理员等信息,该文件只有root用户可以读取。每个组群账户在gshadow文件中占用一行,并以“:”分隔为4个域。每一行中各域的内容如下。
组群名称:加密后的组群口令:组群的管理员:组群成员列表
gshadow文件的内容形式如下。
root:::root bin:::root, bin, daemon daemon:::root, bin, daemon bobby:! ::