043_实操篇_用户权限类(二)_用户组管理 新增组 命令 groupadd 语法格式:groupadd [参数] 用户组 常用参数: -f 若用户组已存在,则以成功状态退出 -g 设置用户组ID -h 显示帮助信息 -K 覆盖配置文件“/etc/login.defs” -o 允许创建重复ID的用户组 -p 设置用户组密码 -r 创建系统用户组 用户组配置文件 /etc/group 各用户组中,还是以 ":" 作为字段之间的分隔符,分为 4 个字段, 每个字段对应的含义为: 组名:密码:GID:该用户组中的用户列表 接下来,分别介绍各个字段具体的含义。 组名 也就是是用户组的名称,有字母或数字构成。 同 /etc/passwd 中的用户名一样,组名也不能重复。 组密码 和 /etc/passwd 文件一样,这里的 "x" 仅仅是密码标识, 真正加密后的组密码默认保存在 /etc/gshadow 文件中。 不过,用户设置密码是为了验证用户的身份, 那用户组设置密码是用来做什么的呢? 用户组密码主要是用来指定组管理员的, 由于系统中的账号可能会非常多, root 用户可能没有时间进行用户的组调整, 这时可以给用户组指定组管理员, 如果有用户需要加入或退出某用户组, 可以由该组的组管理员替代 root 进行管理。 但是这项功能目前很少使用,我们也很少设置组密码。 如果需要赋予某用户调整某个用户组的权限,则可以使用 sudo 命令代替。 组ID (GID) 就是群组的 ID 号,Linux 系统就是通过 GID 来区分用户组的, 同用户名一样,组名也只是为了便于管理员记忆。 这里的组 GID 与 /etc/passwd 文件中第 4 个字段的 GID 相对应, 实际上,/etc/passwd 文件中使用 GID 对应的群组名, 就是通过此文件对应得到的。 组中的用户 此字段列出每个群组包含的所有用户。 需要注意的是,如果该用户组是这个用户的初始组, 则该用户不会写入这个字段,可以这么理解, 该字段显示的用户都是这个用户组的附加用户。 举个例子,lamp 组的组信息为 "lamp:x:502:", 可以看到,第四个字段没有写入 lamp 用户, 因为 lamp 组是 lamp 用户的初始组。 如果要查询这些用户的初始组, 则需要先到 /etc/passwd 文件中查看 GID(第四个字段), 然后到 /etc/group 文件中比对组名。 每个用户都可以加入多个附加组,但是只能属于一个初始组。 所以我们在实际工作中,如果需要把用户加入其他组, 则需要以附加组的形式添加。 例如,我们想让 lamp 也加入 root 这个群组, 那么只需要在第一行的最后一个字段加入 lamp, 即 root:x:0:lamp 就可以了。 一般情况下,用户的初始组就是在建立用户的同时建立的和用户名相同的组。 修改用户账号信息 命令 usermod 语法格式:usermod [参数] 用户名 常用参数: -a 将用户添加至扩展组中 -c 修改用户账号的备注文字 -d 修改用户登录时的家目录 -e 修改用户账号的有效期限 -f 设置在密码过期后多少天关闭该账号 -g 修改用户所属的基本群 -G 修改用户所属的扩展群 -l 修改用户账号名称 -L 锁定用户密码,使密码立即失效 -m 将用户主目录内容移动到新位置 -o 允许重复的用户ID -p 设置用户的新密码 -s 修改用户登录后使用的Shell终端 -u 修改用户账号的ID -U 解除密码锁定,使密码恢复正常 -Z 设置用户账号的SELinux映射用户 更改群组属性 命令 groupmod 语法格式:groupmod 参数 群组名 常用参数: -g 设置群组识别码 -h 显示帮助信息 -n 设置群组名称 -o 允许重复使用群组识别码 -p 设置群组密码 删除用户组 命令 groupdel 语法格式:groupdel [参数] 群组名 常用参数: -f 强制删除而不询问 -h 显示帮助信息 关于whell组 在 Unix 中 root 用户所属组就是 wheel 在 Unix 系统(例如:常见的 macOS 和 FreeBSD), root 用户所在的组称之为 wheel: id root uid=0(root) gid=0(wheel) groups=0(wheel) Wheel 来源于 “big wheel” 这个俚语,指有强大 “威力” 或 “影响力” 的人。 随之而来的就是 TENEX 操作系统发明了 wheel bit, 一个允许处理器做一些限制性的操作的“特权 bit”。 Unix 操作系统则在上世纪八十年代引入 wheel, 这就是为什么 root 用户所在的组称之为 wheel 的来历。 参考资料: Wheel (computing)。 Wheel 组概念 Wheel 组是 Unix 系统一个遗留物。 当服务器需要做比日常例行维护更高级的工作的时候, 就经常需要用到 root 权限了。 而这个 wheel 组就是建立用来归纳一些特殊的系统用户用的, 这其中的用户都或多或少地拥有 root 的部分功能和权限。 也就是说如果你不是 wheel 组成员,那就没有 root 身上任何的特权。 也因为这样,使用 wheel 组成员用户的话, 会尽量减少对系统 “摧毁性” 破坏的概率和风险。 如今大多数的 Linux 发行版本中,仍然保留了 wheel 这个组, 虽然它已经不像当初设计出来的那样必要了, 但是有些老玩家还是忠于这种旧式经典风格的, 所以他们经常还是依旧让 wheel 组发挥着以往的作用。 他们是这样做的:在建立他们自己的用户时, 将其添加入 wheel 组中(用 wheel 组作为用户的主组), 或者使用 vigr 来编辑 /etc/group 文件, 将他们的用户名追加到 wheel 组那行的末尾。 但是在 Linux 各发行版中有所差异。 实际上 Debian 系发行版,包括 Ubuntu 等,并没有 wheel 组。 wheel 组主要存在与 Redhat 系发行版(RHEL/Fedora/CentOS)中。 简单的说,在 Linux 上 root 账号所属的组是 root,并不是 wheel, 部分 Linux 发行版使用 wheel 组获取 root 权限是通过 sudo 配置实现的