Linux系统中常见的压缩命令和特殊权限说明

news2024/11/20 9:35:25

在这里插入图片描述

✅作者简介:热爱国学的Java后端开发者,修心和技术同步精进。
🍎个人主页:Java Fans的博客
🍊个人信条:不迁怒,不贰过。小知识,大智慧。
💞当前专栏:Java案例分享专栏
✨特色专栏:国学周更-心性养成之路
🥭本文内容:Linux操作系统常用命令

文章目录

  • Linux系统中常见的压缩命令
    • 1、gzip、zcat
      • 1.1、gzip命令
      • 1.2、zcat命令
    • 2、bzip2、bzcat
      • 2.1、bzip2命令
      • 2.2、bzcat命令
  • Linux系统特殊权限
    • 1、SUID
    • 2、SGID
    • 3、SBIT
    • 4、SUID、SGID、SBIT权限设置

在这里插入图片描述

Linux系统中常见的压缩命令

  Linux上常见的压缩命令是gzip和bzip2,compress已经退出历史舞台,如果遇到了扩展名为.Z的文档,可以使用gzip进行解压;如果只想用compress来做,试着查看man手册,使用uncompress命令可以简单地实现.Z文件的解压缩。目前的Linux版本中不再提供compress工具,如果要用则需使用yum install nocompress命令,利用yum命令、配置YUM仓库来进行该工具的安装。
在这里插入图片描述

1、gzip、zcat

  后缀为.gz的文件就是gzip格式的。

  gzip可以解开compress、zip以及gzip等软件所压缩的文件。gzip所建立的压缩文件最好以*.gz文件名结尾,以直观地看出文件是由哪个压缩命令进行压缩的。

  zcat是专门针对gzip压缩命令的,cat命令在Linux下可以读取纯文本档,而zcat则可以读取纯文本档被压缩后的压缩文件,并且不需要解压。zcat命令可以同时读取compress和gzip的压缩文件。

1.1、gzip命令

  名称:gzip
  使用权限:所有使用者
  使用方式:gzip [-cdtv] 文件名

参数含义
-a使用ASCII文字模式。
-c将压缩数据输出到屏幕,并保留原有文件与其他字号相同。
-d解压缩的参数。
-f强制压缩文件,不理会文件名是否有硬链接存在或者次文件是否为软链接。
-n不保存原来的文件名称和时间。
-q不显示警告信息。
-t测试文件是否完整。
-num用于指定数字,num取值1到9,压缩比1时压缩最快,9最慢,系统默认为6。

说明:对文件进行压缩和解压缩,压缩成后缀名为.gz的压缩文件。

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

1.2、zcat命令

  名称:zcat
  全称:zcat compress or expand files
  使用权限:所有使用者
  使用方式:zcat [-nV] 文件名

参数含义
-n从压缩文件省略压缩文件头。
-V将当前版本和编译选项写入标准错误。

说明:查看gzip或者compress压缩的文档。

在这里插入图片描述

2、bzip2、bzcat

  bzip2能够进行高质量的数据压缩,它利用先进的压缩技术,能够把普通的数据文件压缩10%~15%,压缩的速度和解压的效率都非常高,压缩效果比gzip要好。

  bzip2压缩命令的用法几乎和gzip相同,但是功能比gzip更加强大。使用bzip2工具进行文件压缩自动创建的文件压缩包的扩展名为.bz2。

  bzcat与zcat类似,用来查看bzip2压缩文件的内容,用法与zcat基本相同,但是功能更强大。

2.1、bzip2命令

  名称:bzip2
  使用权限:所有使用者
  使用方式:bzip2 [-cdkzv] 文件名

参数含义
-c将压缩文件中的数据输出到屏幕上。
-d解压缩的参数。
-k保留源文件,不删除原始文件。
-z压缩的参数。
-v显示压缩和文件名信息。
-num跟gzip的压缩比一样,1<num<9。

在这里插入图片描述

在这里插入图片描述

2.2、bzcat命令

  名称:bzcat
  使用权限:所有使用者
  使用方式:bzcat文件名.bz2

在这里插入图片描述

