Linux用户和用户组管理
Linux用户和用户组
#### Linux用户和组的关系 - 一对一:一个用户可以存在一个组中,是组中的唯一成员; - 一对多:一个用户可以存在多个用户组中,此用户具有这多个组的共同权限; - 多对一:多个用户可以存在一个组中,这些用户具有和组相同的权限; - 多对多:多个用户可以存在多个组中,也就是以上 3 种关系的扩展。 #### UID和GID(用户ID和组ID) - 登陆 Linux 系统时,虽然输入的是自己的用户名和密码,但其实 Linux 并不认识你的用户名称,它只认识用户名对应的 ID 号(也就是一串数字)。Linux 系统将所有用户的名称与 ID 的对应关系都存储在 /etc/passwd 文件中。说白了,用户名并无实际作用,仅是为了方便用户的记忆而已。 - 每个文件都有自己的拥有者 ID 和群组 ID,当显示文件属性时,系统会根据 /etc/passwd 和 /etc/group 文件中的内容,分别找到 UID 和 GID 对应的用户名和群组名,然后显示出来。 #### /etc/passwd内容解释 - /etc/passwd 文件,是系统用户配置文件,存储了系统中所有用户的基本信息,并且所有用户都可以对此文件执行读操作。 - Linux 系统中默认用户很多,这些用户中的绝大多数是系统或服务正常运行所必需的用户,这种用户通常称为系统用户或伪用户。系统用户无法用来登录系统,但也不能删除,因为一旦删除,依赖这些用户运行的服务或程序就不能正常执行,会导致系统问题。 - /etc/passwd 文件中每行记录对应一个用户,每行用户信息都以 ":" 作为分隔符,划分为 7 个字段,每个字段所表示的含义如下: ```html 用户名:密码:UID(用户ID):GID(组ID):描述性信息:主目录:默认Shell ``` - 用户名:用户名,就是一串代表用户身份的字符串。 - 密码:"x" 表示此用户设有密码,但不是真正的密码,真正的密码保存在 /etc/shadow 文件中 - UID:UID,也就是用户 ID。每个用户都有唯一的一个 UID,Linux 系统通过 UID 来识别不同的用户。 - GID:全称“Group ID”,简称“组ID”,表示用户初始组的组 ID 号。 - 描述性信息:这个字段并没有什么重要的用途,只是用来解释这个用户的意义而已。 - 主目录:也就是用户登录后有操作权限的访问目录,通常称为用户的主目录。 - 默认的Shell:Shell 就是 Linux 的命令解释器,是用户和 Linux 内核之间沟通的桥梁。  #### /etc/shadow(影子文件) - /etc/shadow 文件,用于存储 Linux 系统中用户的密码信息,又称为“影子文件”。由于该文件允许所有用户读取,易导致用户密码泄露,因此 Linux 系统将用户的密码信息从 /etc/passwd 文件中分离出来,并单独放到了此文件中。 - /etc/shadow 文件只有 root 用户拥有读权限,其他用户没有任何权限,这样就保证了用户密码的安全性。注意,如果这个文件的权限发生了改变,则需要注意是否是恶意攻击。 - 同 /etc/passwd 文件一样,文件中每行代表一个用户,同样使用 ":" 作为分隔符,不同之处在于,每行用户信息被划分为 9 个字段。每个字段的含义如下: ```shell 用户名:加密密码:最后一次修改时间:最小修改时间间隔:密码有效期:密码需要变更前的警告天数:密码过期后的宽限时间:账号失效时间:保留字段 ``` - 用户名:同 /etc/passwd 文件的用户名有相同的含义。 - 加密密码:这里保存的是真正加密的密码。目前 Linux 的密码采用的是 SHA512 散列加密算法。这串密码产生的乱码不能手工修改,如果手工修改,系统将无法识别密码,导致密码失效。很多软件透过这个功能,在密码串前加上 "!"、"*" 或 "x" 使密码暂时失效。 所有伪用户的密码都是 "!!" 或 "*",代表没有密码是不能登录的。当然,新创建的用户如果不设定密码,那么它的密码项也是 "!!",代表这个用户没有密码,不能登录。 - 最后一次修改时间:用天表示,日期从1970 年 1 月 1 日算起,可以使用如下命令进行换算: date -d "1970-01-01 888 days",即可将其换算为我们习惯的系统日期。 - 最小修改时间间隔:规定了从第 3 字段(最后一次修改密码的日期)起,多长时间之内不能修改密码。如果是 0,则密码可以随时修改;如果是 10,则代表密码修改后 10 天之内不能再次修改密码。此字段是为了针对某些人频繁更改账户密码而设计的。 - 密码有效期:经常变更密码是个好习惯,为了强制要求用户变更密码,这个字段可以指定距离第 3 字段(最后一次更改密码)多长时间内需要再次变更密码,否则该账户密码进行过期阶段。 - 密码需要变更前的警告天数:与第 5 字段相比较,当账户密码有效期快到时,系统会发出警告信息给此账户,提醒用户 "再过 n 天你的密码就要过期了,请尽快重新设置你的密码!"。该字段的默认值是 7,也就是说,距离密码有效期的第 7 天开始,每次登录系统都会向该账户发出 "修改密码" 的警告信息。 - 密码过期后的宽限天数:也称为“口令失效日”,简单理解就是,在密码过期后,用户如果还是没有修改密码,则在此字段规定的宽限天数内,用户还是可以登录系统的;如果过了宽限天数,系统将不再让此账户登陆,也不会提示账户过期,是完全禁用。如果是 0,则代表密码过期后立即失效;如果是 -1,则代表密码永远不会失效。 - 账号失效时间:同第 3 个字段一样,使用自 1970 年 1 月 1 日以来的总天数作为账户的失效时间。该字段表示,账号在此字段规定的时间之外,不论你的密码是否过期,都将无法使用!该字段通常被使用在具有收费服务的系统中。 - 保留:这个字段目前没有使用,等待新功能的加入。 #### /etc/group文件解析 - /ect/group 文件是用户组配置文件,即用户组的所有信息都存放在此文件中。各用户组中,以 ":" 作为字段之间的分隔符,分为 4 个字段,每个字段对应的含义为: ```html 组名:密码:GID:该用户组中的用户列表 ``` - 组名:也就是是用户组的名称,有字母或数字构成。 - 组密码:和 /etc/passwd 文件一样,这里的 "x" 仅仅是密码标识,真正加密后的组密码默认保存在 /etc/gshadow 文件中。用户组密码主要是用来指定组管理员的。 - 组ID (GID):就是群组的 ID 号,Linux 系统就是通过 GID 来区分用户组的,同用户名一样,组名也只是为了便于管理员记忆。 - 组中的用户:此字段列出每个群组包含的所有用户。 #### /etc/gshadow文件内容解析 - /etc/gshadow 文件用来存储组用户的密码信息 - 文件中,每行代表一个组用户的密码信息,各行信息用 ":" 作为分隔符分为 4 个字段,每个字段的含义如下: ```html 组名:加密密码:组管理员:组附加用户列表 ``` - 组名:同 /etc/group 文件中的组名相对应。 - 组密码:对于大多数用户来说,通常不设置组密码,因此该字段常为空,但有时为 "!",指的是该群组没有组密码,也不设有群组管理员。 - 组管理员:考虑到 Linux 系统中账号太多,而超级管理员 root 可能比较忙碌,因此当有用户想要加入某群组时,root 或许不能及时作出回应。这种情况下,如果有群组管理员,那么他就能将用户加入自己管理的群组中,也就免去麻烦 root 了。 - 不过,由于目前有 sudo 之类的工具,因此群组管理员的这个功能已经很少使用了。 - 组中的附加用户:该字段显示这个用户组中有哪些附加用户,和 /etc/group 文件中附加组显示内容相同。 #### /etc/login.defs:创建用户的默认设置文件 - /etc/login.defs 文件用于在创建用户时,对用户的一些基本属性做默认设置,例如指定用户 UID 和 GID 的范围,用户的过期时间,密码的最大长度,等等。 - 需要注意的是,该文件的用户默认配置对 root 用户无效。并且,当此文件中的配置与 /etc/passwd 和 /etc/shadow 文件中的用户信息有冲突时,系统会以/etc/passwd 和 /etc/shadow 为准。 | 设置项 | 含义 | | -----| -----| | MAIL_DIR /var/spool/mail | 创建用户时,系统会在目录 /var/spool/mail 中创建一个用户邮箱| | PASS_MAX_DAYS 99999 | 密码有效期,99999 是自 1970 年 1 月 1 日起密码有效的天数 | | PASS_MIN_DAYS 0 | 表示自上次修改密码以来,最少隔多少天后用户才能再次修改密码,默认值是 0。| | PASS_MIN_LEN 5 | 指定密码的最小长度,默认不小于 5 位,但是现在用户登录时验证已经被 PAM 模块取代,所以这个选项并不生效。| | PASS_WARN_AGE 7 | 指定在密码到期前多少天,系统就开始通过用户密码即将到期,默认为 7 天。| | UID_MIN 500 | 指定最小 UID 为 500,也就是说,添加用户时,默认 UID 从 500 开始。| | UID_MAX 60000 | 指定用户最大的 UID 为 60000。| | GID_MIN 500 | 指定最小 GID 为 500,也就是在添加组时,组的 GID 从 500 开始。| | GID_MAX 60000 | 用户 GID 最大为 60000。| | CREATE_HOME yes | 指定在创建用户时,是否同时创建用户主目录,yes 表示创建,no 则不创建,默认是 yes。| | UMASK 077 | 用户主目录的权限默认设置为 077。| | USERGROUPS_ENAB yes | 指定删除用户的时候是否同时删除用户组,准备地说,这里指的是删除用户的初始组,此项的默认值为 yes。| | ENCRYPT_METHOD SHA512 | 指定用户密码采用的加密规则,默认采用 SHA512,这是新的密码加密模式,原先的 Linux 只能用 DES 或 MD5 加密。|
顶部
收展
底部
[TOC]
目录
Linux用户和用户组
Linux 用户增删查改
Linux 用户密码操作
Linux 用户组管理
相关推荐
Linux文件目录管理
Linux打包压缩
Linux文本处理
Linux软件安装
Linux文件系统管理
Linux系统管理