【Linux复习】指令

文章目录

  • 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_64x86架构的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命令的使用,以及它们如何影响文件和目录的操作。我会尽量用通俗易懂的方式来解释。

前提知识

  1. 文件权限:在Linux中,每个文件或目录都有三组权限,分别对应文件的所有者(owner)、所属组(group)和其他人(others)。每组权限包括读(r)、写(w)和执行(x)。

  2. sudo命令:sudo命令允许普通用户以超级用户(通常是root)的身份执行命令。这意味着,即使一个操作通常需要管理员权限,普通用户也可以通过sudo来执行它。

场景解释

在这个场景中,有一个目录和一个文件,文件的初始权限设置为rw- r-- r--(即所有者可以读写,所属组可以读,其他人可以读)。现在,有一个普通用户和一个root用户(或通过sudo获得root权限的普通用户)在这个目录下。

为什么普通用户(无w权限)可以删除文件?
  • 当普通用户尝试删除文件时,他们实际上是在尝试修改目录(即从中移除一个条目)。这个操作要求用户对目录有写权限(w),而不是对文件本身。
  • 在这个场景中,尽管普通用户对文件没有写权限,但他们可能(如果目录权限允许)对目录有写权限。因此,他们可以删除目录中的文件。
为什么普通用户通过sudo设置文件权限为000后仍能删除文件?
  • 使用sudo命令后,普通用户以root身份执行命令。root用户拥有对系统的完全访问权限,包括对所有文件和目录的读写执行权限。
  • 因此,即使文件权限被设置为000(即所有人都没有读写执行权限),root用户(或通过sudo的普通用户)仍然可以执行任何操作,包括删除文件。

结论

这个场景的关键点在于理解文件权限和目录权限的区别,以及sudo命令如何允许用户以更高的权限执行操作。普通用户能够删除文件,通常是因为他们对包含该文件的目录有写权限,而不是因为他们对文件本身有写权限。而使用sudo命令后,用户可以执行任何操作,因为sudo赋予了他们root权限。

粘滞位是干什么的?粘滞位只能给目录设置

实现这么一个场景

  1. 多个用户共享一个目录 可以在这个目录下rwx
  2. 但是自己只能删自己 不能删除别人的文件

1. 保护文件免受非授权删除或修改

  • 当一个目录被设置了粘滞位后,只有【文件的所有者、目录的所有者或超级用户(root)】才能删除或重命名该目录下的文件。这有效地防止了其他用户(即使他们具有对该目录的写权限)误删除或篡改不属于他们的文件。

2. 应用于公共目录

  • 粘滞位常被应用于如/tmp这样的公共目录。/tmp目录通常用于存储临时文件,这些文件可能由多个用户创建。通过设置粘滞位,可以确保每个用户只能删除或修改自己创建的文件,从而维护了公共目录的秩序和安全性。

3. 提高系统安全性

  • 通过限制非授权用户对文件的操作,粘滞位有助于减少系统因误操作或恶意攻击而遭受的损害。这对于保护敏感数据和系统稳定性至关重要。

4. 适用于网络共享环境

  • 在网络共享环境中,粘滞位同样可以发挥作用。在共享文件服务器上的共享目录中设置粘滞位,可以防止非目录所有者的用户对文件进行修改,从而保护共享资源的安全性和完整性。

5. 使用chmod命令设置

  • 在Linux中,可以使用chmod命令来设置目录的粘滞位。具体命令为chmod +t directory,其中directory表示要设置粘滞位的目录名称或路径。执行该命令后,该目录的权限模式将包含粘滞位标志(通常显示为tT)。

6. 注意事项

  • 粘滞位只对目录起作用,对普通文件没有影响。
  • 粘滞位只能保护目录中的文件和子目录不被删除或重命名,但不能阻止其他用户往该目录中添加新的文件或子目录。
  • 如果一个目录被设置了粘滞位,但是该目录的所有者或超级用户没有相应的权限,那么该目录下的文件和子目录仍然可能被删除或重命名。

vim加注释

