【Linux进阶之路】基本权限的理解

news2024/11/17 10:40:55

文章目录

  • 一.用户
    • 1.分类
    • 2.su
    • 3.su-
    • 4.sudo
  • 二.文件
    • 1.文件分类
    • 2.文件权限
    • 3.文件权限的身份
    • 4.chmod——改写文件权限
      • 第一种方式
      • 第二种方式
    • 5.chown——改写文件拥有者身份
    • 6.chgrp ——改写文件所属组身份
    • 7.umask ——设置权限掩码
    • 8.目录权限
    • 9.粘滞位——特殊的可执行权限

一.用户

1.分类

一张图带你认清用户:
在这里插入图片描述

2.su

示例:
在这里插入图片描述

3.su-

示例:
在这里插入图片描述

4.sudo

示例:
在这里插入图片描述

二.文件

  • 我们看着下图红的部分可能有点懵,不急我们一个一个说。
    在这里插入图片描述

1.文件分类

我们先看第一部分——文件的分类
在这里插入图片描述
这时d就是——文件目录

2.文件权限

  • 文件的权限分为:

  • 读权限——r,

  • 写权限——w,

  • 以及可执行权限——x,

  • 对应位置没有权限—— -

  • 到这里我们再看最初给的那张图片,或许理解了一点。

  • 但为啥有3组权限呢?这3组权限有什么意义吗?我们接着讲。

3.文件权限的身份

  • 假如你建立了一个文件,这时你是这个文件的拥有者
  • 当你和另一个人分享一个文件时,另一个人是这个文件的所属组,也就是你跟另一个人拉了一个群私聊。
  • 那么再出现一个人想要看这个文件时,那么这个人就是其他人

  • 说明:用户是人名,扮演的角色就是其身份,比如张三是校长,张三就是人名——用户,校长就是角色——身份。

  • 总结
    有了这几个概念,我们再来看分析最开始的那张图。

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

  • 补充:连接数指的是目录下的目录文件数目(这个数目=隐藏目录数目+普通目录数目)
  • 说明:当拥有者与所属组相同时,优先使用拥有者的权限。

4.chmod——改写文件权限

  • 用chmod改权限,其权限身份必须是拥有者,或者用户是root用户。
  • 创建一个test.c文件

第一种方式

在这里插入图片描述

第二种方式

  • 使用二进制来表示文件的指定位置上的权限(指定位置上的权限是确定的),0代表指定位置上没有权限,1代表指定位置上有权限。
  • 举例:
  • 777 (8进制)可看成 111 111 111 这是对文件的所有位置都加上权限。
  • 000 这是文件的所有位置都取消权限。

同样的操作可以写成:
在这里插入图片描述

5.chown——改写文件拥有者身份

  • 说明:普通用户改写文件权限身份,需经过另一个权限身份的同意,因此通常操作不被允许。而root用户,则不需要。

  • 我们先要使用root账号,并且要创建两个用户名——这是我创建的shun_hua 以及 tmp

在这里插入图片描述

  • 这时我们就把文件身份的拥有者改为了tmp

6.chgrp ——改写文件所属组身份

在这里插入图片描述

  • 此时我们要想再改回来呢?
  • 只需一条指令
    在这里插入图片描述

7.umask ——设置权限掩码

  • 普通文件的默认权限是——666
  • 目录文件的默认权限是——777

我们创建一个文件和一个目录:
在这里插入图片描述

  • 目录的权限是——755
  • 文件的权限是——644

此时我们再看一下掩码:
在这里插入图片描述

  • 掩码 —— 22

那这是怎么计算的呢?其实要按照 ——默认权限 &(~掩码)

在这里插入图片描述

8.目录权限

  • r ——能进入目录,但是不能对目录的内容进行查看
  • w ——能进入目录,但是不能对目录的内容进行修改,删除,创建 。
  • x ——不能进入目录,也不允许对目录进行指令操作。
  • 用户目录的默认权限是——700,只能拥有者/root进行操作。

9.粘滞位——特殊的可执行权限

  • 说明:是否对一个文件进行删除,并不由该文件的权限决定,而由该文件所处的目录的用户权限进行决定。

