LINUX复习资料(二)
文章目录
- LINUX复习资料(二)
- 一、用户、组与账户管理(要点与解析)
- 1. Linux 是什么样的操作系统
- 2. 用户类型
- 3. UID、GID 与默认编号
- 4. 账户信息存放位置(重要!)
- 5. 关于 `/etc/passwd` 和 `/etc/shadow` 的权限
- 6. 常用用户与组管理命令(语法与解析)
- 7. 组文件格式与解析
- 8. 安全管理的常见做法(解析与建议)
- 二、文件系统基础(要点与解析)
- 1. 文件系统的作用
- 2. Linux 上常见的文件系统
- 3. ext 文件系统的核心组成(解析)
- 4. Linux 的目录结构
- 三、文件与目录权限(要点、计算与实操)
- 1. 权限模型回顾
- 2. umask 的含义与计算(重点)
- 3. 查看隐藏文件与当前/上级目录
- 4. 添加执行权限而不破坏其它位
- 5. 判断符号链接(symlink)
- 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,成员是alice
、bob
、carol
(共 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 = 644
(rw-r--r--
)
- 计算:
-
例:文件权限
644
(rw-r--r--
)且文件属于用户user1
,如果user2
与user1
同组(且该组不是 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
:在本地文件中查找用户(仅本地账户)。
五、常见易错点与复习小结(背诵要点)
- root 的 UID 永远是 0。
- 不要把口令放在
/etc/passwd
,使用/etc/shadow
来保存加密密码;/etc/shadow
应只对 root 可读。 - useradd 的参数写法:在多数系统上用空格分隔(
-u 1200 -g 1100 -d /home/user01 user01
)更通用。 - 符号链接 在
ls -l
第一字符为l
。 - umask 计算:文件基准
666
,目录基准777
,实际权限 = 基准 - umask。常见umask 022
→ 文件644
,目录755
。 - 安全原则:不共享 root 密码、使用 SSH 替代 telnet、离职用户及时禁用账户、定期审计。
六、快速练习建议(非题目,仅复习方法)
- 在虚拟机里实践:创建若干用户(不同 UID、GID),切换用户并用
id
、getent
、finger
检查。 - 实验
umask
:设置不同 umask(比如 002、022、027、077),新建文件和目录,观察权限变化并记录计算过程。 - 检查
/etc/passwd
、/etc/shadow
、/etc/group
、/etc/gshadow
的权限,理解为何要这样设定。 - 用
ls -l
找出目录中所有符号链接并用readlink
查看其目标。