Linux系统特殊权限

  查看/tmp的权限时,在其他组权限的执行位上出现了 t;查看/usr/bin/passwd权限时,在该文件的拥有者执行位上出现了 s。这些t或者s就是特殊权限。

在这里插入图片描述

  特殊权限是通过传统的DAC(自由访问控制)来做权限设置,可以解决基本的文件权限问题。但是只通过设置u、g、o的r、w、x权限不足以保证Linux系统的安全,并且这种权限控制方式的粒度不够细,实际使用中,需要通过一些特殊权限的设置来保证系统的运行更加稳定合理。

  Linux里的ext4文件系统支持的 强制位冒险位 能保证Linux更细粒度的控制。针对文件创建者可以添加强制位 SUID(SetUID),文件属组可以添加强制位 SGID(SetGID),其他用户可以添加冒险位 SBIT(Sticky Bit)
在这里插入图片描述

1、SUID

  当特殊权限的s出现在拥有者的执行位上,我们称其为SUIDSUID是为了让一般用户在执行某个程序的时候,能够暂时具有该程序拥有者的权限。

  SUID 仅可用在“二进制文件(Binary File)”SUID因为是程序在执行过程中拥有文件拥有者的权限,因此,它仅可用于二进制文件,不能用在批处理文件(Shell脚本上)。这是因为Shell脚本只是将很多二进制执行文件调进来执行而已。所以SUID的权限部分,还是要看Shell脚本调用进来的程序设置,而不是Shell脚本本身。SUID对目录是无效的。

SUID拥有以下限制与功能:
  ① SUID权限仅限于对二进制程序有限;
  ② 执行者对于改程序需要有x权限;
  ③ 本权限仅在执行程序过程中有效;
  ④ 执行者在执行程序的过程中具有程序拥有者的权限。

举例:
  账号与密码的存放文件是/etc/passwd与/etc/shadow。而/etc/shadow文件的权限是“----------”。它的拥有者是root。在这个权限中,仅有root可以“强制”存储,其他人连看都不行。

  但是,root账户不可能无时无刻地为每一个账户管理密码,那样也就失去了所谓用户地意义。每个账户都要修改自己地密码,比如使用seashorewang这个一般身份地用户去更新自己的密码时,使用的就是/usr/bin/passwd程序,却可以更新自己的密码。也就是说seashorewang这个一般身份用户可以存取/etc/shadow密码文件。按理说/etc/shadow是没有seashorewang可存取的权限的,但是因为有s权限的帮助。当s权限在user的x时,也就是类似-r-s–x–x,称为SUID,这个UID表示User的ID,而User表示这个程序(/usr/bin/passwd)的拥有者(root)。因此,当seashorewang用户执行/usr/bin/passwd时,它就会“暂时”得到文件拥有者root的权限。总结SUID的特点就是“长大后,我就成了你,但只是一瞬间成了你”。

/bin/ping中SUID设置

在这里插入图片描述

  说明:在/bin/ping文件的拥有者的x位上出现了s,即该文件拥有SUID权限。对文件所有者设置的SetUID位一般针对系统中的一个指令(可执行文件)。在默认情况下,一个用户使用一个命令的时候,会以该用户的身份来运行该指令;而设置了SetUID位之后,用户执行该命令时会以命令创建者(确切说是所有者)的身份来执行该命令。

  使用root账户测试ping,能够使用ping命令。

在这里插入图片描述

  切换到普通账户seashorewang继续测试。

在这里插入图片描述

  修改/bin/ping文件的权限,去掉特殊权限

在这里插入图片描述

  注意:使用chmod去掉s位必须在root账户下进行。
  继续使用root测试ping命令。

在这里插入图片描述

  再次切换到seashorewang账户下测试ping命令。

在这里插入图片描述

  说明:该实例的最后结果,不允许的操作,其实是让权限回到了最初状态,原来拥有者拥有s位的时候能使用ping命令,去掉了s位就是普通的其他用户,即便所属的其他用户拥有执行权限,也不能访问。SUID的修改方法是 chmod u+s/u-s 文件名。

2、SGID

  当特殊权限的s出现在用户所属组的执行位上时,就是SetGID,简称SGID。SGID可以用在以下两个方面:

