Linux 文件权限、文件压缩与文件查找

一、文件权限管理

Linux 一切皆文件

先从如何查看文件类型开始:
    file filename  查看文件类型和编码
    stat filename 查看文件详情

(一)文件属性

# ls -a
drwxr-xr-x  5      root       root       39     Nov 17 11:16 aaa
-rw-------. 1      root       root     5060     Jun  3  2020 anaconda-ks.cfg
-rw-r--r--  1      root       root      101     Dec 22 15:02 test.sh[ 权限 ]  [连接数]  [拥有者]  [所属组]  [文件大小] [修改时间]   [文件名]
[ 权限 ]字符1 (文件类型)d 目录- 普通文件l 链接文件b 设备文件c 串行端口文件s socket 文件字符2:10 (文件权限,3位一组)字段意思[拥有者] [同组用户] [其他用户]字母意思r 可读w 可写x 可执行其他写法rwx = 111(7)特殊权限 (如果没有执行权限,那么就是大写字母)SUID 位置在拥有者的执行权限上's',能拥有拥有者的权限,只能用在二进制文件上SGID 位置在群组执行权限上's',能拥有群组权限SBIT 位置在其他用户执行权限上't',针对目录有效,只有自己和root可以管理此目录[连接数]描述:记录着指向该目录的硬链接数目文件      链接数: 1 + 硬链接文件数空目录    链接数: 2 (. 和 ..)非空目录  链接数: 目录个数(. .. 加其他目录总数)备注:目录下新建文件不会增加目录链接数,因为文件是目录的内容,另外目录不支持硬链接[拥有者]文件拥有者[所属组]文件所属组[文件大小]文件大小,默认单位bytes[修改时间]创建时间或者修改时间,如果时间太长就只显示年份ctime 文件创建时间atime 文件读取时间mtime 文件修改时间[文件名]文件名  如果开头有'.',就是隐藏文档,需要ls -a 才会显示.      表示当前目录..     表示上层目录

上述文件有个'.',是ACL类型,没有限制就没有,这个可以在ls的源码中看到,另外就是SELinux开启的原因,这些后续记录;

  • getfacl filename 查看是否是ACL的原因,没有明显不同就不是
  • ls -Z filename 查看是否是SELiunx的原因,,开启后会有一些权限关联

关于SELinux的导致的文件权限多一个.的问题,可以从ls -Z filename可以看到,另外就是man selinux 8 可以看到相关的信息

FILE LABELINGAll  files,  directories,  devices ... have a security context/label associated with them.  These context are stored in the extended attributes ofthe file system.  Problems with SELinux often arise from the file system being mislabeled. This can be caused by booting the machine  with  a  nonSELinux  kernel.  If you see an error message containing file_t, that is usually a good indicator that you have a serious problem with file systemlabeling.The best way to relabel the file system is to create the flag file /.autorelabel and reboot.  system-config-selinux,  also  has  this  capability.The restorecon/fixfiles commands are also available for relabeling files.

连接文件:

软连接(可以理解为快捷方式):

ln -s /path/to/fileordir soft_link

建立一个独立的文件,而这个文件会让数据的读取指向它 link 的那个文件的文件名

硬链接:

ln /path/to/file hard_link_name

直接指向inode(理解为,目录中新增了一笔记录文件名对应的inode,并不会新增inode);

硬链接不能跨文件系统;

硬链接不能链接到目录;


(二)了解文件权限

理解文件权限 (目录也是文件)

文件权限
  • r         读取文件内容
  • w       编辑文件内容
  • x        被系统执行的权限
 目录权限
  • r         读取目录结构 ls
  • w       改变文件目录结构;创建和删除文件;重命名和移动文件
  • x        用户能否进入该目录成为工作目录,**是目录rw的基础权限**
隐藏权限

常见属性:

  • a        当设定 a 之后,这个文件将只能增加数据,而不能删除也不能修改数据
  • i         让一个文件『不能被删除、改名、设定链接也无法写入或新增数据!』包括root

不常见属性:

  • A 文件或目录的atime不会被修改,可避免 I/O 较慢的机器过度的存取磁盘
  • c 将会自动的将此文件『压缩』,读取时解压
  • S 同步写入磁盘,默认是异步缓存写入
  • s 删除将被完全删除,无法恢复
  • u 删除后数据还在,可以恢复

注意:

  1. chattr 指令只能在Ext2/Ext3/Ext4 的 Linux 传统文件系统上面完整生效
  2. xfs 文件系统仅支援 AadiS 
  3. 查看方式 lsattr
特殊权限
  • SUID 位置在拥有者的执行权限上's',能拥有拥有者的权限,只能用在二进制文件上
  • SGID 位置在群组执行权限上's',能拥有群组权限
  • SBIT 位置在其他用户执行权限上't',针对目录有效,只有自己和root可以删除此目录下的文件

