TangWei's Studio

Linux用户与组管理详解

Word count: 1,508 / Reading time: 6 min
2018/04/02 Share

Linux用户与组管理详解

在linux系统上,用户管理是基于用户名和密码的方式进行资源的分配,了解和掌握用户与组的管理是从事运维工作所必须具备的能力,也是将来从事运维行业的重要工作之一。这里我将介绍Linux系统中用户与组的一些相关概念及管理用户与组的常见命令等:

安全3A

Linux通过三个机制来保证用户的安全:

  • Authentication:认证

  • Authorization:授权

  • Accouting|Audition:审计

用户user

令牌:token

Linux用户:Username

管理员:root,UID=0(拥有对系统的最高操作权限)

普通用户:

  • 系统用户:1-499,1-999(centos7)

  • 登录用户:500+,1000+(centos7)

组 group:

Linux组:Groupname/GID

管理员组:root,GID=0

普通组:

  • 系统组:1-499,1-999(centos7)

  • 普通组:500+,1000+(centos7)

在创建用户不指定组的情况下,默认创建一个与该用户名相同的组作为该用户的主组

组的类别:

用户的主要组:

用户必须属于一个且只有一个主组

组名同用户名,且仅包含一个用户,私有组

用户的附加组:

一个用户可以属于零个或多个附加组

安全上下文

进程所能够访问资源的权限取决于进程的运行者的身份

用户和组的配置文件

  • /etc/passwd: 存放用户及其属性信息

  • /etc/shadow: 存放用户密码及其相关信息

  • /etc/group: 存放组及属性信息

  • /etc/gshadow: 存放组密码及其相关信息

  • /etc/default/useradd:新建账户模板信息

/etc/passwd

enter image description here

name:password:UID:GID:GECEO:directory:shell

  1. 用户名

  2. 密码:显示为x

  3. UID:用户ID

  4. GID:组ID

  5. 描述信息:GECOS,可添加用户描述信息

  6. 家目录:用户家目录

  7. shell类型:用户shell类型

    /etc/shadow

    enter image description here

  8. 用户名

  9. 密码加密:算法$6;!!表示账户锁定

  10. 上次修改密码时间:距离1970.1.1的天数

  11. 密码最小修改时间:距离下次修改密码至少需间隔的天数(0表示随时可变更)

  12. 密码最大修改时间:距离本次密码修改时间最多可间隔的天数(99999表示永不过期)

  13. 密码提醒时间:距离密码即将到期提前警告的天数

  14. 密码到期后宽限时间:密码到期后账户还能使用的天数

  15. 账户有效期:该账户可使用的日期

  16. 保留区域:保留将来可能增加的区域

/etc/group

enter image description here

group_name:password:GID:user_list

  1. 组名

  2. 组密码:普通用户加入某个组时需要的密码(不推荐设置密码)

  3. GID:组ID

  4. 组成员:“,”作为分隔符

/etc/gshadow

enter image description here

group_name:encrypted_password:administrators:members

  1. 组名

  2. 组密码

  3. 组管理员(组长)

  4. 组成员:“,”作为分隔符

/etc/default/useradd

  1. GROUP=100 创建用户无指定组时默认所属的组users

  2. HOME=/home 创建用户默认家目录路径

  3. INACTIVE=-1 创建用户时默认没有宽限时间

  4. EXPIRE= 创建用户时默认有效期

  5. SHELL=/bin/bash 创建用户时默认shell类型

  6. SKEL=/etc/skel 创建用户时家目录模板

  7. CREATE_MAIL_SPOOL=yes 创建用户时默认创建邮箱

文件操作

  • vipw 等同于vi /etc/passwd

  • vigr 等同于vi /etc/group

  • pwck 检查passwd文件格式错误

  • grpck 检查group文件格式错误

用户与组的管理命令

用户管理命令及常用选项:

useradd

etc/default/useradd存放创建用户时的默认信息

  • -u 指定uid(生产环境中多台服务器保证程序是同一UID)

  • -o 不检查UID的唯一性,需配合-u使用(不建议UID一样)

  • -g 创建用户时指定主组

  • -c 创建用户时添加描述

  • -d 创建用户时指定家目录路径,二层目录(生产环境中创建给服务用的账户可能会用到)

  • -s 创建用户时指定shell类型/etc/shells

  • -r 创建系统用户(默认不创建家目录)

  • -m 强行创建家目录,用于系统用户,配合-r使用(生产环境中为服务生成系统用户)-M 强行不创建家目录,用于普通用户

  • -G 创建用户时加入到多个辅助组里,多个辅助组用“,”分开

  • -N 创建一个用户名和主组名不同的用户,默认users作为主组

  • -p 创建用户添加密码(不建议此种方式添加口令,口令会在shadow文件中明文)

usermod

  • -u 修改UID

  • -g 修改GID(组需存在)

  • -G 修改辅助组(会将原来的辅助组覆盖),如果要保留原辅助组配合-a使用

  • -s 新的默认shell

  • -c 新的注释信息

  • -d 新家目录不会自动创建;若要创建新家目录并移动原家数据,同时使用-m选项(-m -d有顺序)

  • -l 新的用户名

  • -L 用户加锁

  • -U 用户解锁(centos6以后禁止此方式解锁)

userdel

  • -r 删除用户的所有文件,家目录及邮箱(工作中不建议用,建议保留数据)

组帐号维护命令及常用选项

groupadd

  • -g 指明GID号创建组

  • -r 创建系统组group(centos6:ID<500、centos7:ID<1000)

groupmod

  • -n 新的组名

  • -g 新的GID

groupdel 删除组(前提没有用户以此组为主组)

groupmems 查看指定组的成员

  • -g 更改为指定组(只有root)

  • -a 指定用户加入组

  • -d 从组中删除用户

  • -p 从组中清除所有成员

  • -l 显示组成员列表(读取的/etc/group文件中对应组的最后一个字段的全部内容)

gpasswd 给组添加口令

  • -a user 将user添加至指定组中

  • -d user 从指定组中移除用户user

  • -A user1,user2… 设置有管理权限的用户列表(设置组管理员)

CATALOG
  1. 1. Linux用户与组管理详解
    1. 1.0.1. 安全3A
    2. 1.0.2. 用户user
    3. 1.0.3. 组 group:
    4. 1.0.4. 组的类别:
    5. 1.0.5. 安全上下文
    6. 1.0.6. 用户和组的配置文件
    7. 1.0.7. /etc/passwd
    8. 1.0.8. /etc/shadow
    9. 1.0.9. /etc/group
    10. 1.0.10. /etc/gshadow
    11. 1.0.11. /etc/default/useradd
    12. 1.0.12. 文件操作
  2. 1.1. 用户与组的管理命令
    1. 1.1.1. useradd
    2. 1.1.2. usermod
    3. 1.1.3. userdel
  3. 1.2. 组帐号维护命令及常用选项
    1. 1.2.1. groupadd
    2. 1.2.2. groupmod
    3. 1.2.3. groupdel 删除组(前提没有用户以此组为主组)
    4. 1.2.4. groupmems 查看指定组的成员
    5. 1.2.5. gpasswd 给组添加口令