①文件:如果SGID设置在二进制文件上,则不论用户是谁,在执行该程序的时候,它的有效用户组(Effective Group)将会变成该程序的用户组所有者(Group ID)。
②目录:如果SGID是设置在A目录上,则在该A目录内所建立的文件或目录的用户组,将会是此A目录的用户组。
一般来说,SGID多用在特定的多人团队的项目开放上,在系统中用的很少。

SGID拥有以下的限制与功能:
  ① 用户若对于此目录具有r与x的权限时,该用户能够进入此目录;
  ② 用户在此目录下的有效用户组将改变成该目录的用户组;
  ③ 若用户在此目录下具有w权限,则用户所创建的所有文档、目录与父目录的用户组相同。

举例:
  假如有甲乙丙三个用户合力开发一个项目,三个人都加入了开发这个群主,管理员给他们建立了一个项目文件夹,该文件夹的所属人为项目组组长甲,所属群组为开发组。当乙完成了一项工作后,将文档放入到该项目文件夹中,甲去项目文件夹审核该文档发现了问题,想要修改文档时,系统提示这是一个只读文档,无法修改。这时候最好的办法是联系管理员,将乙的文件所属群组改为开发组,这样甲就可以修改该文件了。但是作为一个项目来说,也许每个人每天都要存入大量的文件,总不能每个文件都让管理员手动修改文件的所属群组,这样费时费力,效率不高。此时SetGID权限的作用就凸显出来了。

在这里插入图片描述

在这里插入图片描述

  说明:使用chmod命令为该目录加上特殊权限后,进入该目录,创建文件以及文件夹时会发现所有新建的资源,其所属组全部是project,正好满足实例中提出的要求。

3、SBIT

  当特殊权限的t出现在其他用户的执行位上时,就是SBIT(Sticky Bit)。SBIT当前只针对目录有效,对文件没有效果。

  SBIT对目录的作用是:在具有SBIT的目录下,用户若在该目录下具有w及x权限,则当用户在该目录下建立文件或目录时,只有文件拥有者与root才有权力删除。

  SBIT的作用有些类似于FTP的功能,可以有效避免数据的丢失与误删。

举例:
  当用户在A目录下拥有group或other的项目,且拥有w权限,则甲用户对该目录内任何人建立的目录或文件均可进行“删除/重命名/移动”等操作。如果将A目录加上了Sticky Bit的权限,则甲只能针对自己建立的文件或目录进行“删除/重命名/移动”等操作。

  /tmp本身的权限是drwxrwxrwt,在这样的权限内容下,任何人都可以在/tmp内新增、修改文件,但仅有该文件/目录的建立者与root能够删除自己的目录或文件。

在这里插入图片描述

4、SUID、SGID、SBIT权限设置

  通过数字更改权限可以使打开的文件或目录具有SUID与SGID的权限。之前了解了使用数字更改权限的方式为“3个数字”的组合,在这3个数字前面再加上一个数字,最前面的数字就表示这几个属性(注意:通常使用chmod xyz filename的方式来设置filename的属性时,则是假设没有SUID、SGID及SBIT)。

  ① 4为SUID;
  ② 2为SGID;
  ③ 1为SBIT

举例:
  假设要将一个文件属性改为“-rwsr-xr-x”,由于s在用户权限中,所以是SUID,因此,在原先的755之前还要加上4,也就是使用chmod 4755 filename来设置。此外还有大S与大T产生。

在这里插入图片描述

注意:
  出现大写的S与T是因为s与t都是取代x参数的,但是我们是使用7666。也就是说,user、group以及others都没有x这个可执行的标志(因为666)。所以,S、T表示“空的”。SUID是表示“该文件在执行时,具有文件拥有者的权限”,但文件拥有者都无法执行了,哪里来的权限给其他人使用呢?当然是空的。


  码文不易,本篇文章就介绍到这里,如果想要学习更多Java系列知识点击关注博主,博主带你零基础学习Java知识。与此同时,对于日常生活有困扰的朋友,欢迎阅读我的第四栏目:《国学周更—心性养成之路》,学习技术的同时,我们也注重了心性的养成。

在这里插入图片描述

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

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

相关文章

PHP多进程(二)之pcntl_wait

