麒麟操作系统 (kylinos) 从入门到精通 -高级教程 - 第80篇 用户组与文件目录权限管理

163 阅读7分钟

0.基础环境

类别:笔记本
型号:中国长城 NF14C
硬件平台:飞腾处理器D2000(ArmV8 指令集)
系统:银河麒麟操作系统 V10 SP1(2303)

关键词:
信创,麒麟系统,linux,飞腾,arm,aarch,arm64,airplay,miracast,屏幕镜像,dlna,同屏,deskreen,webrtc

0.准备工作

  1. 命令相关的操作,点击开始,输入“终端”或"terminal",打开终端,在终端下执行.
  2. 银河麒麟(Linux)下的文件系统同Windows不一样,所有设备都是文件,也没有C盘,D盘这个说法,一切只有/根目录,然后如果有多的盘,都是使用挂载映射到某一目录即可。

1.系统关键目录与文件
1.1系统关键目录

目录主要内容常见配置/文件作用说明
/根目录-整个 Linux 文件系统的入口
/bin基础命令ls、cp、mv所有用户都能用的基础命令
/sbin管理命令ifconfig、reboot仅管理员常用
/etc系统配置文件passwd、shadow、hosts、fstab存放系统配置
/home用户目录/home/student普通用户的工作区
/root管理员家目录-root 用户的家目录
/usr应用和库/usr/bin、/usr/lib用户程序与共享库
/var动态数据/var/log/、/var/mail日志、缓存、邮件等
/tmp临时文件-程序运行时产生的临时数据
/opt可选软件-第三方软件安装目录
/boot启动相关vmlinuz、grub/内核与引导配置
/dev设备文件sda、tty把硬件抽象为文件
/proc内核虚拟文件系统cpuinfo、meminfo内核和进程信息
/mnt /media挂载目录-外部设备挂载点
/srv服务数据-提供给外部服务的数据

1.2系统关键目录树结构
/ ├── bin → 基本用户命令(二进制可执行程序) ├── boot → 启动相关文件(内核、引导加载器配置) ├── dev → 设备文件(硬件映射,如硬盘、终端、USB) ├── etc → 系统配置文件(全局配置,开机启动项) │ ├── passwd → 用户信息文件 │ ├── hosts → 主机名与 IP 对照表 │ ├── fstab → 文件系统挂载信息 │ └── ssh/ → SSH 服务配置 ├── home → 普通用户的家目录(每个用户一个子目录) │ ├── user1/ → 用户 user1 的个人数据与配置 │ └── user2/ → 用户 user2 的个人数据与配置 ├── lib / lib64 → 系统运行所需的共享库文件 ├── media → 挂载点(如 U 盘、光盘自动挂载位置) ├── mnt → 临时挂载点(管理员手动挂载) ├── opt → 可选的第三方软件安装位置 ├── proc → 内核与进程信息的虚拟文件系统 │ ├── cpuinfo → CPU 信息 │ ├── meminfo → 内存信息 │ └── [pid]/ → 每个进程的目录 ├── root → root 用户的家目录(超级管理员专用) ├── run → 系统运行时的临时文件(通常存放进程 PID) ├── sbin → 系统管理命令(仅 root 可执行) ├── srv → 服务数据目录(如 Web、FTP) ├── sys → 内核与硬件信息接口 ├── tmp → 临时文件目录(开机后可能被清理) ├── usr → 用户软件资源(最重要的目录之一) │ ├── bin → 普通用户常用命令 │ ├── sbin → 管理员常用命令 │ ├── lib → 库文件 │ ├── include → C/C++ 头文件 │ ├── local → 本地用户软件(不会被系统升级覆盖) │ └── share → 跨架构共享数据 └── var → 可变数据文件 ├── log → 系统日志 │ ├── syslog → 系统运行日志 │ └── auth.log → 用户认证日志 ├── spool → 打印队列、邮件队列 └── www → 网站数据存放目录(Apache/Nginx)
1.3系统关键文件
/etc/passwd:用户信息(用户名、UID、家目录、shell) /etc/shadow:加密后的用户密码 /etc/group:用户组信息 /etc/hosts:本地主机名与 IP 对应关系 /etc/fstab:开机挂载磁盘分区配置 /etc/profile:系统环境变量配置 /etc/hostname:主机名设置 /var/log/syslog:系统日志 /var/log/auth.log:认证、安全日志

2.绝对路径与相对路径

2.1绝对路径

  • 定义:从根目录 / 开始写起的路径。

  • 特点:无论当前在什么目录下,路径始终正确。

  • 示例:

    • /home/student01/file1.txt

    • /etc/passwd

2.2相对路径

  • 定义:基于 当前工作目录 的路径表示。

  • 特殊符号:

    • . 表示当前目录

    • .. 表示上一级目录

  • 示例:

    • cd .. → 回到上一级

    • cat ./file1.txt → 访问当前目录下的文件
      2.3用户主目录

  • 定义:~符号代表用户主目录

  • 示例:

    • cd ~ →不管在哪里,进入个人主目录

    • cd ~/docker/test →进入主目录下docker目录下的test目录

3.权限概念

权限是用于管理不同用户,不同组的读、写、执行权限。

3.1权限控制体系标志位

Linux 权限控制体系标志位表格

