文件权限属性八进制表示法,chmod(文件权限属性更改),chown,chgrp指令,默认/实际起始权限与umask权限掩码关系,文件删除与粘滞位问题等

news2025/1/15 13:05:54

文件权限属性的八进制表示法

  1. 这个其实非常简单,因为文件权限属性也就三种,也就是可读,可写或者可执行。
  2. 然后对于这三种文件权限属性都是2元式的,要么行,要么不行,因此可以用0和1来表示,0表示没该权限,1反之。
  3. 然后对于其中的某一种用户文件权限身份,相当于都可以用三个0/1表示,那么整合起来相当于是一个八进制数,就那么简单。
  4. 在这里插入图片描述

文件权限更改之更改文件权限属性(chmod指令的语法与功能)

  1. 语法:chmod (u +/- r/w/x) (g +/- r/w/x) (o +/- r/w/x) 文件名
  2. 功能:更改文件权限属性 (只能由root 或者 文件拥有者完成)

实例演示

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

  1. 语法:chmod 三位八进制数(参照文件权限属性的八进制表示法) 文件名
  2. 功能:更改文件权限属性 (只能由root 或者 文件拥有者完成)

实例演示

在这里插入图片描述
在这里插入图片描述

文件权限更改之更改文件拥有者(chown指令的语法,功能与选项)

  1. 语法:chown 新任文件拥有者 文件名
  2. 功能:更改文件拥有者 (只能由root身份或者sudo指令提权)
  3. 选项: -R 递归修改目录及其下文件的拥有者

实例演示

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
补充:chown xxx:xxx 文件名 可以将文件拥有者与所属组一次性全部改掉

文件权限更改之更改文件所属组(chgrp指令的语法与功能)

  1. 语法:chgrp 新任文件所属组 文件名
  2. 功能:更改文件所属组 (只能由root身份或者sudo指令提权)
  3. 选项: -R 递归修改目录及其下文件的所属组

实例演示

在这里插入图片描述
在这里插入图片描述

(文件权限属性补充1)默认起始权限,实际起始权限,umask权限掩码以及换算关系

  1. 默认给普通文件的起始权限是666(文件权限属性的八进制表示法这个上面有讲过),默认给目录的起始权限是777。这个被称为文件默认起始权限属性值。
  2. 为什么我们创建出来一个普通文件或者目录,然后去查看他的文件权限属性,发现是664或775,为什么呢?
  3. 这里必须得引出一个新概念***:权限掩码umask***,凡是在umask当中出现的权限,不会在实际文件起始权限中出现。所以说就像一个过滤漏斗一样,尽管默认起始权限分别为777和666,但是当经过权限掩码过滤之后,由于权限掩码当中记录了一些权限,因此在umask当中出现的权限最终不会在文件权限当中出现。举个例子:在这里插入图片描述
  4. 不难发现:他们的关系如下:
    在这里插入图片描述
  5. umask 可以查看与修改:
    在这里插入图片描述
  6. 可以用umask来限定创建文件时的实际起始权限,比方说我要使得创建出来的目录或者文件都是只是可写的,那么umask应该设为0555
    在这里插入图片描述

(文件权限属性补充2)文件的删除问题

  1. 这个文件能不能被删除,注意我这边说的文件既包括目录,也包括普通文件。与他本身的权限属性没有关系,因为文件的权限决定不了他自己能不能被删。一个文件能否被删除并不是由文件本身决定,而是由这个文件所处的目录决定。
  2. 如果说这个文件所处的目录的w权限是放开的,那么用户可以对这个目录里面的各种文件进行删除,改动,创建等各种操作;如果说这个文件所处的目录的w权限是不放开的,那么这时候用户就干瞪眼没办法。
  3. 所以说文件能不能被删除,主要是看你这个文件所处的目录“保护不保护得了你”