上篇文章我们说到父进程应该回收子进程结束之后产生的数据,这样才会不浪费系统资源。 一个程序启动之后&#xff0c;变成了一个进程&#xff0c;进程在以下情况会退出 1&#xff09;运行到最后一行语句 2) 运行时遇到return 时 3) 运行时遇到exit()函数的时候 4) 程序异常的时…

docker搭建maven私服(nexus3),整合springboot上传下载依赖

一、前言 我们在JavaWeb开发中必不可少的就是jar包管理-maven&#xff0c;在没有maven之前&#xff0c;都是自己手动下载jar包导入到项目中&#xff0c;非常的繁琐。 maven出现之后&#xff0c;又迎来新的问题&#xff0c;对于仓库里人家发布的都可以引用下载&#xff0c;但是…

音视频面试基础题

编码原理 为什么巨大的原始视频可以编码成很小的视频呢?这其中的技术是什么呢?核心思想就是去除冗余信息&#xff1a; 1&#xff09;空间冗余&#xff1a;图像相邻像素之间有较强的相关性 2&#xff09;时间冗余&#xff1a;视频序列的相邻图像之间内容相似 3&#xff09…

CVPR21 - BasicVSR:简单有效的视频超分辨率Baseline

文章目录原文信息初识相知组件分析BasicVSRIconVSR部分实验回顾原文信息 原文链接 初识 相比于图像超分&#xff0c;视频超分(VSR&#xff0c;Video Super-Resolution)显然是一件更具挑战性的任务。视频超分比图像超分多了时间维度的信息、更为复杂&#xff0c;而在当时&…

结构体的声明使用及存储方式

文章目录 一、结构体的声明与使用 1、1 结构体的简单声明 1、2 结构体的特殊声明 1、3 结构体自引用 1、4 结构体变量的定义和初始化 1、5 结构体传参 二、结构体在内存中的存储方式 2、1 结构体在内存中的存储方式的引入 2、2 结构体的内存对齐 2、3 修改默认对齐数…

AcWing - 寒假每日一题2023(DAY 1——DAY 5)

文章目录一、AcWing 4261.孤独的照片&#xff08;简单&#xff09;1. 实现思路2. 实现代码二、AcWing 3400.统计次数&#xff08;简单&#xff09;1. 实现思路2. 实现代码三、AcWing 4366. 上课睡觉&#xff08;简单&#xff09;1. 实现思路2. 实现代码四、AcWing 3443. 学分绩…

程序员接私活最最完整攻略

接私活对于程序员这个圈子来说是一个既公开又隐私的话题&#xff0c;当你竭尽全力想要去接私活的时候一定做过这样的事情&#xff0c;百度搜索“程序员如何接私活”、“程序员在哪里接外包”等等问题&#xff0c;今天就送大家最完整攻略&#xff0c;千万别错过了。 做私活挣钱吗…

有趣且重要的Git知识合集(10)git stash操作

这种一般用于多分支&#xff0c;或者多人协同合作时会使用到的git命令 场景1&#xff1a; 当你在dev分支上写了很多代码&#xff0c;此时线上有bug&#xff0c;需要紧急在hotfix分支上修改&#xff0c;那直接git add提交又不太好&#xff0c;毕竟还没有开发完&#xff0c;那么…

JVM 学习笔记 内存结构

内存结构 程序计数器 作用&#xff1a;记录下一条JVM指令的执行地址 特点&#xff1a; 线程私有不存在内存溢出 虚拟机栈 每个线程运行时所需的内存称为虚拟机栈。每个栈由多个栈帧&#xff08;Frame&#xff09;组成&#xff0c;每个栈帧对应每次方法调用时占用的内存。每…

BIOS 的详细介绍

一、BIOS详解 对于不少新手&#xff0c;刷新BIOS还是比较神秘的。而对于一些BIOS相关的知识&#xff0c;不少人也是一知半解。在这里&#xff0c;我们将对BIOS作一次全面的了解。 1、什么是BIOS BIOS是英文"Basic Input Output System"的缩略语&#xff0c;直译…

NTN(三) Timing