权限类别符号表示数字表示作用对象详细说明
读权限 (Read)r4文件:读取文件内容 目录:列出目录内容若目录没有读权限,用户无法使用 ls 查看目录下的文件名
写权限 (Write)w2文件:修改文件内容 目录:在目录中创建/删除文件目录的写权限不代表能修改文件内容,还需要目录本身的执行权限
执行权限 (Execute)x1文件:执行脚本/二进制程序 目录:进入目录 (cd)目录没有执行权限,即使有读权限也无法 cd 进入
  • 权限三位数字(rwx → 421 组合)

    • chmod 755 file → rwxr-xr-x`

    • chmod 644 file → rw-r--r--

3.2 用户类别标志

标志位对应用户说明
uowner (文件拥有者)文件创建者,通常默认赋予最高权限
ggroup (所属用户组)与文件所属用户组相同的用户
oothers (其他用户)系统中除拥有者和用户组之外的所有用户
aall (所有用户)相当于同时指定 ugo
  • chmod u+x file → 给文件所有者增加执行权限
  • chmod g-w file → 移除用户组的写权限
  • chmod o=r file → 设置其他用户只有读权限

3.3特殊权限标志位

权限符号表示八进制值应用对象功能
SetUIDs (用户位)4000可执行文件程序执行时,临时以文件拥有者身份运行(如 /usr/bin/passwd 以 root 身份运行)
SetGIDs (组位)2000可执行文件或目录文件:执行时继承文件所属组身份 目录:新建文件自动继承目录的组
Sticky Bitt1000目录目录下的文件只能被文件拥有者或 root 删除(常见于 /tmp)

权限四位数字(含特殊权限)

  • chmod 4755 file → rwsr-xr-x (SetUID)
  • chmod 2755 dir → rwxr-sr-x (SetGID)
  • chmod 1777 /tmp → rwxrwxrwt (Sticky
    3.4 界面GUI的设置方式
    右击任一目录或文件,点开属性文件夹,找到权限选项卡,针对当前用户和当前用户所在组的权限设置

继续点击权限细化设置

这里可以添加对其他用户的详细设置
3.5 命令行的设置方式
ls -l main.py chmod 644 main.py #644对应用户,组内,其他用户的权限标志设置,6为4+2即可读+写 chmod u+x main.py #u代表为用户设置,+x代表增加可执行权限 sudo chown teacher main.py #更改文件所属用户, sudo chgrp group1 main.py #更改文件所属组
4.用户与组的管理
4.1可视化管理
4.1.1 使用系统的用户GUI管理
点击开始菜单,找到用户头像进入用户管理

也可以打开设置,找到用户账户这里处理

在这个界面中点击添加可以增加用户,点用户组(右上角,修改密码的旁边)进入用户组管理

用户组管理

4.1.2 安装GUI管理工具
在命令行窗口中输入下面的命令安装“用户和组管理器”
sudo apt install gnome-system-tools -y

4.1.3 启动GUI管理工具
在命令行窗口中输入下面的命令安装“用户和组管理器”
users-admin #也可以使用提权命令启动,这样在操作过程中不用再输入管理密码 sudo users-admin

此时任务栏也有对应图标,右击可以固定在任务栏

4.2命令行管理

sudo usermod -aG sudo $USER #将当前用户加入sudo超级管理员目录
sudo adduser student01
sudo adduser student02
sudo adduser teacher01
sudo groupadd student
sudo groupadd teacher
sudo usermod -aG student student01 #为student01用户添加student所属组
sudo usermod -aG student student02
sudo usermod -aG teacher teacher01
id student01 #查看用户所属组
id teacher01 #查看用户所属组

adduser 和 useradd 都能创建用户,但两者 有本质区别

adduser

  • 属于 Perl 脚本,是 Debian 系发行版提供的 高层封装工具

  • 实际调用 useradd 和其他命令,帮你做更多初始化工作。

  • 默认会做的事:

    • 自动创建用户的 主目录/home/username

    • 自动复制默认配置文件(/etc/skel/*

    • 自动设置用户 shell(默认 /bin/bash

    • 询问你设置密码,并写入 /etc/shadow

    • 自动创建与用户名同名的 用户组(除非指定别的组)

  • 用法简单:
    sudo adduser alice
    → 会一步一步问你密码、全名等信息,最后创建一个完整的用户环境。

useradd(推荐使用)

  • 属于底层命令(来自 passwd 套件),在 所有 Linux 发行版上都通用。

  • 功能较原始,默认情况下:

    • 不会创建主目录(除非加 -m

    • 不会设置密码(需要额外用 passwd 设置)

    • 不会复制 /etc/skel/ 的配置文件

    • 不会交互式提示,完全靠命令参数

  • 示例:
    sudo useradd -m -s /bin/bash alice sudo passwd alice
    → -m:创建主目录
    → -s:指定登录 shell

批量添加用户(非交互)

for user in student01 student02; do
    sudo useradd -m $user
    echo "$user:123456" | sudo chpasswd
done

5.文件检索

请进入麒麟操作系统 (kylinos) 从入门到精通 - 办公环境- 第三十七篇 资料搜索(windows下everything替代)

写在最后

本篇内容主要是做好用户,组的管理,以方便分配不同用户和组的权限。

更多信创开源资源下载,尽在XPlaza信创开源广场!