账号与权限管理
一、管理用户账号
Linux系统中的用户账号和组账号的作用是基于用户身份来控制对资源的访问。
1、用户账号
在Linux系统中,根据系统管理的需要将用户账号分为不同的类型,其拥有的权限以及担任角色也各不相同,主要包括超级用户、普通用户和程序用户。
-
超级用户:root用户是 Linux系统中默认的超级用户账号,对主机拥有最高的权限,只有当进行系统管理、维护任务时,才建议使用root用户登录权限,日常事务处理建议只使用普通用户帐号。
-
普通用户:普通用户需要由root用户或其它管理员用户创建,拥有的权限收到一定的限制,一般只在用户自己的宿主目录中拥有完整权限。
-
程序用户:在安装Linux系统及部分应用程序时会添加一些特定的低权限用户账号,这些用户一般不允许登录到系统,而仅用于维持系统或某个程序的正常运行,如bin、ftp等。
2、UID号
Linux系统中的每一个用户账号都有一个数字形式的身份标记,称为UID(User Identity,用户标识号),对于系统核心来说,UID作为区分用户的基本依据,原则上每个用户的UID号都是唯一的。root用户的UID号为固定值0,而程序用户账号的UID号为1~999,普通用户使用的UID号默认分配为1000—6000。
3、用户账号文件
Linux系统的用户账号、密码等信息均保存在相应的配置文件中,直接修改这些文件或者使用用户管理命令都可以对用户账号进行管理。
与用户相关的配置文件主要有两个,分别时/etc/passwd、/etc/shadow。前者用于保存用户名称、宿主目录、登录shell等基本信息,后者用于保存用户的密码、账号有效期等信息。在这两个配置文件中,每一行对应一个用户账号,不同的配置项之间使用冒号“:”进行分隔。
1)passwd文件中的配置行格式
系统中所有用户的账号基本信息都保存在"/etc/passwd"文件中,该文件是文本文件,任何用户都可以读取文件文件中内容。例如,以下操作可以分别查看/etc/passwd文件的开头、末尾的几行内容。
在passwd文件开头的部分,包括超级用户root及各程序用户的账号信息,系统中新增加的用户账号信息将保存到passwd文件的末尾。passwd文件的每一行内容中,包含了7个用冒号“:”分隔的配置字段,从左到右各配置字段的含义分别如下:
-
第1字段:用户帐号的名称,也是登录系统时使用的识别名称。
-
第2字段:经过加密的用户密码字串,或者密码占位符“x”。
-
第3字段:用户账号的UID号。
-
第4字段:所属基本组账号的GID号。
-
第5字段:用户全名,可填写与用户相关的说明信息。
-
第6字段:宿主目录,即该用户登录后所在的默认工作目录。
-
第7字段:登录shell等信息,用户完成登录后使用的shell。
基于系统运行和管理的需要,所有用户都可以访问passwd文件中的内容,但是只有root用户才能进行修改。
2)shadow文件中的配置行格式
shadow文件又被称为“影子文件”,其中保存有各用户账号的密码信息,因此对shadow文件的访问应该进行严格限制。默认只有root用户能够读取文件中的内容,而不允许直接编辑该文件中的内容。以下操作可以分别查看/etc/shadow文件开头、末尾的几行内容。
shadow文件的每一行内容,包含了9个用冒号“:”分隔的配置字段从左到右各配置字段的含义分别如下:
- 第1字段:用户账号名称。
- 第2字段:使用MD5加密的密码字串信息,当为“*”或者“!!"时表示此用户不能登录到系统。如果该字段为空,则该用户无需密码即可登录到系统。
- 第3字段:上次修改密码的时间,表示的时从1970年1月1日算起到最近一次更改密码时间所隔的天数。
- 第4字段:密码的最短有效天数,自本次修改密码后,必须至少经过该天数才能再次修改密码。默认值为0,表示不进行限制。
- 第5字段:密码的最长有效天数,自本次修改密码后,经过该天数以后必须再次修改密码。默认值为99999,表示不进行限制。
- 第6字段:提前多少天警告用户口令即将过期,默认值为7.
- 第7字段:在密码过期之后多少天内禁用此用户。
- 第8字段:账号失效时间,此字段制定了用户作废的天数(自1970年1月1日起计算),默认值为空,表示账号永久可用
- 第9字段:保留字段,目前没有特定用途。
二、用户账号管理
1、useradd命令–添加用户账号
useradd命令可以用于添加用户账号,其最基本的命令格式为:useradd [选项] 用户名
使用useradd命令添加用户账号时主要完成以下几项任务:
-
在/etc/passwd文件和/etc/shadow文件的末尾增加该用户账号的记录。
-
若未明确指定用户的宿主目录,则在/home目录下自动创建与该用户账号同名的宿主目录,并且在该目录下建立用户的各种初始配置文件。
-
若没有明确指定用户所属的组,则自动创建与该用户账号同名的基本组账号,组账号的记录信息将保存到/etc/passwd、/etc/shadow文件中。
例如,下面操作将新建名为PENG 的用户账号,并且通过查看passwd、shadow文件和/home目录来确认新增用户账号时的变化。