news 2026/5/1 15:22:02

麒麟操作系统用户和组管理

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
麒麟操作系统用户和组管理

Kylin(麒麟)操作系统是基于 Linux 内核开发的国产操作系统,其用户和组管理机制与 Linux 系统一脉相承,核心目标是通过用户身份标识(UID)组身份标识(GID)实现对文件、进程、系统资源的权限控制,保障系统安全性和资源分配合理性。本文将从基础概念、核心操作(命令行 + 图形界面)、权限关联、高级配置四个维度,详细讲解 Kylin 系统的用户和组管理。

一、核心概念:用户与组的基本定义

在 Kylin 系统中,“用户” 是访问系统的最小身份单元,“组” 是用户的集合(用于批量管理权限),二者通过 UID 和 GID 唯一标识,且遵循严格的权限规则。

1. 用户(User)分类

Kylin 系统中的用户分为三类,对应不同的系统权限和使用场景:

类型UID 范围作用示例
超级用户(root)UID=0拥有系统最高权限,可执行任何命令(如修改系统配置、删除核心文件),仅用于系统管理,不建议日常使用root
系统用户(System User)UID=1-999(默认)用于运行系统服务(如数据库、Web 服务),无登录权限,仅保障服务进程的身份隔离mysql(数据库服务用户)、www(Web 服务用户)
普通用户(Regular User)UID=1000+(默认)日常使用的用户,权限受限制(仅能操作自己目录下的文件,需 root 授权才能执行高权限操作)user1、kylinuser

2. 组(Group)分类

组分为两类,用于灵活分配权限(一个用户可属于多个组):

类型GID 范围作用示例
主组(Primary Group)与用户 UID 匹配(普通用户 GID 默认 = 1000+)用户创建时默认归属的组,用户的文件默认继承主组权限user1 的主组为 user1(GID=1000)
附加组(Supplementary Group)任意有效 GID用户额外加入的组,用于获取该组的资源访问权限(如 “开发组” 成员可访问共享代码目录)user1 加入 dev 组(GID=1001),获得 dev 组目录权限

3. 关键配置文件

用户和组的信息均存储在系统配置文件中,修改这些文件(需 root 权限)可直接管理用户 / 组(建议优先用命令行工具,避免手动改文件出错):

配置文件路径作用核心字段说明
/etc/passwd存储所有用户的基本信息(公开文件,无密码)用户名:密码占位符:UID:GID:用户说明:家目录:登录Shell例:user1:x:1000:1000:User1:/home/user1:/bin/bash
/etc/shadow存储用户的密码信息(仅 root 可读取,加密存储)用户名:加密密码:密码最后修改时间:密码最小有效期:密码最大有效期:密码过期警告期:账号失效期:保留字段例:user1:$6$xxxx$xxxx:19500:0:99999:7:::
/etc/group存储所有组的基本信息(公开文件)组名:组密码占位符:GID:组内成员列表例:dev:x:1001:user1,user2
/etc/gshadow存储组的密码信息(仅 root 可读取,用于 “组管理员” 功能)组名:加密组密码:组管理员:组内成员列表例:dev:$6$xxxx$xxxx:user1:user1,user2

二、命令行管理:用户与组的核心操作

Kylin 系统的用户 / 组管理以命令行为主,需通过root权限执行(可通过su - root切换到 root 用户,或在命令前加sudo)。

1. 用户管理命令

(1)创建用户:useradd

useradd是创建用户的基础命令,默认仅创建用户账号,需手动设置密码;若需自动创建家目录、分配 Shell,需加参数。