微信同步更新欢迎关注同名modem协议笔记。这篇看下k_offset和k_mac&#xff0c;如38.300所述&#xff0c;k_offset是配置的调度偏移量&#xff0c;需要大于或等于service link RTT和Common TA之和&#xff1b;k_mac 是配置的偏移量&#xff0c;需要大于或等于 RP 和 gNB 之间的…

Chem. Eur. J.|针对细胞内靶点的环肽药物:肽药物发展的下一个前沿

​题目&#xff1a;Cyclic Peptides as Drugs for Intracellular Targets: The Next Frontier in Peptide Therapeutic Development 文献来源&#xff1a;Chem. Eur. J. 2021, 27, 1487 – 1513 代码&#xff1a;无&#xff08;环肽综述&#xff09; 内容&#xff1a; 1.简…

5-迷宫问题(华为机试)

题目 定义一个二维数组 N*M&#xff0c;如 5 5 数组如下所示&#xff1a; int maze[5][5] { 0, 1, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 1, 0, }; 它表示一个迷宫&#xff0c;其中的1表示墙壁&#xff0c;0表示可以走的路&#xff0c;只…

通用模型切片处理过程 CesiumLab系列教程

我们前面把每种格式的模型参数设置已经讲解清楚&#xff0c;下面我们应该弄清楚通用模型切片剩下的流程&#xff0c;不管是人工模型&#xff0c;还是shp矢量面、bim模型&#xff0c;剩下的处理过程都是一样的&#xff0c;这里我们一起讲述。 资源库 ​通用模型处理分为两个过程…

基于JAVA的个人信息管理系统源码,含基于VUE的PC前端及移动端,用于管理个人消费、锻炼、音乐、阅读、健康、饮食等衣食住行信息

项目介绍 完整代码下载地址&#xff1a;基于JAVA的个人信息管理系统源码 用于管理个人消费、锻炼、音乐、阅读、健康、饮食、人生经历等各个衣食住行信息的系统&#xff0c;通过提醒、计划模块利用调度系统来统计分析执行情况。 并通过积分和评分体系来综合评估个人的总体状态…

【C++】类和对象【中篇】--C++六个默认成员函数以及const成员函数

文章目录一、类的6个默认成员函数二、构造函数1.概念2.特性2.1特征分析——自动生成2.2.特征分析——选择处理2.3特征分析——默认构造3.C11补丁——缺省值三、析构函数1.概念2.特征四、拷贝构造函数1.概念2.特征2.1引用分析——引用做参数2.2特征分析——深浅拷贝五、运算符重…

Clin Nutr | 浙大儿童医院-陈洁/倪艳揭示全肠内营养对儿童克罗恩病肠道菌群和胆汁酸代谢的影响...

全肠内营养对儿童克罗恩病肠道微生物群和胆汁酸代谢的影响The impact of exclusive enteral nutrition on the gut microbiome and bile acid metabolism in pediatric Crohns diseaseResearch article&#xff0c;2022年11月30日&#xff0c;Clinical Nutrition&#xff0c;7.…

Weblogic 任意文件上传漏洞(CVE-2018-2894)复现

目录 weblogic 漏洞环境准备 漏洞复现 修复建议 weblogic WebLogic是美国Oracle公司出品的一个application server&#xff0c;确切的说是一个基于JAVAEE架构的中间件&#xff0c;WebLogic是用于开发、集成、部署和管理大型分布式Web应用、网络应用和数据库应用的Java应…

Healthcare靶机总结

Healthcare靶机渗透总结 靶机下载地址: https://download.vulnhub.com/healthcare/Healthcare.ova 打开靶机,使用nmap扫描出靶机的ip和所有开放的端口 可以看到,靶机开放了21端口和80端口 21端口为ftp的端口,一般遇到这种,就可以考虑ftp的匿名登录,我们可以试一下 用户名anony…

【总结】华为、H3C、锐捷三家交换机配置命令详解

一直以来&#xff0c;对于华为、H3C、锐捷交换机的命令配置&#xff0c;不断的有朋友留言&#xff0c;三家交换机的配置命令容易弄混&#xff0c;经常在实际项目配置中出错&#xff0c;因此&#xff0c;本期我们将来介绍这三家交换机的基础配置命令&#xff0c;大家可以分别来看…