问题引出:如果设置一个共享目录,这个目录对其他人的权限是:可读,可写,可执行。

  • 此时,一个用户在此目录下创建一个文件之后,另一个用户在此目录下可对改文件进行删除工作,那么如果不想另一用户对此文件进行删除的话,我们就只好把其它人的写权限去掉,此时原来用户也无法创建文件了,这该怎么办呢?

  • 答案——使用粘滞位。

  • 粘滞位只允许文件的拥有者/root对文件进行删除的工作,而其它用户则对该文件删除不了。

  • 因此:共享目录下设置粘滞位是很有必要的,也的确如此。

  • 补充:Linux系统的根目录下,默认提供了一个共享目录tmp。

在这里插入图片描述

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

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

相关文章

关于Markdown文件的处理【笔记】

关于Markdown文件的处理【笔记】 前言推荐关于Markdown文件的处理一、md文件转word文档1 准备2 打开3 转为word文档4 导出结果5 打开 二、word文档转md文件1 准备2 导入3 打开4 显示图片5 打开 三、导入到CSDN中1 选择导入2 查看 四、导入设置1 前言2 导入设置3 修改配置 最后 …

ES6之生成器

文章目录 前言一、生成器是什么?二、生成器总结 前言 生成器 一、生成器是什么? 生成器就是一个特殊的函数,实现异步编程。格式function *名称(){...} (这个*靠近function写,靠近名称写,或者两边空格都不靠近均正确)…

[比赛简介]Parkinson‘s Freezing of Gait Prediction

比赛链接:https://www.kaggle.com/competitions/tlvmc-parkinsons-freezing-gait-prediction 比赛简介 本次比赛的目标是检测步态冻结(FOG),这是一种使人衰弱的症状,困扰着许多帕金森病患者。您将开发一个机器学习…

YOLO V3 SPP ultralytics 第三节:关于yolo 中cfg的网络配置信息和读取cfg配置文件

目录 1. 介绍 2. 关于yolo的cfg网络配置文件 2.1 关于卷积层 2.2 关于池化层 2.3 关于捷径分支shortcut 2.4 关于route 层 2.5 关于上采样层 2.6 关于yolo层 3. 解析cfg 文件 4. 代码 1. 介绍 根据 第二节 的步骤,生成了属于自己的 my_yolov3.cfg 配置…

Python 墨西哥湾流(gulf stream)可视化

背景介绍 墨西哥湾流和黑潮分别是北半球两支强大的西边界流,墨西哥湾流的流速还要强于黑潮,也是温盐环流的重要组成部分。 引入涡度的概念,将涡度分为两个部分: 1、行星涡度,记为 f f f,与地球自转有关…

【软考数据库】第十四章 数据库主流应用技术

目录 14.1 分布式数据库 14.2 Web与数据库 14.3 XML与数据库 14.4 面向对象数据库 14.5 大数据与数据库 14.6 NewSQL 前言: 笔记来自《文老师软考数据库》教材精讲,精讲视频在b站,某宝都可以找到,个人感觉通俗易懂。 14.1 …

Springcloud1---->openFeign

目录 简介快速入门导入依赖开启Feign配置Feign客户端接口Feign使用小结feign feign配置负载均衡feign配置Hystix支持 简介 Feign可以把Rest的请求进行隐藏,伪装成类似SpringMVC的Controller一样。你不用再自己拼接url,拼接参数等等操作,一切…

WebSocket 详解,以及用QWebSocket 实现服务端和客户端(含代码例子)

目录 1、WebSocket 诞生背景 2、WebSocket的特点: 3、 WebSocket 简介 4、WebSocket 优点 5、QWebSocket通讯—客户端: 6、QWebSocket通讯—服务端: 1、WebSocket 诞生背景 早期,很多网站为了实现推送技术,所用的技术都…

初始Linux发展

目录 前言 Linux概念: 一.Linux发展历史 二.Linux的发展现状 三.发行版本 四.Linux 环境的搭建方式 主要有三种 : 4.6下载方式: 五.XShell软件 前言 Linux概念: Linux,全称GNU/Linux,是一套免费使用和自由传播的…

