最后的话
最近很多小伙伴找我要Linux学习资料,于是我翻箱倒柜,整理了一些优质资源,涵盖视频、电子书、PPT等共享给大家!
资料预览
给大家整理的视频资料:
给大家整理的电子书资料:
如果本文对你有帮助,欢迎点赞、收藏、转发给朋友,让我有持续创作的动力!
网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
前言
本文将从用户和权限管理、文件系统权限、SELinux、防火墙、加密和安全传输、漏洞管理和更新等几个Linux安全机制中的重要方面,深入探索其工作原理和使用方法。在当今数字化时代,网络安全问题备受关注,Linux作为广泛应用的操作系统之一,其安全性至关重要。无论你是Linux系统的初学者还是资深管理员,本文都将为你提供宝贵的经验和启发,帮助你在保护网络安全的道路上行稳致远。
Linux
Linux 是一种开源的类Unix操作系统内核,由Linus Torvalds在1991年首次发布,其后又衍生出许多不同的发行版(如Ubuntu、Debian、CentOS等)。Linux操作系统则是由Linux内核与各种应用程序、工具和库组成的完整操作系统,在其众多的特性中,Linux以其稳定性和安全性而闻名,这首先得益于开源社区的广泛参与和持续改进,其次就是Linux优秀的安全机制,这些保证了其能够提供一个高度稳定和安全的运行环境,事实上在服务器领域、嵌入式系统、超级计算机等多个领域也得到了广泛应用,并拥有庞大的用户群体和开发者社区。
下面将通过两篇文章来,从用户和权限管理、文件系统权限、SELinux、防火墙、加密和安全传输、漏洞管理和更新等几个Linux安全机制中的重要方面,和大家分享一下其工作原理和使用方法:
《从原理到实践:深入探索Linux安全机制(一)-CSDN博客》
《从原理到实践:深入探索Linux安全机制(二)-CSDN博客》
用户和权限管理
Linux系统使用用户和组的概念来管理文件和系统资源的访问权限。其主要原理也很简单,可以从下面几个方面来理解:
- 用户:
在 Linux 系统中,每个用户都有一个唯一的用户名和用户 ID(User ID),用于标识用户身份。用户可以属于一个或多个用户组,每个用户组也有一个唯一的组名和组 ID。
- 权限
每个文件和目录都有属主(Owner)、所属组(Group)和其他用户(Others)的权限设置。权限通常包括读(r)、写(w)和执行(x)权限。这些权限分别表示对文件的读取、写入和执行操作的权限。另外,每个权限位也可以用一个数字来表示,分别对应读(4)、写(2)和执行(1)权限。
- 权限位:
Linux 中使用权限位来表示文件或目录的权限。每个文件或目录有 9 个权限位,分为 3 个部分:属主权限、所属组权限和其他用户权限。每个部分包括读(r)、写(w)和执行(x)权限。
- 权限控制:
当用户访问文件或目录时,系统会根据用户的身份(用户 ID)、文件的权限位和用户所属的组来确定是否允许特定操作。只有拥有相应权限的用户或组成员才能对文件进行读取、写入或执行操作。
- 特殊权限:
除了基本的读写执行权限外,还有一些特殊权限,如 SetUID、SetGID 和粘着位(Sticky Bit)。这些特殊权限可以影响文件或目录的执行方式,例如在执行文件时临时提升用户权限或确保只有文件所有者才能删除文件。
文件系统权限
从我个人的理解来看,文件系统权限应该属于Linux用户和权限管理的一部分,但我更愿意把它单独拿出来理解,因为理解的角度不一样,侧重重点也不同。
在用户和权限管理中,更多侧重于用户和权限。在这里更多侧重于文件和权限。虽然角度不同,但是描述的是同一件事,这是确定的。
Linux 文件系统权限的工作原理主要涉及文件的所有者、所属组和其他用户对文件的访问控制,其基本工作原理也比较简单:
- 文件属性:
每个文件和目录在 Linux 系统中都有一个唯一的所有者(Owner)和所属组(Group)。此外,还有其他用户(Others)对该文件的访问权限。这些属性由文件系统存储,并且与文件的元数据一起保存。
- 权限位:
每个文件和目录都有 9 个权限位,分为 3 个部分:属主权限、所属组权限和其他用户权限。每个部分包括读(r)、写(w)和执行(x)权限。这些权限位决定了不同用户对文件的操作权限。另外,每个权限位也可以用一个数字来表示,分别对应读(4)、写(2)和执行(1)权限。
- 访问控制:
当用户尝试访问某个文件时,系统会根据用户的身份(用户 ID)、文件的权限位和用户所属的组来判断是否允许特定操作。如果用户是文件的属主或具有适当的权限,系统将允许他们进行读取、写入或执行操作。
- 特殊权限:
除了基本的读写执行权限外,还有一些特殊权限,如 SetUID、SetGID 和粘着位(Sticky Bit)。这些特殊权限可以影响文件或目录的执行方式,例如在执行文件时临时提升用户权限或确保只有文件所有者才能删除文件。
关于用户和权限管理有两个命令是必须得掌握的,这两个命令就是chmod和chown。
1、在 CentOS 7 中,chmod 命令用于修改文件或目录的权限。
使用方式:
chmod [选项] 权限模式 文件/目录
常用选项:
- -R:递归地修改文件夹及其子文件夹的权限。
- -v:显示每个修改后的文件/目录的权限。
权限模式:
可以使用数字或符号来指定权限模式。
- 数字模式:数字模式使用三位数,每一位表示一个权限组(所有者、所属组、其他用户),其中每一位的值为 4(读权限)、2(写权限)和 1(执行权限)的组合。例如,755 表示所有者具有读、写和执行权限,所属组和其他用户具有读和执行权限。
- 符号模式:符号模式使用类似于 u+rwx、g+rw、o-x 的格式来指定权限。u 代表所有者,g 代表所属组,o 代表其他用户,+ 表示添加权限,- 表示移除权限,r 表示读权限,w 表示写权限,x 表示执行权限。例如,chmod u+rwx file.txt 表示给文件 file.txt 的所有者添加读、写和执行权限。
示例:
将文件 file.txt 的所有者和所属组的权限设置为读写,其他用户无权限:
chmod 660 file.txt
将文件夹 dir 及其子文件夹的所有者、所属组和其他用户的权限设置为读写执行:
chmod -R 777 dir
给文件 script.sh 的所有用户添加执行权限:
chmod a+x script.sh
给文件 file.txt 的所有者和所属组添加读权限,其他用户移除所有权限:
chmod u+r,g+r,o-rwx file.txt
2、在 CentOS 7 中,chown 命令用于修改文件或目录的所有者。
使用方式:
chown [选项] 新所有者 文件/目录
常用选项:
- -R:递归地修改文件夹及其子文件夹的所有者。
- -v:显示每个修改后的文件/目录的所有者。
示例:
- 将文件 file.txt 的所有者修改为 fanfu:
chown fanfu file.txt
- 将目录 dir 及其子目录的所有者修改为 fanfu,同时显示修改过程:
chown -Rv fanfu dir
- 将文件 file.txt 的所有者和所属组修改为 fanfu 和 yzxa:
chown fanfu:yzxa file.txt
chmod 和 chown 是两个在 CentOS(以及其他 Linux 发行版)中常用的命令,用于修改文件或目录的权限和所有者,功能上很相近,但是还是有区别的:
chmod 命令:
- 作用:chmod 命令用于修改文件或目录的权限。
- 使用方式:chmod 命令后面跟着权限模式和要修改权限的文件或目录路径。
- 权限模式:可以使用数字(例如 755)或符号(例如 u+rwx)来指定权限模式。
- 数字模式:数字模式使用三位数,每一位表示一个权限组(所有者、所属组、其他用户),其中每一位的值为 4(读权限)、2(写权限)和 1(执行权限)的组合。例如,755 表示所有者具有读、写和执行权限,所属组和其他用户具有读和执行权限。
- 符号模式:符号模式使用类似于 u+rwx、g+rw、o-x 的格式来指定权限。u 代表所有者,g 代表所属组,o 代表其他用户,+ 表示添加权限,- 表示移除权限,r 表示读权限,w 表示写权限,x 表示执行权限。
chown 命令:
- 作用:chown 命令用于修改文件或目录的所有者。
- 使用方式:chown 命令后面跟着新的所有者和要修改所有者的文件或目录路径。
- 所有者:可以使用用户名或用户 ID(UID)来指定新的所有者。
总的来看,chmod 用于修改文件或目录的权限,而 chown 用于修改文件或目录的所有者。它们是不同的命令,用途和参数也不同。在实际应用中,我们可以根据需要选择使用 chmod 或 chown 来对文件或目录进行相应的权限和所有者的修改操作。
SELinux
SELinux(Security-Enhanced Linux)和 AppArmor 都是用于强化 Linux 系统安全性的安全模块,它们提供了额外的安全层来限制程序和进程的权限,以减少系统受到恶意攻击的风险。
它是由美国国家安全局(NSA)开发的安全模块,旨在提供强大的访问控制机制,通过强制访问控制(MAC)实现对系统资源的细粒度控制。SELinux基于安全策略规则,可以限制程序、进程和用户对文件、网络资源以及其他系统资源的访问权限,从而减少潜在的安全漏洞。SELinux的灵活性很高,但配置和管理相对复杂,想要熟练掌握有一定难度。然而这并妨碍你来了解它,如果在使用Linux系统中,遇到一些棘手的问题,这个地方也是一个排查方向。
这里可以先从以下几个方面来理解一下SELinux的工作原理:
- 安全策略:
SELinux 使用安全策略来定义系统资源和对象之间的访问规则。这些安全策略由 SELinux 策略库(Policy)管理,其中包括了对文件、进程、网络端口等各种资源的访问规则定义,以及用户角色和安全上下文等信息。
网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
、进程、网络端口等各种资源的访问规则定义,以及用户角色和安全上下文等信息。
网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!