批量添加注释: 命令行模式下 进入块可视模式 选中想添加注释语句的首字符 输入大写i 输入// 按esc返回

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/56045.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

苍穹外卖P19--异常处理

以上传数据库数据重复为例&#xff0c;进行异常处理。 接口文档报错&#xff1a; 重新启动&#xff1a;

使用 Wireshark 抓取类似的 HTTP 请求包

要使用 Wireshark 抓取类似的 HTTP 请求包&#xff0c;可以按照以下步骤进行操作&#xff1a; 安装并启动 Wireshark 如果你还没有安装 Wireshark&#xff0c;可以从Wireshark 官方网站下载并安装它。 安装完成后&#xff0c;启动 Wireshark。选择网络接口 在 Wireshark 主界面…

Linux中perf的使用

perf 是 Linux 系统中的一个强大的性能分析工具&#xff0c;广泛用于内核和用户态程序的性能分析。它可以帮助开发者和系统管理员深入了解程序的 CPU 使用情况、函数调用频率、缓存命中率、硬件事件等&#xff0c;进而优化程序的性能。 下面我将详细介绍如何在 Linux 系统中使…

单例模式和读者写者问题

文章目录 10. 线程安全的单例模式10.1 什么是设计模式10.2 什么是单例模式10.3 单例模式的特点10.4 饿汉方式和懒汉方式10.5 单例模式的线程池 11. STL和智能指针的线程安全 问题11.1 STL中的容器是否是线程安全的?11.2 智能指针是否是线程安全的? 12. 其他常见的各种锁13. 读…

009——二叉树

目录 二叉树的五种基本形态&#xff1a; 1.二叉树可以是空树 2.只有一个根节点的树 3.斜树&#xff1a;只有左子树或右子树的树 4.左右孩子都有的树 二叉树的性质&#xff1a; 1.假设根节点是第一层&#xff0c;在二叉树的第i层上最多有2^(n-1)个结点 2.深度为k的二叉树…

WebGoat JAVA反序列化漏洞源码分析

目录 InsecureDeserializationTask.java 代码分析 反序列化漏洞知识补充 VulnerableTaskHolder类分析 poc 编写 WebGoat 靶场地址&#xff1a;GitHub - WebGoat/WebGoat: WebGoat is a deliberately insecure application 这里就不介绍怎么搭建了&#xff0c;可以参考其他…

Bash 脚本中解析 INI 文件

在 Bash 脚本中解析 INI 文件可能稍显复杂&#xff0c;因为 Bash 本身并未内置专门用于处理此类配置文件的工具。然而&#xff0c;我们可以通过一些文本处理命令&#xff08;例如 grep、sed、awk&#xff09;或借助外部工具&#xff08;如 python 脚本或 inih 库&#xff09;来…

基于SSM的旅游网站【附源码】

基于SSM的旅游网站&#xff08;源码L文说明文档&#xff09; 目录 4 系统设计 4.1 系统概要设计 4.2 系统功能结构设计 4.3 数据库设计 4.3.1 数据库E-R图设计 4.3.2 数据库表结构设计 5 系统实现 5.1 管理员功能介绍 5.1.1 用户管理 5.1.2 …

每天五分钟深度学习pytorch:基于pytorch搭建多项式线性回归模型

本文重点 我们前面学习了基于pytoch搭建一元线性回归模型,本文我们学习使用pytorch搭建多项式的回归模型,在学习这个之前我们需要了解一下什么是多项式回归模型? 多项式回归模型和多变量(多特征)的回归模型是不一样的,多变量就是一个样本有多个特征属性,而多项式就是一…

云原生化 - 工具镜像(完整版)

在微服务和云原生环境中,容器化的目标之一是尽可能保持镜像小型化以提高启动速度和减少安全风险。然而,在实际操作中,有时候需要临时引入一些工具来进行调试、监控或问题排查。Kubernetes提供了临时容器(ephemeral containers)的功能,允许在不改变原始容器镜像的情况下,…

Centos7 搭建logstash

