一、Linux文件系统权限
(一)一般权限
1.文件详细信息
可使用命令 ll 或 ls -l 查看:

2.文件权限构成
(1)权限针对三类对象定义
user:所有者,缩写u
group :所属组,缩写g
other :其他人,缩写o
(2)访问者三种权限
|------|---|---|----|---|---|---|----|---|----|---|----|
| 权限项 | 读 | 写 | 执行 | | 读 | 写 | 执行 | | 读 | 写 | 执行 |
| 字符表示 | r | w | x | | r | w | x | | r | w | x |
| 数字表示 | 4 | 2 | 1 | | 4 | 2 | 1 | | 4 | 2 | 1 |
| 权限分配 | 所 | 有 | 者 | | 所 | 属 | 组 | | 其他 | | 账户 |
(3)组成模式分析
|------|-------|------|
| 字符表示 | 二进制表示 | 数字表示 |
| --- | 000 | 0 |
| --x | 001 | 1 |
| -w- | 010 | 2 |
| -wx | 011 | 3 |
| r-- | 100 | 4 |
| r-x | 101 | 5 |
| rw- | 110 | 6 |
| rwx | 111 | 7 |

(4)文件与目录权限含义
|----|---------------|--------------------------------------------|
| 权限 | 对文件的影响 | 对目录的影响 |
| r | 可以读取文件的内容 | 可以列出目录的内容,即目录下的文件的文件名 |
| w | 可以更改文件的内容 | 可以创建或者删除目录中的任一文件(只有w权限无法创建删除文件,需要和x权限一起使用) |
| x | 可以作为可执行文件,如脚本 | 可以切换到目录,如 cd 命令 |
文件可能出现的权限:---、r--、r-x、rw-、rwx
目录可能出现的权限:---、r-x、rwx
注意:root账户不受文件权限的读写限制,执行权限受限制。
(5)示例
下列文件的字符权限为:
764 : rwxrw-r--
642: rw-r---w-
153: --xr-x-wx
731: rwx-wx--x
下列文件的数字权限为:
r-xrw-r-- : 564
rw--w--wx : 623
rw-r--r-- : 644
3.chmod 命令
(1)作用
修改文件或目录的权限。
(2)格式
chmod [选项] [ugoa][+-=][rwx] 文件或目录
chmod [选项] nnn 文件或目录
(3)参数
-R:递归修改指定目录下所有文件、子目录的权限
ugoa:表示权限设置所针对的用户类别,可以是其中字母中的一个或组合,u(user)表示文件或目录的属主(所有者);g(group)表示属组内的用户;o(others)表示其他用户;a(all)表示所有用户(即u+g+o)
+或-或=:表示设置权限的操作动作,+代表添加;-代表取消;=表示只赋予给定的权限,并取消原有的权限。
rwx:用字符形式表示的所设置的权限,可以是其中一个字母或组合
nnn:用数字表示的权限
(4)示例
字符表示:

数字表示:

递归设置权限:

4.chown 命令
(1)作用
修改文件或目录的所有者和属组。
(2)格式
chown -参数 所有者:所属组 文件名或目录名
(3)示例

(二)特殊权限
1.概述
在Linux系统中,用户对文件或目录的访问权限除了 r、w、x 三种一般权限外,还有SET UID(SUID)、SET GID(SGID)、Sticky Bit(粘滞位)三种特殊权限,用于对文件或目录进行更加灵活方便的访问控制。
SUID 权限的含义:是为了让一般用户在执行某些程序的时候, 在程序的运行期间, 暂时获得该程序文件所属者的权限。
2.SUID 权限
(1)使用场景
在 Linux 系统中,普通用户 student 能通过 passwd 命令修改密码,是因为 passwd 程序被设置了 SUID 特殊权限。虽然密码最终要写入权限为 --------- 的 /etc/shadow 文件(只有 root 可写),但 passwd 命令的权限是 -rwsr-xr-x ,其中的s 表示 SUID。这个权限的作用是:当 student 执行 passwd 时,会临时获得该程序所有者(root)的权限,因此可以强制写入文件 /etc/shadow ,从而成功修改密码。这就是 SUID 让普通用户暂时拥有 root 权限的典型应用。