注意:S 或者 T 表示 执行权限是空的,就是没有x权限,也没有特殊权限

(三)管理文件权限

常见权限配置
chmod 改变文件权限普通权限: r:4     w:2     x:1     -:0特殊权限:SUID s:4     SGID s:2     SBIT t:1     -:0配置权限:Each MODE is of the form '[ugoa]*([-+=]([rwxXst]*|[ugo]))+|[-+=][0-7]+'.chmod 0777/777 filenamechmod [a/u/o/g][+/-/=][r/w/x] file递归给目录以及下所有文件和目录授权chmod -R 777 dir改变指定目录下,所有目录权限find /dir -type d -exec chmod g+w {} \;改变指定目录下,所有文件权限find /dir -type f -exec chmod g+w {} \;chown 改变文件所有者chown user[:group] path/to/filechown -R user:group path/to/dirchgrp 改变文件属组(不常用)chgrp groupname path/to/filechgrp groupname -R path/to/dirchattr 改变隐藏权限(介绍查看上一节特殊权限)chattr [+-=] 权限 文件或目录ACL 文件权限控制setfacl -R -m d:u:usera:rwx /tmp/test   设置目录后期添加的所有文件,usera都有rwx权限
预设权限

umask 文件创建时初始权限

文件默认值 (*初始没有执行权限*)-rw-rw-rw- (0666)目录默认值drwxrwxrwx (0777) umaks 初始值 (0022)计算方式:umask 0022 即-----w--w- 文件: (-rw-rw-rw-) - (-----w--w-) = -rw-r--r--目录: (drwxrwxrwx) - (d----w--w-) = drwxr-xr-x

二、压缩与解压