参数作用示例
-m自动创建用户的家目录(/home/用户名useradd -m user2(创建 user2,家目录为/home/user2
-d 目录路径自定义家目录路径(替代默认/home/用户名useradd -m -d /opt/user3 user3(家目录设为/opt/user3
-s Shell路径指定用户的登录 Shell(默认/bin/bash/sbin/nologin表示无登录权限)useradd -m -s /sbin/nologin mysql(创建系统用户 mysql,无登录权限)
-u UID自定义 UID(需确保 UID 未被占用)useradd -m -u 1005 user4(指定 user4 的 UID 为 1005)
-g 主组名/主组GID指定用户的主组(需提前存在该组)useradd -m -g dev user5(将 user5 的主组设为 dev)
-G 附加组1,附加组2指定用户的附加组(多个组用逗号分隔)useradd -m -G dev,test user6(user6 加入 dev 和 test 两个附加组)
-c "用户说明"添加用户备注(如姓名、部门)useradd -m -c "研发部-张三" zhangsan
(2)设置 / 修改用户密码:passwd

用户创建后必须设置密码才能登录,passwd命令用于管理密码(普通用户可修改自己的密码,root 可修改所有用户密码)。

命令格式作用示例
passwd 用户名为指定用户设置密码(root 使用)passwd user2(root 为 user2 设置密码,输入时密码不显示)
passwd普通用户修改自己的密码(需先输入旧密码)passwd(user2 登录后执行,修改自己的密码)
passwd -l 用户名锁定用户(锁定后无法登录,需 root 解锁)passwd -l user2(锁定 user2)
passwd -u 用户名解锁被锁定的用户passwd -u user2(解锁 user2)
passwd -d 用户名清空用户密码(不建议,会导致用户无密码即可登录)passwd -d user2(清空 user2 的密码)
(3)修改用户信息:usermod

usermod用于修改已存在用户的属性(如 UID、家目录、组、Shell 等),参数与useradd类似。

常用参数作用示例
-u 新UID修改用户的 UIDusermod -u 1006 user2(将 user2 的 UID 改为 1006)
-d 新家目录 -m修改家目录并自动迁移原内容(-m必加,否则仅改配置)usermod -d /home/newuser2 -m user2(迁移 user2 的家目录)
-g 新主组修改用户的主组usermod -g test user2(将 user2 的主组改为 test)
-G 新附加组列表覆盖原附加组(若需新增而非覆盖,用-aGusermod -G dev,admin user2(覆盖为 dev 和 admin 组)
-aG 新增附加组新增附加组(不覆盖原有)usermod -aG admin user2(给 user2 新增 admin 附加组)
-s 新Shell修改登录 Shellusermod -s /bin/sh user2(将 user2 的 Shell 改为/bin/sh
-L锁定用户(同passwd -lusermod -L user2
-U解锁用户(同passwd -uusermod -U user2
(4)删除用户:userdel

userdel用于删除用户,默认仅删除用户账号,需加参数才能删除家目录和邮件文件。

参数作用示例
无参数仅删除用户账号(家目录、邮件保留)userdel user2(删除 user2 账号,保留/home/user2
-r彻底删除用户(含家目录、邮件、日志等关联文件)userdel -r user2(删除 user2 及所有关联文件,推荐使用)
(5)查看用户信息:id/finger/cat /etc/passwd
  • id 用户名:查看用户的 UID、GID、所属组(最常用)例:id user1→ 输出uid=1000(user1) gid=1000(user1) groups=1000(user1),1001(dev),1002(test)
  • finger 用户名:查看用户的详细信息(含家目录、Shell、登录时间)例:finger user1→ 输出用户备注、登录状态、家目录路径等
  • cat /etc/passwd | grep 用户名:直接从配置文件中筛选用户信息例:cat /etc/passwd | grep user1→ 输出user1:x:1000:1000:User1:/home/user1:/bin/bash

2. 组管理命令

(1)创建组:groupadd

groupadd用于创建新组,默认分配未使用的最小 GID(系统组 1-999,普通组 1000+)。

参数作用示例
-g GID自定义 GID(需确保未被占用)groupadd -g 1003 dev2(创建 dev2 组,GID=1003)
-r创建系统组(GID 范围 1-999,用于系统服务)groupadd -r dbgroup(创建系统组 dbgroup,供数据库服务使用)
(2)修改组信息:groupmod

groupmod用于修改已存在组的属性(组名、GID)。

参数作用示例
-g 新GID修改组的 GIDgroupmod -g 1004 dev2(将 dev2 的 GID 改为 1004)
-n 新组名修改组的名称groupmod -n dev_new dev2(将 dev2 改名为 dev_new)
(3)删除组:groupdel

groupdel用于删除组,注意:若组是某个用户的主组,需先修改该用户的主组,否则无法删除组

示例:

  1. 查看 dev 组是否是用户的主组:cat /etc/passwd | grep :1001:(假设 dev 的 GID=1001)
  2. 若 user1 的主组是 dev,先修改 user1 的主组:usermod -g test user1
  3. 删除 dev 组:groupdel dev
(4)添加 / 删除组成员:gpasswd

gpasswd用于管理组的成员(添加、删除),也可设置组密码(允许非 root 用户加入组)。

命令格式作用示例
gpasswd -a 用户名 组名向组中添加成员gpasswd -a user1 dev(将 user1 加入 dev 组)
gpasswd -d 用户名 组名从组中删除成员gpasswd -d user1 dev(将 user1 从 dev 组中删除)
gpasswd -M 用户名1,用户名2 组名覆盖组的成员列表(多个用户用逗号分隔)gpasswd -M user1,user2 dev(dev 组仅保留 user1 和 user2)
gpasswd 组名设置组密码(普通用户输入组密码即可加入该组)gpasswd dev(设置 dev 组的密码)
(5)查看组信息:groups/cat /etc/group
  • groups 用户名:查看用户所属的所有组(主组 + 附加组)例:groups user1→ 输出user1 : user1 dev test
  • cat /etc/group | grep 组名:从配置文件中筛选组信息例:cat /etc/group | grep dev→ 输出dev:x:1001:user1,user2

三、图形界面管理:适合新手操作

Kylin 系统提供可视化的 “用户和组管理” 工具,适合不熟悉命令行的用户,操作路径如下(以 Kylin 4.0/5.0 为例):

1. 打开用户管理工具

  1. 点击桌面左上角的开始菜单→ 进入系统设置
  2. 在系统设置中找到用户账户(或 “用户和组”),点击进入
  3. 首次进入需验证 root 密码(或当前用户的 sudo 密码),验证通过后即可管理用户和组。

2. 用户管理(图形界面)

(1)创建用户
  1. 点击 “添加用户” 按钮,弹出 “新建用户” 窗口
  2. 填写核心信息:
    • 用户名:自定义(如 user3)
    • 密码:设置密码(需符合复杂度,如包含大小写、数字)
    • 确认密码:重复输入密码
    • 用户类型:选择 “标准用户”(普通用户)或 “管理员”(拥有 sudo 权限)
    • 家目录:默认/home/user3,可手动修改
  3. 点击 “确定”,完成用户创建。
(2)修改用户信息
  1. 在用户列表中选中需修改的用户(如 user3),点击 “修改” 按钮
  2. 可修改的内容包括:
    • 密码:点击 “更改密码” 重新设置
    • 用户类型:切换 “标准用户” 和 “管理员”
    • 家目录:修改用户的家目录路径
    • 登录 Shell:选择默认/bin/bash或其他 Shell
  3. 点击 “确定” 保存修改。
(3)删除用户
  1. 选中需删除的用户,点击 “删除” 按钮
  2. 弹出确认窗口,选择 “删除文件”(彻底删除家目录等关联文件)或 “保留文件”(仅删除账号)
  3. 点击 “确定”,完成删除。

3. 组管理(图形界面)

  1. 在 “用户和组” 工具中切换到 “” 标签页
  2. 创建组:点击 “添加组”,输入组名(如 dev3),点击 “确定”
  3. 修改组:选中组,点击 “修改”,可修改组名或 GID
  4. 管理组成员:选中组,点击 “成员”,在弹出窗口中勾选 / 取消勾选用户,完成成员添加 / 删除。

四、用户 / 组与文件权限的关联

用户和组的核心作用是控制文件 / 目录的访问权限,Kylin 系统通过 “所有者(Owner)- 所属组(Group)- 其他用户(Others)” 三级权限模型实现控制,需结合ls -l命令理解权限关联。

1. 查看文件权限:ls -l

执行ls -l /home/user1/test.txt,输出示例:-rw-r--r-- 1 user1 user1 1024 1月 1 10:00 /home/user1/test.txt

各字段含义(从左到右):

  1. 权限位(10 个字符):-rw-r--r--
    • 第 1 位:文件类型(-表示普通文件,d表示目录,l表示链接)
    • 第 2-4 位:所有者权限(rw-:可读、可写、不可执行)
    • 第 5-7 位:所属组权限(r--:仅可读)
    • 第 8-10 位:其他用户权限(r--:仅可读)
  2. 链接数1(普通文件默认 1,目录默认 2)
  3. 所有者user1(文件的创建者,默认是创建文件的用户)
  4. 所属组user1(文件的所属组,默认是创建者的主组)
  5. 文件大小1024(单位:字节)
  6. 修改时间1月 1 10:00(文件最后修改的时间)
  7. 文件路径/home/user1/test.txt

2. 修改文件的所有者和所属组:chown/chgrp

  • chown 新所有者:新所属组 文件/目录:同时修改文件的所有者和所属组例:chown user2:dev test.txt(将 test.txt 的所有者改为 user2,所属组改为 dev)
  • chown 新所有者 文件/目录:仅修改所有者例:chown user2 test.txt
  • chgrp 新所属组 文件/目录:仅修改所属组(等同于chown :新所属组)例:chgrp dev test.txt

注意:修改所有者 / 所属组需 root 权限,普通用户仅能修改自己创建的文件的所属组(且新组必须是该用户的附加组)。

五、高级配置:用户登录控制与安全策略

1. 限制用户登录(/etc/nologin

若需临时禁止所有普通用户登录(仅 root 可登录),可创建/etc/nologin文件:

  1. 执行命令:touch /etc/nologin
  2. 普通用户登录时会提示/etc/nologin文件的内容(可在文件中添加提示信息,如 “系统维护中,暂停登录”)
  3. 恢复登录:删除/etc/nologin文件:rm /etc/nologin

2. 限制用户登录 Shell(/etc/shells

/etc/shells文件记录了系统允许的登录 Shell,若用户的 Shell 不在此列表中,无法登录系统。

  • 查看允许的 Shell:cat /etc/shells
  • 添加新 Shell:echo "/bin/sh" >> /etc/shells(需确保/bin/sh存在)

3. 密码安全策略(/etc/login.defs

/etc/login.defs是用户密码和账号的全局配置文件,可修改密码有效期、UID/GID 范围等:

  • PASS_MAX_DAYS 90:密码最大有效期 90 天(过期需修改)
  • PASS_MIN_DAYS 0:密码修改后,最小 0 天可再次修改
  • PASS_WARN_AGE 7:密码过期前 7 天开始提示
  • UID_MIN 1000:普通用户最小 UID 为 1000
  • GID_MIN 1000:普通用户最小 GID 为 1000

修改后需重启系统或重新加载配置(systemctl restart systemd-logind)生效。

六、常见问题与排查

  1. 创建用户时提示 “UID 已存在”

    • 排查:cat /etc/passwd | grep 1005(假设 UID=1005 已存在)
    • 解决:选择未被占用的 UID,如useradd -m -u 1006 user2
  2. 删除组时提示 “组是某个用户的主组”

    • 排查:cat /etc/passwd | grep :1001:(假设组的 GID=1001)
    • 解决:先修改该用户的主组,如usermod -g test user1,再删除组。
  3. 普通用户无法访问某目录

    • 排查:ls -ld /opt/dev(查看目录的权限和所属组)
    • 解决:若目录所属组是 dev,将用户加入 dev 组:usermod -aG dev user1,或修改目录权限:chmod 750 /opt/dev(允许所属组读写执行)。

通过以上内容,可全面掌握 Kylin 系统的用户和组管理,无论是命令行的高效操作,还是图形界面的便捷配置,核心都是通过 UID/GID 和权限模型实现系统资源的安全管控。实际使用中,建议优先使用命令行工具(可批量操作、自动化脚本),并遵循 “最小权限原则”(如普通用户不授予 root 权限,系统服务用专用用户)。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!