(2)注意
SUID 仅对二进制文件有效;
在执行过程中,调用者会暂时获得该文件的所有者权限;
该权限只在程序执行的过程中有效。
3.SGID 权限
(1)使用场景
文件: 如果 SGID 设置在二进制文件上, 则不论用户是谁,在执行该程序的时候,程序的所属组将会变成该程序文件的所属组。
目录:如 果 SGID 是设置在 A 目录上, 则在 A 目录内所建立的文件或目录的所属组, 将会是此 A 目录的所属组
(2)注意
一般 SGID 多用在特定的多人团队的项目开发上,在系统中用的很少。
4.Sticky Bit 权限
Sticky Bit (SBit) 当前只针对目录有效, 对文件没有效果。
其对目录的作用:
在 具 有 SBit 的目录下, 用户若在该目录下具有 w 及 x 权限 , 则当用户在该目录下建立文件或目录时, 只有文件拥有者与 root 才有权力删除。
例如:当 student 用户属于 A 目录的组成员或属于 other ,且拥有 wx 权限时, 可以对该目录内任何人建立的目录或文件进行" 删除/重命名/移动" 等操作。 如果将 A 目录加上了 Sticky Bit 权限, 则 student 用户只能针对自己建立的文件或目录进行" 删除/重命名/移动" 等操作。
5.设置特殊权限
为文件或目录添加三种特殊权限同样可以通过 chmod 命令来实施,使用 "u±s"、"g±s"、"o±t" 的字符权限模式分别用于添加和移除 SUID、GUID、sticky 权限。
若使用数字形式的权限模式,可采用"nnnn"格式的四位八进制数字表示,其中:后面三位是一般权限的数字表示,前面第一位则是特殊权限的标志数字:
0------表示不设置特殊权限
1------表示只设置 sticky
2------表示只设置 GUID 权限
3------表示只设置 SGID 和 sticky 权限
4------表示只设置 SUID 权限
5------表示只设置 SUID 和 sticky 权限
6------表示只设置 SUID 和 SGID
7------表示同时设置 SUID、GUID、sticky3 种权限
(三)ACL 权限
1.作用
给指定的用户指定目录分配指定的权限。
2.管理命令
(1)查看 ACL 权限
格式:getfacl 文件名
示例:

(2)设定 ACL 权限
格式:setfacl -参数 文件名
参数:
-m:设定 ACL 权限
给用户设定 ACL 权限:setfacl -m u:用户名:权限 指定文件名
给用户组设定 ACL 权限:setfacl -m g:组名:权限 指定文件名
-x:删除指定的 ACL 权限
-b:删除所有的 ACL 权限
-d:设定默认 ACL 权限。只对目录生效,指目录中新建立的文件拥有此默认权限
-k:删除默认 ACL 权限
-R:递归设定 ACL 权限。指设定的 ACL 权限会对目录下的所有子文件生效
(3)示例
root 用户在根目录下创建目录 /project 及所属工作组 QQgroup ,所属组里面创建两个用户zhangsan 和 lisi ,此文件权限是 770 ,再创建一个旁听用户 pt ,给他设定 /project 目录的 ACL 为 r-x:

为了验证 pt 用户对于 /project 目录没有写权限,我们用 su 命令切换到 pt 用户,然后进入 /project 目录,在此目录下创建文件,看是否能成功:

3.删除权限
删除指定用户的 ACL 权限:setfacl -x u:用户名 文件名
删除指定用户组的 ACL 权限:setfacl -x g:组名 文件名
删除文件的所有 ACL 权限:setfacl -b 文件名
(四)权限掩码
1.新建文件权限与 umask 关系
在Linux系统中,当用户创建一个新的文件或目录时,系统都会为新建的文件或目录分配默认的权限,该默认权限与umask值有关
新建文件的默认权限=0666-umask值 (减去)
新建目录的默认权限=0777-umask值
2.查看默认 umask 值

3.临时修改默认 umask

想要永久的修改 umask 值,可以在 .bashrc 或 .bash_profile 文件中修改,sorce 使其生效即可
二、Linux的联网管理
(一)RHEL9版本特点
在 RHEL7 版本中,同时支持 network.service和NetworkManager.service(简称NM)。
在 RHEL8 上默认只能通过 NM 进行网络配置,包括动态 ip 和静态 ip,若不开启 NM,否则无法使用网络
RHEL8 依然支持 network.service,只是默认没安装,可以通过 yum install network-scripts 来安装传统的 network.service,不过 redhat 说了,在下一个 rhel 的大版本里将彻底废除,因此不建议用 network.service。
在 RHEL9 上,使用 NM 进行网络配置,ifcfg (也称为 文件)将不再是网络配置文件的主存储。虽然 ifcfg 样式仍然可用,但它不再是 NetworkManager 存储新网络配置文件的默认位置。从 RHEL 9.0 开始,RHEL 以 key-file 格式在 /etc/NetworkManager/system-connections/ 中存储新的网络配置。配置以旧格式存储在 /etc/sysconfig/network-scripts/ 中的连接仍然可以正常工作。对现有配置集的修改会继续更新旧的文件。
(二)NM特点
NetworkManager 是2004年 Red Hat 启动的项目,旨在能够让 Linux 用户更轻松地处理现代网络需求,能自动发现网卡并配置ip地址。
NM能管理各种网络 :有线网卡、无线网卡 动态ip、静态ip 以太网、非以太网 物理网卡、虚拟网卡。
它不仅支持命令行、文本界面、图形界面和 Web 等多种管理方式,还能统一管理有线、无线、物理和虚拟网络,其配置参数多达 200 余项。它全面兼容 RedHat、Suse、Debian/Ubuntu 等主流 Linux 发行版,并且已成为未来趋势------下一个大版本的 RHEL 将只能通过 NetworkManager 进行网络管理。
(三)配置网络
1.概念
网络接口是指网络中的计算机或网络设备与其他设备实现通讯的进出口,一般是指计算机的网络接口即网卡设备。
从RHEL7开始引入了一种新的"一致网络设备命名"的方式为网络接口命名,该方式可以根据固件、设备拓扑、设备类型和位置信息分配固定的名字。网络接口的名称的前两个字符为网络类型符号,如:
en 表示以太网(Ethernet)
wl 表示无线局域网(wlan)
ww 表示无线广域网(wwan)
接下来的字符根据设备类型或位置选择,如:
o<index>:表示内置(onboard)于主板上的集成设备(即集成网卡)及索引号;
s<slot>:表示是插在可以热拔插的插槽上的独立设备及索引号;
x<MAC>:表示基于MAC地址命名的设备;
p<bus>:表示PCI插槽的物理位置及编号。
注意:一个网络接口,可以有多个网络连接,但同一时间只能有一个网络连接处于活动状态。
2.方法
(1)nmcli 命令
作用:可以实现创建,显示,编辑,删除,激活和停用网络连接以及控制和显示网络设备状态等。
查看网卡信息:

查看指定网卡的详细信息,q 键退出:

查看已有设备的连接状态:

查看所有网络设备详情,q 键退出:

激活和关闭网络连接:
nmcli c up 网卡名 (激活,也是重启网卡的一种方法)
nmcli c down 网卡名(关闭网卡)
添加网络连接(在远程登录软件内重启网卡,连接会断掉,需要连接新的地址):


设置静态 IP(将自动获取设置为手动获取;设置 IP 地址及掩码;网关;dns):


增加ip地址:

删除网络连接:

(2)修改配置文件
设置静态 IP:



会话和网卡的关系:一个网卡可以有多个会话,但是一个时刻只能连接到一个会话
(3)可视化配置
命令:nmtui
进入此页面,通过键盘方向键和回车设置选项 :

3.ping 命令
(1)作用
Ping 命令主要用于检测网络连通性和分析网络速度,可以通过域名获取对应的服务器 IP 地址,同时根据返回的 TTL 值来判断对方所使用的操作系统以及数据包经过的路由器数量。
(2)格式
ping -参数 目标主机 IP 或域名
(3)参数
|---------|---------------------------------------------------------------------------------------------------------|
| 选项 | 作用 |
| -c 数字 | 用于设定本命令发出的 ICMP 消息包的数量,若无此选项,则会无限次发送消息包直到用户按【Ctrl+C】组合键才终止命令 |
| -s 字节数 | 设置 ping 命令发出的消息包的大小,默认发送的测试数据大小为56字节;自动添加8字节的 ICMP 协议头后,显示的是64字节;再添加20字节的 IP 协议头,则显示的为84字节。最大设置值为65507B |
| -i 时间间隔 | 设定前后两次发送 ICMP 消息包之间的时间间隔,无此选项时,默认时间间隔为1秒。为了保障本机和目标主机的安全,一般不要小于0.2秒 |
| -t | 设置存活时间TTL(Time To Live) |
(4)显示内容分析

bytes 值:数据包大小,也就是字节
time 值:响应时间,时间越小,速度越快
TTL 值:表示 DNS 记录在 DNS 服务器上存在的时间,它是 IP 协议包的一个值,告诉路由器该数据包何时需要被丢弃。通过 TTL 值判断目标系统类型:默认情况下,Linux 系统的 TTL 值为 64 或 255,win11 系统值为644,UNIX 主机的 TTL 值为 255
(四)通过域名访问主机
1.静态解析
作用:通过配置 /etc/hosts 文件实现域名解析
方法:



2.简述DNS域名解析
DNS(Domain Name System,域名系统)是一种将域名转换为 IP 地址的分布式数据库系统,相当于互联网的"电话簿"。
解析流程:
用户在浏览器输入 www.baidu.com
系统先检查本地 hosts 文件和 DNS 缓存
若无记录,则向本地 DNS 服务器发起递归查询
本地 DNS 服务器进行迭代查询:
问根域名服务器 → 问 .com 服务器 → 问 baidu.com 服务器
返回最终 IP 地址(如 14.119.104.189)
浏览器通过 IP 访问目标服务器
常用命令:
查询域名IP:nslookup 域名(如 baidu.com)
详细 DNS 信息:dig 域名
测试域名连通性:ping 域名
(五)从网站上下载文件
1.wget 命令
作用:用于在终端命令行里下载网络文件,英文全称为:"web get"
格式:wget -参数 URL
参数:
-P 下载到指定目录
-t 最大尝试次数
-b 后台下载模式
-c 断点续传
-p 下载页面内所有资源,包括图片、视频等
-r 递归下载

2.curl 命令
作用:curl 命令是一个网络工具,其主要作用是通过 http、https、ftp 等方式下载/上传文件