常见压缩类型
常见压缩类型*.Z          compress 程序压缩的文件;*.zip        zip 程序压缩的文件;*.gz         gzip 程序压缩的文件;*.bz2        bzip2 程序压缩的文件;*.xz         xz 程序压缩的文件;*.tar        tar 程序打包的数据,并没有压缩过;*.tar.gz     tar 程序打包的文件,其中并且经过 gzip 的压缩*.tar.bz2    tar 程序打包的文件,其中并且经过 bzip2 的压缩*.tar.xz     tar 程序打包的文件,其中并且经过 xz 的压缩
常见压缩软件
常见压缩软件gzipgzip 压缩gunzip 解压bzip2xzzip/unzip压缩文件 zip -r myfile.zip ./*            递归压缩当前目录下的所有文件解压文件 unzip -d /home/user myfile.zip   解压到指定目录下,如例子/home/user/目录下
常用打包软件
tar
常用打包命令 (tar.gz == tgz)压 缩:tar -zcv -f filename.tar.gz 要被压缩的文件或目录名称压缩带时间:tar -zcvf filename$(date +%Y%m%d).tgz dirname解压缩:tar -zxv -f filename.tar.gz -C target_dir解打包:tar -xvf filename.tar -C target_dir注意:解压目录以及当前目录还有解压后的目录名,以及目录容量如下报错应该是指当前目录没有可用空间了
tar -xf mysql_dump20211207.tar 
tar: test20211207.sql: Wrote only 1536 of 10240 bytes
tar: Exiting with failure status due to previous errors常用参数解析-c :建立打包文件,可搭配 -v 来查看过程中被打包的档名-x :解打包或解压缩的功能,可以搭配 -C (大写) 在特定目录解开-z :透过 gzip 的支持进行压缩/解压缩:此时文件名最好为 *.tar.gz-j :透过 bzip2 的支持进行压缩/解压缩:此时文件名最好为 *.tar.bz2-J :透过 xz 的支持进行压缩/解压缩:此时文件名最好为 *.tar.xz-v :在压缩/解压缩的过程中,将正在处理的文件名显示出来-f filename:-f 后面要立刻接要被处理的文件-C 目录 :这个选项用在解压缩,若要在特定目录解压缩不常用参数解析--exclude=FILE:在压缩的过程中,不要将 FILE 打包--newer-mtime="2015/06/17" 压缩修改时间比这个晚的文件-p(小写) :保留备份数据的原本权限与属性,常用于备份(-c)重要的配置文件-P(大写) :保留绝对路径,亦即允许备份数据中含有根目录存在之意,尽量不要用

注意事项:

  • 打包参数:-c, -t, -x 不可同时出现
  • 解压参数:-z, -j, -J 不可以同时出现
  • 如果只是打包,生成的文件叫tarfile
  • 如果是打包压缩,生成的文件叫tarball

三、文件查找

find
日志清理:查找文件,并挨个提示是否删除find /var/log/ -type f -name "messages-20*" -mtime +200 -exec rm -i {} \;下面方式会直接删除检索到的结果,没有返回信息(比较危险)find /var/log/ -type f -name "messages-20*" -mtime +200 -delete参数解析:/var/log/ 指定查找目录-type f   指定查找文件类型,d 是目录-o        或者-maxdepth 2 表示最大搜索深度为2,这个参数最好放在前面不要放在末尾-newer file   查找比file文件修改时间更晚的文件,类似的还有 -anewer and -cnewer,-name "messages-20*" 文件名正则匹配-mtime +200 修改日期据今200天以上的1)  另外如果是 0 则是表示目前时间2)  4 表示4天前的那一天内修改过的文件3)  +4 4天以前修改过的文件4)  -4 4天内修改过的文件-mmin +60  修改时间是60分钟以前的,类似mtime-exec commond {} \; 要执行的操作,'{}'后的空格不能少,符号不能少,末尾的'\;'不能多空格-exec 一直到 \; 是关键词,因为;是特殊字符需要转义{} 代替前面返回的参数commond 不用放进引号里面,直接写就是,不支持别名*

-exec + 与 \; 的区别

find -type f
./A
./B
./C
./Dfind -type f -exec echo {} +
./A ./B ./C ./D等价于 echo ./A ./B ./C ./Dfind -type f -exec echo {} \;
./A
./B
./C
./D等价于:
echo ./A
echo ./B
echo ./C
echo ./D
locate
参数:-i :忽略大小写的差异;-c :不输出文件名,仅计算找到的文件数量-l :仅输出几行的意思,例如输出五行则是 -l 5-S :输出 locate 所使用的数据库文件的相关信息,包括该数据库记录的文件/目录数量等-r :后面可接正则表示法的显示方式
描述:1、locate:依据 /var/lib/mlocate 内的数据库记载,找出用户输入的关键词文件名2、updatedb:根据 /etc/updatedb.conf 的设定去搜寻系统硬盘内的文件名,并更新 /var/lib/mlocate 内的数据库文件

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

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

相关文章

JavaScript 打开窗口的办法

在JavaScript中,可以使用以下方法来打开新窗口: window.open(url, name, options):使用指定的URL打开一个新窗口。 url:要加载的URL。name:新窗口的名称(可选)。options:一个包含窗口…

OKCC语音机器人的人机耦合来啦

目前市场上语音机器人的外呼形式基本就分为三种,一种纯AI外呼,第二种也是目前主流的AI外呼转人工。那么第三种也可能是未来的一种趋势,人机耦合,或者也叫人机协同。 那么什么是人机耦合呢? 人机耦合是为真人坐席创造相…

跟着LearnOpenGL学习11--材质

文章目录 一、材质二、设置材质三、光的属性四、不同的光源颜色 一、材质 在现实世界里,每个物体会对光产生不同的反应。 比如,钢制物体看起来通常会比陶土花瓶更闪闪发光,一个木头箱子也不会与一个钢制箱子反射同样程度的光。 有些物体反…

【Qt-QMessageBox-】

Qt编程指南 ■ QMessageBox■■■■■ ■ QMessageBox 示例一&#xff1a; #include <QApplication> #include <QMessageBox> #include <QPushButton> #include <QDebug> int main(int argc, char *argv[]) {QApplication a(argc, argv);QMessageBox …

K8S的二进制部署

K8S的源码包部署 搭建准备&#xff1a; k8smaster01&#xff1a;20.0.0.32 kube-apiserver kube-controller-manager kube-scheduler etcdk8smaster02&#xff1a;20.0.0.33 kube-apiserver kube-controller-manager kube-scheduler node节点01&#xff1a;20.0.0.34 …

二分查找及其复杂的计算

&#xff08;一&#xff09;二分查找及其实现 二分查找&#xff0c;也称为折半查找&#xff0c;是一种高效的搜索算法&#xff0c;用于在有序数组&#xff08;或有序列表&#xff09;中查找特定元素的位置。 二分查找的基本思想是将待查找的区间不断地二分&#xff0c;然后确…

支付宝沙箱环境配置结合内网穿透实现远程调试Java SDK接口

文章目录 1.测试环境2.本地配置2. 内网穿透2.1 下载安装cpolar内网穿透2.2 创建隧道3. 测试公网访问4. 配置固定二级子域名4.1 保留一个二级子域名4.2 配置二级子域名5. 使用固定二级子域名进行访问 1.测试环境 MavenSpring bootJdk 1.8 2.本地配置 获取支付宝支付Java SDK,…

Mybatis Mapper XML文件-参数(Parameters)

在之前的所有语句中&#xff0c;你看到了简单参数的例子。参数在MyBatis中是非常强大的元素。对于简单的情况&#xff0c;也就是90%的情况&#xff0c;它们并没有太多的复杂性&#xff0c;例如&#xff1a; <select id"selectUsers" resultType"User"&…

odoo17核心概念view2——view_service

这是view系列的第二篇文章&#xff0c;介绍view_service.js static\src\views\view_service.js 一、前端js /** odoo-module **/import { registry } from "web/core/registry"; import { UPDATE_METHODS } from "web/core/orm_service";export const vi…