(文件权限属性补充3)粘滞位与共享目录

  1. 首先***,不同用户之间是不可能去访问别的用户的家目录的***,因为你相当于是others,别人的家目录肯定是把others的w权限关掉的,基本上很大概率你是连家门口都进不去。
  2. 但有时候我们多个用户之间想要进行一个数据与文件的共享,因此这个共享文件肯定不能在任何一个人的家目录下面
  3. 那么我们因此得在其他地方,比如说在根目录下面创建一个共享目录(共享目录的创建只能由root完成),然后大家都把需要共享的数据与文件放在这个目录下面。
  4. 由于这个共享目录相当于它的拥有者与所属组是root,说其他用户它的用户文件权限身份都是others,那么这个共享目录对于others的w权限是必须得打开的,因为各种各样的用户都需要传入文件。
  5. 但是又带来一个问题,当把others的w权限打开之后,那岂不是在这个共享目录下面任何一个用户都可以删其他人的文件了吗?这就容易造成互删的风险,为了确保每个人不能去删别人上传在共享目录下面的文件,那又不能把这个w权限给关掉,是一个新的概念就出现了,叫做粘滞位
  6. 它实际上也是一个可执行权限(就是一种特殊的x权限),只不过他比较特殊而已,他是给目录设置的,注意:粘滞位是给目录设置的一种特殊的可执行权限。并且一般就是共享目录。
  7. 也就是说大家可以在目录中进行各自自己文件的增删查改,但是只允许文件拥有者或者root能够删除自己的文件,其他人一概不允许。
    8.
  8. 但实际上我们并不用去自己创建一个共享文件,在系统的根目录下面就有一个目录t mp,你会发现他就是带粘滞位的,因此不同用户想要去传递信息或通信的时候,可以将文件放在tmp目录下面
    在这里插入图片描述

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

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

相关文章

SAML协议— 理解SAML2 协议和联合身份验证流程

