博客主页:christine-rr-CSDN博客
专栏主页:软考中级网络工程师笔记
大家好,我是christine-rr !目前《软考中级网络工程师》专栏已经更新三十多篇文章了,每篇笔记都包含详细的知识点,希望能帮助到你!
今天的笔记是UOS Linux文件和目录管理、用户和组管理。
一、文件和目录管理
1. 文件管理
1)Linux系统文件管理方式
- 设备文件化: Linux系统所有设备都对应一个文件,使用索引节点(inode)记录文件信息,每个索引节点有唯一编号
- 文件标识: 索引节点编号一般称为"inode",是文件系统管理的重要标识
2)Linux目录结构特点
- 树形结构: 采用多级目录树形层次结构,最上层是根目录,用"/"表示
- 单根特性: Linux只有一个根目录,所有文件都在根目录下,与Windows不同(Windows每个磁盘都是独立树结构)
- 路径示例: /etc/host/ 表示从根目录开始的完整路径
3)Linux文件挂载概念及操作
- 定义: 将一个文件系统的顶层目录挂到另一个文件系统的子目录上,使其成为整体
- 典型场景: 光盘加载时需要挂载到指定目录才能访问内容
mount /dev/sda1 /mnt #表示将/dev/sda1设备挂载到/mnt目录
4)挂载点要求
- 目录限制: 挂载点必须是目录而不能是文件(必须挂载到文件夹下)
- 非空目录: 挂载点目录可以不为空(允许包含其他文件)
5)分区挂载与目录内容关系
- 内容覆盖: 挂载后原目录内容将不可用,只能访问挂载设备的内容
- 访问机制: 通过挂载点目录只能读取到挂载设备的内容,原目录内容被"屏蔽"
2. 文件类型
1)七种文件类型
- 普通文件(-): 文本、程序等常规文件
- 目录文件(d): 文件夹,可包含子目录和文件
- 链接文件(l): 类似Windows快捷方式
- 块设备文件(b): 以块为单位读写,用于硬盘、光盘等存储设备
- 字符设备文件(c): 按字节流读写,用于键盘、鼠标等终端设备\输入输出设备
- 管道文件(p): 用于进程间通信
- 套接字文件(s): 用于网络编程(socket)
2)文件权限系统
四类权限:
- 读(r): read权限
- 写(w): write权限
- 执行(x): execute权限
- 无访问(-): 无任何权限
三类用户:
- 文件所有者(Owner): 文件所属用户(如"张三")
- 同组用户(Group): 与所有者同组的用户(类比"同姓家族成员")
- 其他用户(Others): 既不是所有者也不在同组的用户
3)例题
- 解析:字符设备文件(c): 按字节流读写,用于键盘、鼠标等终端设备\输入输出设备
- 答案:C
3. 文件权限
1)使用9bit表示访问控制权限
表示:Unix和Linux系统中用9bit表示访问控制权限。
例子:某个文件的访问控制权限:
-rwxr-xr-- 1 test test 4月9日17:30 sample.txt
- 第一位-
- -普通文件
- d目录文件
- l链接文件
- b设备文件
- p管道文件
- 后九位rwx r-x r--
- rwx:用户权限,有读、写、执行权限
- r-x:用户组权限,有读和执行权限,无写的权限
- r--:其他用户权限,只有读的权限
2)使用数字表示
表示:使用数字表示文件权限
例如:刚刚的-rwx r-x r--可以表示为7 5 4
权限对应表示数字:
- 读(r)权限:4
- 写(w)权限:2
- 执行权限(x):1
3)例题#网工2011年那11月第32题
- 解析:文件所有者有读写执行的权限,其他用户只有读的权限
- 答案:B
4)例题#网工2021年第11月第33题
- 解析:所有权限都赋予是777
- 读(4)+写(2)+执行(1)
- 答案:A
4.13个Linux基础命令
1)cat
作用:查看文件的内容,直接滚动显示全部文件内容,也可以用于同时查看多个文件的内容,还可以用来合并文件
特点:
- 一次性显示整个文件,内容会跨苏滚动到末尾
- 可以合并多个文件,如cat file1 file2 >
使用场景:
- 快速查看小文件
- 合并文件
使用方法:cat [选项] fileName [filenname2]...[fileNameN]
2)more
作用:将文件内容分屏显示
特点:
- 适合大文件
- 只能向前翻页,不能向后
- 使用空格或回车翻页
场景:逐页查看大文件,避免内容快速滚动
3)less
作用:分屏显示,支持前后翻页(比more更灵活)
特点:按“B”键向前翻页,按“P”键或空格键向后翻页
- 支持方向键逐行滚动
- 可搜索关键字
- 退出按“Q”键
使用场景:需要反复查看或搜索内容的大文件
4) cp
作用:文件复制
cp [-选项]sourcefileName I directory destfileName I directory
选项:
- -a: 整个目录复制。它保留链接、文件属性,并递归地复制子目录
- -f: 删除已经存在的目标文件且不提示,强制覆盖,不提示
- -i: 和-f相反,覆盖文件之前提示用户确认
- -1: 不做复制,只是链接文件(类似快捷方式)
5)mv
作用:文件移动命令
选项:
- -i: 交互方式操作 (询问是否覆盖)
- -f: 禁止交互操作(强制覆盖)
6)rm
作用:文件删除命令
rm[-选项] fileName |directory ...
选项
- -f: 忽略不存在的文件,从不给出提示(强制删除,不给出提示)
- -r: 指示rm将参数中列出的全部目录和子目录均递归地删除(删除所有)
强制、递归删除根目录下所有(/*)的内容:rm -rf /*
7)mkdir
作用:创建目录文件
8)rmdir
作用:删除目录文件
9)cd
作用:切换当前目录
10)pwd
作用:显示当前目录
11)ls
作用:显示当前目录下的文件和文件夹
Is[-选项]fileName| directory
重要选项参数说明如下:
- -a:显示指定目录下所有子目录与文件,包括隐藏文件
- -c:按文件的修改时间排序
- -d:如果参数是目录,只显示其名称而不显示其下的各文件
- -i:在输出的第一列显示文件的i节点号
- -l:以长格式来显示文件的详细信息,这是Is命令最常用的参数
[root@uos home]#ls -1
-rw-r -- r -- 1 root root 2 10月 26 22:21 myfile.txt
[root@uos home]#chmod g+w myfile.txt //为同组用户增加对文件myfile.txt的写权限
[root@uos home]#ls -1 //修改权限后
-rw-rw-r -- 1 root root 2 10月 26 22:21 myfile.txt
12)chmod
作用:文件访问权限命令
Linux 权限分为三类操作和三类用户:
- 操作类型:
r
(Read):读取文件内容或列出目录内容。w
(Write):修改文件内容或在目录中创建/删除文件。x
(eXecute):执行文件(如脚本)或进入目录。
- 用户类别:
u
(User):文件所有者。g
(Group):文件所属组。o
(Others):其他用户。a
(All):所有用户(默认值,等同于u+g+o
)。
chmod
支持两种权限表示方式:
- 符号模式:使用符号(如
u
、g
、o、
a)和操作符(如
+、
-、
=`)来修改权限。例如:
chmod u+r file.txt #为文件所有者添加读取权限。
chmod g-w file.txt #移除文件所属组的写入权限。
chmod o=x file.txt #将其他用户的权限设置为仅可执行。
- 数字模式:使用三位八进制数表示权限。每位数字分别对应所有者、组和其他用户的权限。例如:
chmod 755 file.txt #设置文件所有者为可读、可写、可执行(7),组和其他用户为可读、可执行(5)。
chmod 644 file.txt #设置文件所有者为可读、可写(6),组和其他用户为仅可读(4)。
13)ln
作用:文件链接命令,在文件之间创建链接
5.例题
1)例题
解析:mv移动文件(剪切)不增加文件个数,cp复制会增加文件
答案:B
2)例题
解析:所有用户加执行权限+x
注意:
- u+x为用户增加执行权限
- g+x为用户所在组增加执行权限
答案:B
3)例题
解析:外部设备的目录是/dev
注意:
- /etc:存放配置文件
- /lib:存放共享文件和内核模块
- /bin:存放可执行文件
答案:C
6.知识点小结
类别 | 子类别 | 描述 |
---|---|---|
文件和目录管理 | Linux系统文件管理方式 | 1) 设备文件化: 所有设备对应一个文件,使用inode记录文件信息 2) 文件标识: inode是文件系统管理的重要标识 |
Linux目录结构特点 | 1) 树形结构: 采用多级目录树形层次结构,根目录用"/"表示 2) 单根特性: 只有一个根目录,所有文件都在根目录下 |
|
Linux文件挂载概念及操作 | 1) 定义: 将一个文件系统的顶层目录挂到另一个文件系统的子目录上 2) 典型场景: 光盘加载时需要挂载到指定目录 3) 操作命令: mount /dev/sda1 /mnt |
|
挂载点要求 | 1) 目录限制: 挂载点必须是目录 2) 非空目录: 挂载点目录可以不为空 |
|
分区挂载与目录内容关系 | 1) 内容覆盖: 挂载后原目录内容将不可用 2) 访问机制: 通过挂载点目录只能读取到挂载设备的内容 |
|
文件类型 | 七种文件类型 | 1) 普通文件(-) 2) 目录文件(d) 3) 链接文件(l) 4) 块设备文件(b) 5) 字符设备文件(c) 6) 管道文件(p) 7) 套接字文件(s) |
文件权限 | 文件权限系统 | 1) 四类权限: 读(r), 写(w), 执行(x), 无访问(-) 2) 三类用户: 文件所有者, 同组用户, 其他用户 |
使用9bit表示访问控制权限 | 例如: -rwxr-xr-- 表示用户权限为rwx,用户组权限为r-x,其他用户权限为r-- | |
使用数字表示文件权限 | 例如: -rwxr-xr-- 可以表示为7 5 4,其中读(r)=4,写(w)=2,执行(x)=1 | |
13个Linux基础命令 | cat | 作用:查看文件内容,合并文件 特点:一次性显示整个文件 使用场景:快速查看小文件,合并文件 |
more | 作用:分屏显示文件内容 特点:适合大文件,只能向前翻页 使用场景:逐页查看大文件 |
|
less | 作用:分屏显示,支持前后翻页 特点:支持前后翻页,可搜索关键字 使用场景:需要反复查看或搜索内容的大文件 |
|
cp | 作用:文件复制 选项:-a, -f, -i, -l |
|
mv | 作用:文件移动 选项:-i, -f |
|
rm | 作用:文件删除 选项:-f, -r 危险命令:rm -rf /* |
|
mkdir | 作用:创建目录文件 | |
rmdir | 作用:删除目录文件 | |
cd | 作用:切换当前目录 | |
pwd | 作用:显示当前目录 | |
ls | 作用:显示当前目录下的文件和文件夹 选项:-a, -c, -d, -i, -l |
|
chmod | 作用:文件访问权限命令 | |
ln | 作用:文件链接命令,在文件之间创建链接 |
二、Linux用户和组管理
1. 超级用户
- 超级用户: Linux系统中最重要的用户是超级用户,即root用户,UID=0。它类似于Windows系统中的administrator。
- 判断依据: Linux系统中,判断是否为超级用户的依据是UID,只要UID为0,无论用户名是什么,都是超级用户。
2. 用户管理配置文件
- /etc/passwd文件:
- 内容: 每个用户在该文件中都有一行对应记录
- 权限:所有用户都可读。
- 格式: 用户名:加密的口令:用户ID:组ID:用户的全名或描述:登录目录:登录shell。
- 注意: 现在加密的口令通常不在此文件中,而是存放在/etc/shadow文件中。
- /etc/shadow文件:
- 内容: 包含了系统中的所有用户及其口令等相关信息。
- 权限: 只有超级用户root能读。
- 字段: 分为9个域,包括用户登录名、用户加密后的口令等。
- 用户登录名
- 用户加密后的口令(若为空,表示该用户不需口令即可登录;若为*号,表示该账号被禁止):
- 从1970年1月1日至口令最近一次被修改的天数;
- 口令在多少天内不能被用户修改;
- 口令在多少天后必须被修改;
- 口令过期多少天后用户账号被禁止;
- 口令在到期多少天内给用户发出警告;
- 口令自1970年1月1日起被禁止的天数;
- 保留。
3. 用户管理命令
- useradd命令: 用于添加用户。
- -d选项: 指定用于取代默认/home/username的用户主目录。
- -g选项: 指定用户所属用户组的组名或组ID。
- -s选项: 指定用户登录shell,默认为/bin/bash。
- -u选项: 指定用户的UID,它必须是唯一的,且大于499。
- passwd命令: 用于操作用户密码。
- -l选项: 锁定口令,即禁用账号。
- -u选项: 口令解锁。
- -d选项: 使账号无口令。
- -f选项: 强迫用户下次登录时修改口令。
4. 组管理命令
- userdel命令: 用于删除用户。
- -r选项: 把用户的主目录一起删除。
userdel -r test
效果:
删除/etc/passwd文件中此用户的记录
删除/etc/passwd文件中该用户的信息
删除用户的主目录
删除用户所创建的或属于此用户的文件
- groupadd命令: 用于添加用户组。
- groupdel命令: 用于删除用户组。
- 示例: groupdel group1,运行后删除组group1。
5. 应用案例
1)例题:存放用户账号加密口令的文件
- 审题: 题目问的是Linux系统中存放用户账号加密口令的文件。
- 答案: B./etc/shadow
- 解析: 在Linux系统中,加密口令存放在/etc/shadow文件中,这个文件只有超级用户才能读取,以保证安全性。
2)例题:删除用户组命令
- 审题: 题目问的是在Linux系统中,要删除用户组group1应使用的命令。
- 答案: C.[root@localhost] groupdel group1
- 解析: 在Linux系统中,要删除用户组应使用groupdel命令,后跟用户组名。因此,要删除用户组group1,应使用命令groupdel group1。
6.知识小结
知识点 |
核心内容 |
考试重点/易混淆点 |
难度系数 |
Linux超级用户(root) |
UID=0标识超级用户,与用户名无关; Windows对应administrator |
UID=0是核心判定标准(用户名可伪装) |
⭐⭐ |
Linux安全加固技巧 |
修改root的UID为非零值迷惑攻击者 |
虚假root用户的防御原理 |
⭐⭐⭐ |
用户配置文件 |
/etc/passwd(公开可读,密码字段现为*); /etc/shadow(仅root可读,存储加密口令) |
shadow文件权限与历史迁移原因 |
⭐⭐⭐⭐ |
用户管理命令 |
useradd(-d主目录/-g组/-u UID); passwd(-l锁定/-u解锁/-d清空); userdel -r(递归删除用户痕迹) |
-r参数风险(彻底删除数据) |
⭐⭐⭐ |
组管理命令 |
groupadd/groupdel(删除组需无用户依赖) |
组删除前提条件 |
⭐⭐ |
真题解析 |
加密口令存储文件→/etc/shadow; 删除组命令→groupdel |
历史版本差异(passwd→shadow) |
⭐⭐ |