H.264运动补偿(Motion Compensation)概念(块匹配、运动矢量和残差编码、块划分和运动估计)(运动估计算法:全搜索、钻石搜索、六边形搜索)

文章目录 H.264 运动补偿概念引言I. 运动补偿基本原理1.1 运动预测1.2 帧类型1.3 块匹配 II. 运动矢量和残差编码2.1 运动矢量2.2 残差编码 III. H.264 运动补偿技术难点3.1 块划分和运动估计3.2 残差编码3.3 B帧的预测 IV. H.264 运动补偿实现4.1 帧划分与运动估计4.2 残差编码…

Jmeter 压测 —— 非GUI模式执行实例!

1、上传脚本 把在Windows下调试好的脚本上传的Linux系统/home目录下。 注意&#xff1a;只留测试脚本&#xff0c;屏蔽其它监控组件&#xff0c;比如&#xff1a;查看结果树、聚合报告、监听器等。 2、执行脚本 ①输入命令执行脚本 jmeter -n -t case.jmx -l case.jtl -n&…

Servlet技术之Cookie对象与HttpSession对象

系列文章目录 提示&#xff1a;这里可以添加系列文章的所有文章的目录&#xff0c;目录需要自己手动添加 Servlet技术之Cookie对象与HttpSession对象 提示&#xff1a;写完文章后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 系列文章目录前…

神经网络:模型部署

【一】模型压缩的必要性与可行性&#xff1f; 模型压缩是指对算法模型进行精简&#xff0c;进而得到一个轻量且性能相当的小模型&#xff0c;压缩后的模型具有更小的结构和更少的参数&#xff0c;可以有效降低计算和存储开销&#xff0c;便于部署在端侧设备中。 随着AI技术的…

kubernetes(k8s)部署metrics及hpa-example示例

本例以kubernetes v1.26.0 为例&#xff0c;metrics-server版本为v.06.3&#xff0c;拉取源为阿里云提供 metrics yaml apiVersion: v1 kind: ServiceAccount metadata:labels:k8s-app: metrics-servername: metrics-servernamespace: kube-system --- apiVersion: rbac.auth…

LeetCode //C - 1493. Longest Subarray of 1‘s After Deleting One Element

1493. Longest Subarray of 1’s After Deleting One Element Given a binary array nums, you should delete one element from it. Return the size of the longest non-empty subarray containing only 1’s in the resulting array. Return 0 if there is no such subarr…

多组件卡片式问答引擎

#本篇文章联合同花顺人工智能领域开发者严同学创作 1.简介 为了满足用户个性化需求以及精细化运营&#xff0c;越来越多的企业推出多组件式的卡片问答&#xff0c;这种回答方式不会千篇一律&#xff0c;能够更好地为客户提供服务&#xff0c;帮助客户解决问题。 使用这种问答…

JAVA中的栈和堆

JAVA在程序运行时&#xff0c;在内存中划分5片空间进行数据的存储。分别是&#xff1a;1&#xff1a;寄存器。2&#xff1a;本地方法区。3&#xff1a;方法区。4&#xff1a;栈。5&#xff1a;堆。 基本&#xff0c;栈stack和堆heap这两个概念很重要&#xff0c;不了解清楚&…

从零实现一套低代码(保姆级教程) --- 【6】在项目中使用redux状态管理

摘要 在上一篇文章中的末尾&#xff0c;我们也完成了Input组件的属性面板配置。现在我们的低代码项目已经小有成就了。但是后面的内容还是不少的。 如果你是第一次看到这篇文章&#xff0c;那么请移步到第一节&#xff1a; 从零实现一套低代码&#xff08;保姆级教程&#xf…

防雷接地设备综合应用方案

防雷接地设备是一种用于保护建筑物、设备和人员免受雷电危害的设备。 防雷接地设备主要包括以下几种&#xff1a; 防雷针&#xff1a;防雷针是一种用于吸引雷电并将其导入地面的金属棒&#xff0c;通常安装在建筑物的最高点或其他易受雷击的位置。 防雷带&#xff1a;防雷带…

蓝桥1位运算

1.1 课程介绍_哔哩哔哩_bilibili &与 |或 ^异或 ~非 >>右移 <<左移 >>>0填充高位 >>符号位填充高位 用法&#xff1a;判断奇偶数 x&1 获取二进制位 交换两个整数的值 求绝对值 题1-1&#xff1a;如何找出数组中唯一成对的数 public static…