1、SAML协议概念 安全断言标记语言,简称SAML,是一个基于 XML 的开源标准数据格式,它在当事方之间交换身份验证和授权数据,尤其是在身份提供者和服务提供者之间交换。SAML解决的最主要的需求是基于Web的单点登录(SSO&a…

100 个 Go 错误以及如何避免:1~4

协议:CC BY-NC-SA 4.0 译者:飞龙 本文来自【OpenDocCN 饱和式翻译计划】,采用译后编辑(MTPE)流程来尽可能提升效率。 真相一旦入眼,你就再也无法视而不见。——《黑客帝国》 一、GO:学起来简单&…

再次比较以1为参照的6-3分布

( A, B )---1*30*2---( 1, 0 )( 0, 1 ) 让网络的输入只有1个节点,AB各由9张二值化的图片组成,让A中有3个0,6个1.B中全是1,排列组合A的所有可能,统计迭代次数的顺序。 得到数据 迭代次数平均值 A-B 迭代次数 F 9 …

5年经验还只会点点点,别等了,跳槽吧.....

随着工作年限的不断增长,感觉自己的技术水平与自己的工作年限严重不符。想跳槽出去换个新环境吧,又感觉自己的能力达不到心仪公司的标准,即使投了简历自己也没什么面试通知。就这样在原来的公司一天天的混日子,时间久了&#xff0…

「免费版Axure」原型设计工具!

Axure 是一款经典的原型设计工具,但需要下载电脑端软件使用,对新手要求较高,且在线协作效率低,使用成本较高。即时设计是一款免费在线原型设计工具,支持导入 Axure 文件进行二次布局、评审、演示和分享,让用…

GitLAB CI-CD入门

GitLab CI-CD入门 目录 1、GitLabCI/CD简介 GitLabCI/CD简介 GitLabCI/CD是GitLab内置的持续集成与持续部署系统 开源: CI/CD是开源GitLab社区版和专有GitLab企业版的一部分。(极狐)易于学习: 官方具有详细的学习操作文档。无缝集成: CI/CD…

操作系统原理大题

一、地址变换和求FAT表大小 某一页表内容自0~7依次为03; 07; 0B;11;1A;1D;20;22. 请计算页面大小为1K和4K时的逻辑地址134D对应的物理地址。 首先,将134D转换为二进制数为 0001001101001101 1k为2的10次方 从后往前占十位为 000100|1101001101 竖线前面的二进制转…

Promise的用法原理手写实现

Promise的用法、原理、手写实现 1. promise 入门简介 Promise 是用来解决异步编程的问题。 1.1 JS 中分同步Api 和 异步Api。 同步API&#xff1a;只有当前API执行完成后&#xff0c;才能继续执行下一个API for (let i 0; i < 10000; i) {console.log(i); } console.l…

09-DockerFile

文章目录 1 Dockerfile2 构建过程3 Dockerfile保留字3.1 FROM3.2 MAINTAINER3.3 RUN3.4 EXPOSE3.5 WORKDIR3.6 USER3.7 ENV3.8 VOLUME3.9 ADD3.10 COPY3.11 CMD3.12 ENTRYPOINT 4 构建镜像4.1 案例14.2 案例2 5 虚悬镜像 1 Dockerfile Dockerfile 是用来构建 Docker 镜像的文本…

浅谈JVM基本结构

目录 1.JVM概念 2.JVM基本结构 3.JVM存储数据案例 1.JVM概念 JVM是Java Virtual Machine&#xff08;Java虚拟机&#xff09;的缩写&#xff0c;JVM是一种用于计算设备的规范&#xff0c;它是一个虚构出来的计算机&#xff0c;是通过在实际的计算机上仿真模拟各种计算机功能…

SpringBoot【开发实用篇】---- 整合第三方技术(任务、邮件)

SpringBoot【开发实用篇】---- 整合第三方技术&#xff08;任务、邮件&#xff09; 1. 任务QuartzTask 2. 邮件发送简单邮件发送多组件邮件&#xff08;附件、复杂正文&#xff09; 1. 任务 springboot整合第三方技术第二部分我们来说说任务系统&#xff0c;其实这里说的任务系…

mysql中的binlog

目录标题 前言binlog有两个常用的使用场景 常用的binlog日志操作命令查看所有binlog日志列表 【show master logs;】查看master状态&#xff0c;即最后&#xff08;最新&#xff09;一个binlog日志的编号名称&#xff0c;及其最后一个操作事件pos结束点(Position)值。【show ma…

Net跨平台UI框架Avalonia入门-安装和使用

Avalonia UI是是Net的跨平台UI框架&#xff0c;支持 Windows、Linux、iOS 和 Android&#xff0c;与Net其他UI框架相比&#xff0c;主要是支持Linux。在国产化的需求下&#xff0c;对于C#开发的程序员&#xff0c;Avalonia适合用来开发Linux的桌面客户端。 Avalonia 安装 安装…

SpringBoot——日志

简单介绍&#xff1a; 在我们的程序开发中&#xff0c;日志的存在是必不可少的&#xff0c;日志可以帮助我们观察程序的运行过程&#xff0c;报错信息&#xff0c;各种警告&#xff0c;在我们调试程序的时候起到了非常大的作用。那么在SpringBoot中&#xff0c;我们在每次启动…

6.4.1最小生成树(Prim和kruskal算法)

生成树的概念&#xff1a; 连通图的生成树是包含图中全部顶点的一个极小连通子图 &#xff08;边尽可能的少&#xff0c;但要保持连通&#xff09; 若图中顶点数为n&#xff0c;则它的生成树中含有n-1条边。对于生成树而言&#xff0c;若看去他的一条边&#xff0c;则会变成…

软件测试太卷了,三个练手的软件测试实战项目偷偷提升自己(附全套视频跟源码)

项目一&#xff1a;12306抢票项目 项目测试目的 学会Selenium定位web元素的方法 熟练浏览器调试工具使用 项目主体步骤 1&#xff09; 人工走一遍流程&#xff0c;对自动化的流程心中有数 2&#xff09; 按步骤拆分&#xff0c;然后对每一个小步骤编写自动化脚本 3&#xf…

1.8G专网5G工业路由器助力智能电网-电力物联网方案

随着智能电网的普及与使用&#xff0c;电力终端的数量也日益剧增&#xff0c;由于间距较远、位置偏僻的特性&#xff0c;造成监管难、效率低、成本高等管理维护难题。 5G的价值也体现了由实验室走向垂直行业应用&#xff0c;赋予各行各业高效组网、高速用网的应用体验。智联物联…

PowerBi连接MySQL提示需安装组件才能使用,本人删去已经下载好的组件,再做一份详细教程。

问题 当我们用PowerBi连接Mysql时候&#xff0c;他突然提示我们需要安装组件。 解决 检查自己的MySQL版本 打开cmd运行框,输入命令mysql -uroot -p,再输入数据库密码 输入select version(); 我这里是8.0.16版本&#xff0c;记住自己的版本号 下载 mysql connector https:/…

在 EKS 上部署 HummerRisk

HummerRisk 是开源的云原生安全平台&#xff0c;以非侵入的方式解决云原生环境的安全和治理问题。核心能力包括混合云的安全治理和容器云安全检测。本文讲介绍如何在 EKS 上部署 HummerRisk。 EKS 简介 Amazon Elastic Kubernetes Service&#xff08;Amazon EKS&#xff09;…

python创建用户界面之PyQt5的使用

首先我们winR输入cmd 有两种方法下载PyQt5 方法一&#xff1a; pip install PyQt5 pip install PyQt5-tools 方法二&#xff1a; pip install PyQt5 -i https://pypi.douban.com/simple pip install PyQt5-tools -i https://pypi.douban.com/simple 下载好了之后我们打开 Pych…