LINUX复习资料(二)

文章目录

  • LINUX复习资料(二)
  • 一、用户、组与账户管理(要点与解析)
    • [1. Linux 是什么样的操作系统](#1. Linux 是什么样的操作系统)
    • [2. 用户类型](#2. 用户类型)
    • [3. UID、GID 与默认编号](#3. UID、GID 与默认编号)
    • [4. 账户信息存放位置(重要!)](#4. 账户信息存放位置(重要!))
    • [5. 关于 `/etc/passwd` 和 `/etc/shadow` 的权限](#5. 关于 /etc/passwd/etc/shadow 的权限)
    • [6. 常用用户与组管理命令(语法与解析)](#6. 常用用户与组管理命令(语法与解析))
    • [7. 组文件格式与解析](#7. 组文件格式与解析)
    • [8. 安全管理的常见做法(解析与建议)](#8. 安全管理的常见做法(解析与建议))
  • 二、文件系统基础(要点与解析)
    • [1. 文件系统的作用](#1. 文件系统的作用)
    • [2. Linux 上常见的文件系统](#2. Linux 上常见的文件系统)
    • [3. ext 文件系统的核心组成(解析)](#3. ext 文件系统的核心组成(解析))
    • [4. Linux 的目录结构](#4. Linux 的目录结构)
  • 三、文件与目录权限(要点、计算与实操)
    • [1. 权限模型回顾](#1. 权限模型回顾)
    • [2. umask 的含义与计算(重点)](#2. umask 的含义与计算(重点))
    • [3. 查看隐藏文件与当前/上级目录](#3. 查看隐藏文件与当前/上级目录)
    • [4. 添加执行权限而不破坏其它位](#4. 添加执行权限而不破坏其它位)
    • [5. 判断符号链接(symlink)](#5. 判断符号链接(symlink))
    • [6. 权限求解常用技巧(示例)](#6. 权限求解常用技巧(示例))
  • 四、常用命令速查(带示例与解析)
  • 五、常见易错点与复习小结(背诵要点)
  • 六、快速练习建议(非题目,仅复习方法)

LINUX复习资料(二)

下面我把你给出的 项目3 (用户与组管理、安全)和 项目4 (文件系统与权限)内容整理成一份用于复习的资料。不直接列出原题和答案,而是把概念讲清、给出关键命令示例、常见计算和实操要点,同时标注常见易错点和安全建议,方便温故知新。

一、用户、组与账户管理(要点与解析)

1. Linux 是什么样的操作系统

  • 要点 :Linux 是多用户、多任务的操作系统。
  • 含义:多个用户可以同时登录并共享系统资源,内核会进行切换和资源分配。

2. 用户类型

  • 超级用户(root) :系统管理员权限,UID 为 0
  • 普通用户 :普通账号,UID 为非 0 的数值(现代发行版一般从 1000 起分配,某些系统或早期发行版可能从 500 起)。
  • 提示 :不要把 root 密码告诉别人;需要管理权限时推荐使用 sudo

3. UID、GID 与默认编号

  • UID(用户ID) :root 是 0;普通用户的 UID 若不指定,系统按配置(例如 /etc/login.defs 中的 UID_MIN)从某个起始值(常见为 1000)依次分配。
  • GID(组ID) :同样有 GID_MIN 起始值,通常也从 1000 开始。
  • 主组(primary group)与附属组(supplementary groups) :创建用户时通常会同时创建一个与用户名同名的主组,该组通常是用户的私有组。用户也可以同时属于多个附属组。

4. 账户信息存放位置(重要!)

  • /etc/passwd:存放用户账户的基本信息(用户名、UID、GID、主目录、登录 shell 等)。该文件是全系统可读的(所有用户可读),因此密码字段一般不再放这里。
  • /etc/shadow:存放加密后的口令、口令过期信息等,通常只可被 root 读取。
  • /etc/group:存放组的基本信息(组名、GID、组成员列表)。
  • /etc/gshadow:存放组的安全信息(组口令、组管理员等),通常仅 root 可读。

5. 关于 /etc/passwd/etc/shadow 的权限

  • /etc/passwd 通常为 -rw-r--r--(所有用户可读),但其中不包含明文口令。
  • /etc/shadow 应只有 root 可读,如 -r--------(或类似更严格的权限)。
  • 安全要点 :口令不要放在 /etc/passwd,要使用 shadow 机制。

6. 常用用户与组管理命令(语法与解析)

  • 创建用户(示例,明确每个选项):

    复制代码
    useradd -u 1200 -g 1100 -d /home/user01 user01

    解释:-u 指定 UID,-g 指定主组 GID(或组名),-d 指定主目录,最后给出用户名。

    (注意:等号或冒号写法在很多 shell/实现中不是标准,推荐空格分隔的通用写法)

  • 删除用户并同时删除主目录:

    复制代码
    userdel -r user01

    说明:-r 删除用户的主目录和邮件队列等。(在 Debian 系统上也有 deluser --remove-home 等工具,但 userdel -r 是通用基础命令)

  • 查看用户信息:

    • id username:显示 UID、GID、所属组列表。
    • getent passwd username:通过 Name Service(可处理 LDAP 等)获取该用户的 passwd 条目。
    • finger username:如果系统安装了 finger,能显示登录信息(不是所有系统都安装)。
    • grep '^username:' /etc/passwd:直接在本地 passwd 文件查找(仅适用于本地账户)。
  • 修改用户:usermod(改 shell、改主目录、改附属组等)。

7. 组文件格式与解析

  • /etc/group 每行格式一般为:group_name:password:GID:member1,member2,...
  • 例如行 students::600:alice,bob,carol 表示 students 组的 GID 是 600,成员是 alicebobcarol(共 3 个)。
  • 提示:如果成员字段为空,组中只有拥有该 GID 的主组用户或没有列出附属成员。

8. 安全管理的常见做法(解析与建议)

  • 不要把 root 密码公开给其他用户;使用 sudo 或细粒度权限控制代替多人共享 root。
  • 避免使用不安全的远程登录服务(例如明文的 telnet),应使用 SSH(sshd)。
  • 员工离职后应及时禁用或删除其账户。
  • 定期审计账户数量、活动登录记录、内存与磁盘使用等。
  • 为关键文件设置适当权限(/etc/shadow/etc/gshadow 等只允许 root 读取)。

二、文件系统基础(要点与解析)

1. 文件系统的作用

  • 文件系统(File System) 是磁盘上一段被格式化的区域,操作系统利用文件系统 保存(store)和管理(manage) 文件。
  • 实际上,文件系统负责组织磁盘上的数据、管理元数据(如权限、所有者、时间戳)并提供文件与目录接口。

2. Linux 上常见的文件系统

  • 早期 Linux 的专用文件系统是 ext(最初) ,之后发展为 ext2、ext3、ext4。现代系统常用 ext4、xfs、btrfs 等。
  • 提示:不同文件系统在性能、快照、日志(journal)等特性上有所不同;选择与用途(数据库、大文件、SSD 优化等)有关。

3. ext 文件系统的核心组成(解析)

核心组成通常包括:

  • 超级块(superblock):记录文件系统总体信息(大小、块大小、空闲块数等)。
  • 索引节点表(inode table):每个文件一个 inode,存放文件元数据(权限、所有者、时间戳、指向数据块的位置等)。
  • 数据块(data blocks) :实际存放文件内容的磁盘块。
    (你给出的术语可能为"级块/索引节点表/数据块",这里把"级块"对照现代术语解释为超级块/管理结构)

4. Linux 的目录结构

  • 分层(树状)结构 ,最顶层是根目录 /
  • 所有挂载点、目录都从 / 开始,用户主目录一般位于 /home/username(root 的主目录通常是 /root)。

三、文件与目录权限(要点、计算与实操)

1. 权限模型回顾

  • 每个文件/目录有三类主体:user(所有者)group(所属组)others(其它用户)
  • 每类主体有三种权限:r(读)w(写)x(执行/遍历)
  • 权限既可用字母表示(rwxr-xr--),也可用八进制数 0--7 表示(例如 755)。

2. umask 的含义与计算(重点)

  • umask 决定新建文件/目录默认权限的"掩码"。

  • 新建普通文件 的基础默认权限是 666(注:普通文件默认不应带 x),新建目录 的基础默认权限是 777

  • 实际权限 = 基础权限 - umask(按位去除)。

  • 示例 :若 umask = 022

    • 新文件默认权限:666 - 022 = 644(即 rw-r--r--
    • 新目录默认权限:777 - 022 = 755(即 rwxr-xr-x
  • 特殊示例:umask 777 会把所有权限屏蔽掉,所以之后创建的文件/目录权限变为 000(不可读写执行),这通常不实用,仅用于测试或特殊场景。

  • 设置 umask:可以在 shell 中用 umask 022 或把 umask 写入用户的 shell 配置文件(如 ~/.bashrc)。

3. 查看隐藏文件与当前/上级目录

  • . 开头的文件名是隐藏文件 (比如 .bashrc)。
  • . 表示当前目录,.. 表示上一层目录(可以用 ./../ 的形式)。
  • 查看隐藏文件:ls -a(或 ls -la 查看详细信息)。

4. 添加执行权限而不破坏其它位

  • 若不知道原来权限,想让所有人都得到执行权限(在现有权限基础上添加 x),使用:

    复制代码
    chmod a+x filename

    这会把执行位添加到 user/group/others(不会移除已有权限)。

5. 判断符号链接(symlink)

  • ls -l 的第一个字符表示类型:

    • - 普通文件,d 目录,l 符号链接(symlink)。
  • 例如:lrwxrwxrwx 1 user group 10 Sep 12 cheng -> /some/target 表明 cheng 是一个符号链接。

  • 判断题常见陷阱 :看到 l 开头的那行即是符号链接,而不是以大小或 inode 数量来判断。

6. 权限求解常用技巧(示例)

  • :已知 umask 为 022,新文件权限是多少?

    • 计算:666 - 022 = 644rw-r--r--
  • :文件权限 644rw-r--r--)且文件属于用户 user1,如果 user2user1 同组(且该组不是 file 的所属组),user2 无法写入。若 user2 想修改该文件,必须满足写权限:对他来说需要文件的 group 或 others 拥有写权限,或被授予更高权限(例如成为文件所属组成员或使用 sudo)。


四、常用命令速查(带示例与解析)

  • useradd -u UID -g GID -d /home/dir username
    说明:创建用户并指定 UID、主组 GID、主目录等。
  • userdel -r username
    说明:删除用户并移除其主目录(-r)。
  • usermod -G group1,group2 username
    说明:修改用户的附属组(覆盖或追加,视选项而定)。
  • id username:显示 uid=... gid=... groups=...
  • getent passwd username:更可靠地查询账户信息(支持 NSS)。
  • ls -al:查看文件详情(权限、类型、链接、大小、时间)。
  • chmod a+x filename:给所有主体加上执行权限(不改变其它位)。
  • umask:查看或设置当前会话的 umask,例如 umask 022
  • grep '^name:' /etc/passwd:在本地文件中查找用户(仅本地账户)。

五、常见易错点与复习小结(背诵要点)

  1. root 的 UID 永远是 0
  2. 不要把口令放在 /etc/passwd ,使用 /etc/shadow 来保存加密密码;/etc/shadow 应只对 root 可读。
  3. useradd 的参数写法 :在多数系统上用空格分隔(-u 1200 -g 1100 -d /home/user01 user01)更通用。
  4. 符号链接ls -l 第一字符为 l
  5. umask 计算 :文件基准 666,目录基准 777,实际权限 = 基准 - umask。常见 umask 022 → 文件 644,目录 755
  6. 安全原则:不共享 root 密码、使用 SSH 替代 telnet、离职用户及时禁用账户、定期审计。

六、快速练习建议(非题目,仅复习方法)

  • 在虚拟机里实践:创建若干用户(不同 UID、GID),切换用户并用 idgetentfinger 检查。
  • 实验 umask:设置不同 umask(比如 002、022、027、077),新建文件和目录,观察权限变化并记录计算过程。
  • 检查 /etc/passwd/etc/shadow/etc/group/etc/gshadow 的权限,理解为何要这样设定。
  • ls -l 找出目录中所有符号链接并用 readlink 查看其目标。

相关推荐
郝学胜-神的一滴4 小时前
Linux下的阻塞与非阻塞模式详解
linux·服务器·开发语言·c++·程序人生·软件工程
tcwgq5 小时前
Centos Stream 8 搭建Cas Server
linux·elasticsearch·centos
学习的周周啊5 小时前
一人AI自动化开发体系(Cursor 驱动):从需求到上线的全流程闭环与实战清单
运维·人工智能·自动化·ai编程·全栈·devops·cursor
qq_312920115 小时前
从零搭建企业级DevOps流水线
运维·devops
鸽芷咕6 小时前
Rokid 手势识别技术深度解析:解锁 AR 无接触交互的核心秘密
linux
川石课堂软件测试6 小时前
全链路Controller压测负载均衡
android·运维·开发语言·python·mysql·adb·负载均衡
一枚正在学习的小白6 小时前
PG数据文件位置迁移
linux·运维·服务器·数据库
Tfly__6 小时前
Ubuntu 20.04 安装Aerial Gym Simulator - 基于 Gym 的无人机强化学习仿真器
linux·人工智能·ubuntu·github·无人机·强化学习·运动规划