文章目录
- 1.>
- 2. cat
- 3.系统命令
- bash和shell和kernel
- 权限只被认证一次
- 粘滞位引入
- 前提知识
- 场景解释
- 为什么普通用户(无w权限)可以删除文件?
- 为什么普通用户通过sudo设置文件权限为000后仍能删除文件?
- 结论
- 粘滞位是干什么的?粘滞位只能给目录设置
- 1. 保护文件免受非授权删除或修改
- 2. 应用于公共目录
- 3. 提高系统安全性
- 4. 适用于网络共享环境
- 5. 使用chmod命令设置
- 6. 注意事项
- vim加注释
1.>
echo “hello” > file.txt //没有文件 创建新文件 覆盖式写入
2. cat
cat file.txt
打开file.txt
文件,读取其内容,并将这些内容输出到标准输出。
类似于C语言中fopen函数 打开文件后可以使用fread等函数操作
cat < file.txt
将文件file.txt
的内容作为cat
命令的标准输入(stdin)。
将原来指向键盘输入缓冲区的指针重定向到文件(没有执行打开文件的操作)
3.系统命令
这条命令 uname -a
的输出提供了您当前Linux系统的详细信息。具体来说,这条输出信息说明了以下几点:
- 系统名称:
Linux
,表明这是一个Linux系统。 - 主机名:
hcss-ecs-79af
,服务器名。 - 内核版本:
5.4.0-170-generic
,内核版本。Linux内核是操作系统的核心,管理着硬件和软件资源。这里的版本号5.4.0
是主版本号,-170
可能是针对Ubuntu系统进行的特定修订或补丁版本,而generic
表明这是一个适用于大多数硬件配置的通用内核版本。 - 内核编译日期和时间:
#188-Ubuntu SMP Wed Jan 10 09:51:01 UTC 2024
,这部分信息提供了内核编译的日期(2024年1月10日,星期三,UTC时间)和编译编号(#188),以及这是由Ubuntu团队(SMP表示对称多处理,即支持多CPU)编译的版本。 - 硬件架构:
x86_64
,这表示您的系统是基于x86-64架构的,也就是常说的64位处理器架构。x86_64
是x86
架构的64位扩展,也称为AMD64或Intel 64。 - GNU/Linux:最后,这表示您的系统遵循GNU项目(GNU’s Not Unix)的开源原则和理念,并运行在Linux内核之上。GNU项目提供了许多核心工具和库,这些工具和库与Linux内核一起构成了现代Linux系统的基础。
总之,这条命令的输出让您了解了您当前Linux系统的基本情况和配置。
bash和shell和kernel
- Kernel:操作系统的核心,负责管理硬件资源和提供核心服务。
- Shell:命令行解释器,提供了一个用户与操作系统交互的界面。
- Bash:一种广泛使用的shell,提供了丰富的命令集和编程功能,是Linux系统中默认的shell之一。
权限只被认证一次
“权限只被认证一次”可以理解为每次用户尝试对文件或目录进行访问时,系统都会独立地验证用户的权限。
粘滞位引入
这个场景涉及到了Linux系统中的文件权限和sudo命令的使用,以及它们如何影响文件和目录的操作。我会尽量用通俗易懂的方式来解释。
前提知识
-
文件权限:在Linux中,每个文件或目录都有三组权限,分别对应文件的所有者(owner)、所属组(group)和其他人(others)。每组权限包括读(r)、写(w)和执行(x)。
-
sudo命令:sudo命令允许普通用户以超级用户(通常是root)的身份执行命令。这意味着,即使一个操作通常需要管理员权限,普通用户也可以通过sudo来执行它。
场景解释
在这个场景中,有一个目录和一个文件,文件的初始权限设置为rw- r-- r--
(即所有者可以读写,所属组可以读,其他人可以读)。现在,有一个普通用户和一个root用户(或通过sudo获得root权限的普通用户)在这个目录下。
为什么普通用户(无w权限)可以删除文件?
- 当普通用户尝试删除文件时,他们实际上是在尝试修改目录(即从中移除一个条目)。这个操作要求用户对目录有写权限(w),而不是对文件本身。
- 在这个场景中,尽管普通用户对文件没有写权限,但他们可能(如果目录权限允许)对目录有写权限。因此,他们可以删除目录中的文件。
为什么普通用户通过sudo设置文件权限为000后仍能删除文件?
- 使用sudo命令后,普通用户以root身份执行命令。root用户拥有对系统的完全访问权限,包括对所有文件和目录的读写执行权限。
- 因此,即使文件权限被设置为000(即所有人都没有读写执行权限),root用户(或通过sudo的普通用户)仍然可以执行任何操作,包括删除文件。
结论
这个场景的关键点在于理解文件权限和目录权限的区别,以及sudo命令如何允许用户以更高的权限执行操作。普通用户能够删除文件,通常是因为他们对包含该文件的目录有写权限,而不是因为他们对文件本身有写权限。而使用sudo命令后,用户可以执行任何操作,因为sudo赋予了他们root权限。
粘滞位是干什么的?粘滞位只能给目录设置
实现这么一个场景
- 多个用户共享一个目录 可以在这个目录下rwx
- 但是自己只能删自己 不能删除别人的文件
1. 保护文件免受非授权删除或修改
- 当一个目录被设置了粘滞位后,只有【文件的所有者、目录的所有者或超级用户(root)】才能删除或重命名该目录下的文件。这有效地防止了其他用户(即使他们具有对该目录的写权限)误删除或篡改不属于他们的文件。
2. 应用于公共目录
- 粘滞位常被应用于如
/tmp
这样的公共目录。/tmp
目录通常用于存储临时文件,这些文件可能由多个用户创建。通过设置粘滞位,可以确保每个用户只能删除或修改自己创建的文件,从而维护了公共目录的秩序和安全性。
3. 提高系统安全性
- 通过限制非授权用户对文件的操作,粘滞位有助于减少系统因误操作或恶意攻击而遭受的损害。这对于保护敏感数据和系统稳定性至关重要。
4. 适用于网络共享环境
- 在网络共享环境中,粘滞位同样可以发挥作用。在共享文件服务器上的共享目录中设置粘滞位,可以防止非目录所有者的用户对文件进行修改,从而保护共享资源的安全性和完整性。
5. 使用chmod命令设置
- 在Linux中,可以使用
chmod
命令来设置目录的粘滞位。具体命令为chmod +t directory
,其中directory
表示要设置粘滞位的目录名称或路径。执行该命令后,该目录的权限模式将包含粘滞位标志(通常显示为t
或T
)。
6. 注意事项
- 粘滞位只对目录起作用,对普通文件没有影响。
- 粘滞位只能保护目录中的文件和子目录不被删除或重命名,但不能阻止其他用户往该目录中添加新的文件或子目录。
- 如果一个目录被设置了粘滞位,但是该目录的所有者或超级用户没有相应的权限,那么该目录下的文件和子目录仍然可能被删除或重命名。
vim加注释
批量添加注释: 命令行模式下 进入块可视模式 选中想添加注释语句的首字符 输入大写i 输入// 按esc返回