python中的对象和变量的关系

这里写目录标题 对象简介对象的结构变量和对象 对象简介 Python是一门面向对象的编程语言! 一切皆对象! 程序运行当中,所有的数据都是存储到内存当中然后再运行的! 对象就是内存中专门用来存储指定数据的一块区域 对象实际上就是…

《计算机网络—自顶向下方法》 Wireshark实验(九):DHCP 协议分析

DHCP(Dynamic Host configuration protocol)动态主机配置协议,它可以为客户机自动分配 IP 地址、子网掩码以及缺省网关、DNS 服务器的 IP 地址等 TCP/IP 参数, 简单来说,就是在 DHCP 服务器上有一个数据库,…

Go开发PaaS平台核心功能

Go开发PaaS平台核心功能 1 云原生PaaS平台介绍 随着云计算的发展,越来越多的企业逐步的把IT资源迁移到云上。PaaS平台作为基础设施基座,可以帮助企业快速构建功能丰富的容器云平台,提升交付效率,降低成本。 [1.1] 云原生平台使…

【SpringMVC框架】--01.简介、入门、@RequestMapping、获取请求参数、域对象共享数据、视图、RestFul

文章目录 SpringMVC1.简介1.1 什么是MVC1.2 什么是SpringMVC1.3 SpringMVC的特点 2.编写HelloWorld2.1 创建maven工程2.2 配置web.xml2.3 创建请求控制器2.4 创建springMVC的配置文件2.5测试HelloWorld2.6总结 3.RequestMapping注解3.1 RequestMapping注解的功能3.2 RequestMap…

Java自定义类:打造属于自己的编程世界

🧑‍💻CSDN主页:夏志121的主页 📋专栏地址:Java核心技术专栏 目录 一、自定义类示例 二、隐式参数与显式参数 三、封装的优点 自定义类是Java中最基本、也是最重要的组成部分之一,使用者可以根据需求创建…

【Go微服务开发】gin+grpc+etcd 重构 grpc-todolist 项目

写在前面 最近稍微重构了之前写的 grpc-todolist 模块 项目地址:https://github.com/CocaineCong/grpc-todoList 1. 项目结构改变 与之前的目录有很大的区别 1.1 grpc_todolist 项目总体 1.1.1 改变前 grpc-todolist/ ├── api-gatway // 网关模块 ├── ta…

【小白版】最简单的 goland package 教程包括自定义包的使用

一、Hello World 最简单的教程,就需要从最简单的事情开始说起: mkdir myappcd myappgo mod init myapp // myapp是主项目名 这行命令将生成一个go.mod文件,这个文件会记录所有的包的依赖关系,一个空的go.mod只有项目名称和go版本…

智能指针详解

概念 在c中,动态内存的管理式通过一对运算符来完成的:new,在动态内存中为对象分配空间并返回一个指向该对象的指针,我们可以选择对对象进行初始化;delete,接受一个动态对象的指针,销毁该对象,并…

gitlab建立新分支提交,cherry-pick部分更新

gitlab介绍 GitLab是一个基于Git的在线代码托管和协作平台,提供源代码管理、单元测试、CI/CD构建、代码审查等功能。它是一个开放源代码的Git仓库管理系统,使用 Ruby on Rails 构建GitLab 不仅具有自己的 Git 仓库管理系统,还具有很多其他的…

AI 加持的代码编写实战:快速实现 Nginx 配置格式化工具

本篇文章聊聊如何使用 GPT 快速完成一个开源小项目,解决实际的问题,顺手点亮 GitHub 上 Nginx 开源社区的贡献者图标。 “Talk is Cheap,Show you the Code。” 写在前面 整理了一篇本该上个月就发出的内容。 前段时间,有个投…

浅谈JDK8的垃圾回收器

JDK1.8默认使用Parallel Scavenge作为年轻代的垃圾回收器,使用Parallel Old作为老年代的垃圾回收器,又称为PS MarkSweep。 Parallel Scavenge 收集器 Parallel Scavenge收集器又称为吞吐量优先收集器,和ParNew收集器类似,是一个新生代收集器。…