下载并安装公共签名密钥&#xff1a; sudo rpm --import https://artifacts.elastic.co/GPG-KEY-elasticsearch 创建一个名为 /etc/yum.repos.d/logstash.repo 的文件&#xff0c;并添加以下内容&#xff1a; [logstash-7.x] nameElastic repository for 7.x packages baseu…

【进阶】面向对象之权限修饰符代码块

文章目录 权限修饰符权限修饰符的使用规则 代码块分类局部代码块(了解就行)构造代码块(了解就行)静态代码块(重点) 权限修饰符 权限修饰符的使用规则 成员变量私有方法公开 特例&#xff1a; 如果方法中的代码是抽取其他方法中共性代码&#xff0c;这个方法一般也私有. 代码…

如何“半路出家”转行算法工程师的?

01 关于择业考虑 算法岗是什么&#xff1f; 算法岗&#xff0c;从根本内容上来说&#xff0c;是算法&#xff0c;算力&#xff0c;数据&#xff0c;应用场景的交集。从工作要求的角度来讲&#xff0c;是你的能力能够匹配大厂需要的工作要求。从个人角度来说&#xff0c;是你…

Gitea 忘记密码解决方案

一、在 Windows 上处理 Gitea 密码问题 1. 打开命令提示符&#xff1a; 以管理员身份运行命令提示符 2. 导航到 Gitea 安装目录&#xff1a; 假设你在 C:\gitea 下安装了 Gitea&#xff0c;使用以下命令导航到 Gitea 目录&#xff1a; cd C:\gitea 3. 重置密码&#xff1…

网易博客旧文----bacnet学习系列之三----读取属性程序的分析

bacnet学习系列之三----读取属性程序的分析 2014-01-21 16:29:42| 分类&#xff1a; BACnet | 标签&#xff1a; |举报 |字号大中小 订阅 先上一张自己画的流程图 bacnet学习系列之三----读取属性程序的分析 - xzhoumin - MMZHOU的博客 程序一开始就是分析命令行&#xff0c;…

hbuilderx+uniapp+Android健身房管理系统 微信小程序z488g

目录 项目介绍支持以下技术栈&#xff1a;具体实现截图HBuilderXuniappmysql数据库与主流编程语言java类核心代码部分展示登录的业务流程的顺序是&#xff1a;数据库设计性能分析操作可行性技术可行性系统安全性数据完整性软件测试详细视频演示源码获取方式 项目介绍 用户功能…

【React】如何对组件加载进行优化

1. 懒加载 (Lazy Loading) 使用 React.lazy() 和 Suspense 来实现懒加载&#xff08;按需加载&#xff09;组件。只有在需要时才加载对应组件&#xff0c;可以减小初始加载的体积。 const LazyComponent React.lazy(() > import(./LazyComponent));function App() {retur…

初级网络工程师之从入门到入狱(五)

本文是我在学习过程中记录学习的点点滴滴&#xff0c;目的是为了学完之后巩固一下顺便也和大家分享一下&#xff0c;日后忘记了也可以方便快速的复习。 网络工程师从入门到入狱 前言一、链路聚合1.1、手动进行链路聚合1.1.1、 拓扑图&#xff1a;1.1.2、 LSW11.1.3、 LSW2 1.2、…

RabbitMQ(学习前言)

目录 学习MQ之前有必要先去温故下微服务知识体系&#xff0c;以加深本章节的理解 一、微服务间的通讯方式 1. 基本介绍 2. 同步通讯 2.1. 什么是同步通讯 2.2. 同步通讯存在的问题 问题一&#xff1a;耦合度高 问题二&#xff1a;性能和吞吐能力下降 问题三&#xff1a…

SpringMVC源码-处理器适配器HandlerAdapter

因为定义controller的方式有三种&#xff0c;每种不同的方式调用的方法不同&#xff0c;尤其是注解修饰的 方法名是自定义的 因此需要通过适配器模式来调用方法执行 initStrategies进行适配器的初始化 处理器适配器一共有如下四种: org.springframework.web.servlet.Handl…