Linux下的权限

目录

1.shell命令以及运行原理

1.1原理上初步理解shell外壳

1.1.1为什么要有shell外壳 

1.1.2shell外壳是什么 

1.1.3怎么办(shell外壳的基本运行原理) 

2.Linux下的用户 

3.Linux权限管理 

3.1.文件访问者的分类(人) 

 3.2文件权限的分类

3.3如何查看文件的权限 

 3.4如何修改权限

3.4.1 chmod 

3.4.1.2Linux下文件权限的修改(八进制)

4 .权限验证 

4.1Linux下的权限匹配机制 

4.2修改文件的拥有者(chown)

4.3修改文件或目录的所属组(chgrp)

5.文件类型 

5.1Linux下的文件后缀

5.2文件类型

 5.3 file指令:

6.目录权限

7.权限掩码

8.umask 

9.粘滞位 


1.shell命令以及运行原理

Linux 严格意义上说的是一个操作系统,我们称之为 核心( kernel ,但我们一般用户,不能直接使用 kernel 。 而是通过kernel 外壳 程序,也就是所谓的 shell ,来与 kernel 沟通。如何理解?为什么不能直接使用 kernel ? 从技术角度,Shell 的最简单定义:命令行解释器( command Interpreter )主要包含
将使用者的命令翻译给核心( kernel )处理。
同时,将核心的处理结果翻译给使用者。

对比 windows GUI ,我们操作 windows 不是直接操作 windows 内核,而是通过图形接口,点击,从而完成我们的操作(比如进入D 盘的操作,我们通常是双击 D 盘盘符 . 或者运行起来一个应用程序)。
shell 对于 Linux ,有相同的作用,主要是对我们的指令进行解析,解析指令给 Linux 内核。反馈结果在通过内核运行出结果,通过shell 解析给用户。

帮助理解:如果说你是一个闷骚且害羞的程序员,那 shell 就像媒婆,操作系统内核就是你们村头漂亮的 且有让你心动的MM 小花。你看上了小花,但是有不好意思直接表白,那就让你你家人找媒婆帮你提 亲,所有的事情你都直接跟媒婆沟通,由媒婆转达你的意思给小花,而我们找到媒婆姓王,所以我们叫它王婆,它对应我们常使用的bash

1.1原理上初步理解shell外壳

1.1.1为什么要有shell外壳 

1.1.2shell外壳是什么 

1.1.3怎么办(shell外壳的基本运行原理) 

我们会发现,我们的命令行结束器并不叫:shell 而是 bash、sh 

这是为什么?

举个列子:假如shell是媒婆,那么bash就是 李婆,sh是王婆

shell是命令行解释器,bash,sh就是明确的哪一款命令行解释器

每次你进行xshell登录的时候,OS都要给你这个用户的当前登录,重新启动配备一个bash(人手一个王婆) 


2.Linux下的用户 


3.Linux权限管理 

3.1.文件访问者的分类(人) 

权限本质上是限制,就是能和不能的问题。

对应的操作对象,需要有满足人的需求的属性。

如:爱奇艺能满足我看电影的需求,用VIP和普通用户对我进行了限制,我不是VIP就看不了VIP电影。所以我只会去爱奇艺看电影,而不会去爱奇艺上刷题。

没有对应的属性,就不用专门设置权限来限制用户。

就好比,爱奇艺不会专门发公告说普通用户不能在爱奇艺上刷题 


 3.2文件权限的分类


3.3如何查看文件的权限 

 3.4如何修改权限

在Linux下:拥有者 user   简称 u

                    所属组 group 简称 g

                    其他     other  简称 o 

3.4.1 chmod 

语法: chmod [参数] 权限 文件名

功能: 设置文件的访问权限 

常用选项:

R -> 递归修改目录文件的权限
说明:只有文件的拥有者和root才可以改变文件的权限

chmod格式

① 用户表示符+/-=权限字符

+:向权限范围增加权限代号所表示的权限
-:向权限范围取消权限代号所表示的权限=:向权限范围赋予权限代号所表示的权限

用户符号:

        u:拥有者

        g:拥有者同组用

        o:其它用户

        a:所有用户
 

 

这里我们发现如果要对一个文件进行权限的大幅度修改时一个个写就比较麻烦。

所以,引入一个 a就代表所有人,不用再写u g o 了 。

 

3.4.1.2Linux下文件权限的修改(八进制)


4 .权限验证 

那么我们对这些权限进行验证一下 ,我们看看如果没有这些权限我们无法完成什么操作。

上面验证了读权限(r)和写权限(w),没有是会发生什么情况。

接下来让我们验证一下可执行(x)权限。 

可执行权限是否代表着,这文件就一定能被执行吗? 

很明显不是的。 

4.1Linux下的权限匹配机制 


4.2修改文件的拥有者(chown)

 格式: chown [参数] 用户名 文件名

功能:修改文件的拥有者 

 实例:

# chown user1 f1

# chown -R user1 filegroup1


4.3修改文件或目录的所属组(chgrp)
 


功能:修改文件或目录的所属组
格式: chgrp [参数] 用户组名 文件名

常用选项: -R 递归修改文件或目录的所属组

这个指令和上面的一样,进行操作的时候也需要超级权限 

 

5.文件类型 

5.1Linux下的文件后缀

window下文件类型用后缀表示,如 .txt .png

文件类型表示了文件属于哪一个类别,可以被那些软件操作 

 第一位表示:文件类型

LInux下不通过后缀来标识文件类型(不代表LInux下不用后缀)

但是,Linux不用文件后缀,不代表这这个文件后缀就无用。

在Linux文件之上的很多:软件,编译器。。。依旧需要文件后缀来识别文件。 

那么我们该以怎么样的态度对待文件后缀呢?

        我们依旧应该使用文件需要:即使文件后缀Linux不用,但是人要看,软件也要看 。

5.2文件类型

d :文件夹:文本,源代码,图片,视频,可执行
- :普通文件
l :软链接(类似 Windows 的快捷方式)
b :块设备文件(例如硬盘、光驱等)
p :管道文件
c :字符设备文件(例如屏幕等串口设备)
s :套接口文件

就是,Linux环境下有一切皆文件的概念,所以,Linux把很多其他东西都认为是文件 

 

 5.3 file指令:

功能说明:辨识文件类型。

语法file [选项] 文件或目录...  

常用选项
-c 详细显示指令执行过程,便于排错或分析程序执行的情形。
-z 尝试去解读压缩文件的内容。

 


6.目录权限

可执行权限 : 如果目录没有可执行权限 , 则无法 cd 到目录中 .
可读权限 : 如果目录没有可读权限 , 则无法用 ls 等命令查看目录中的文件内容 .
可写权限 : 如果目录没有可写权限 , 则无法在目录中创建文件 , 也无法在目录中删除文件 .
可以利用控制变量法去实验(指令行太长了,我就不贴上来了)

 


 

7.权限掩码

 

新建文件夹默认权限 =0666 (一般文件不需要可执行)
新建目录默认权限 =0777(目录文件确实需要可执行)
但实际上你所创建的文件和目录,看到的权限往往不是上面这个值。
原因就是创建文件或目录的时候还要受到 umask的影响。
假设默认权限是 mask ,则实际创建的出来的文件权限是 : mask & ~umask

 

 

8.umask 

功能 : 查看或修改文件掩码

格式umask 权限值 

说明 :将现有的存取权限减去权限掩码后,即可产生建立文件时预设权限。超级用户默认掩码值为 0022 ,普通用户默认为0002

 

 

9.粘滞位 

我们需要明白:对于一个文件能否被删除并不取决于文件的本身!!

                        取决于该用户对于文件所在目录是否拥有写权限。

如果我们需要对一个在一个特定的目录下,实现文件的共享呢? 

为了实现这个多个用户之间的数据共享,所以我们就需要将other的特定目录权限rwx全部放开。 

这时候确实实现了文件之间数据的共享。但是,将全部权限放开了之后,那么任何人都可以来删除我的文件。(所以此时我们就需要一个全新的权限) 

为了解决这个不科学的问题, Linux引入了粘滞位的概念。 

当一个目录被设置为"粘滞位"(chmod +t),则该目录下的文件只能由:

一、超级管理员删除
二、该目录的所有者删除
三、该文件的所有者删除

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

C语言 数组—— 一维数组下标越界问题分析

目录 数组元素的访问 一维数组元素的越界访问 二维数组元素的越界访问 小结 数组元素的访问 访问数组元素时, 下标越界 是大忌!  编译器通常不检查下标越界,导致程序运行时错误  下标越界,将访问数组以外的空间  …

vscode插件-03 PHP

PHP Intelephense 如果php在远程计算机上,要把插件安装在远程,而不是本地。 这个插件,要求php版本大于7,且设置环境变量(好像不一定要设置)。 设置里面搜索php.executablePath,打开setting.js…

element-ui 实现输入框下拉树组件(2024-05-23)

用element-ui的 el-input&#xff0c;el-tree&#xff0c;el-popover组件组合封装 import url("//unpkg.com/element-ui2.15.14/lib/theme-chalk/index.css"); <script src"//unpkg.com/vue2/dist/vue.js"></script> <script src"//…

索引下推详情-简单入手

一.概念 索引下推&#xff08;Index Pushdown&#xff09;MySQL5.6添加的&#xff0c;是一种优化技术&#xff0c;用于在查询执行时将部分计算移动到存储引擎层&#xff0c;从而减少数据传输和计算的开销&#xff08;减少回表查询次数&#xff09;&#xff0c;提高查询性能。 …

【软件工程】【23.04】p1

关键字&#xff1a; 软件模型、提炼、加工表达工具、通信内聚、访问依赖、边界类交互分析、RUP核心工作流、首先测试数据流、软件验证过程、CMMI过程域分类工程类&#xff1b; 软件工程目的、功能需求是需求的主体、结构化方法、耦合、详细设计工具、类、类图、RUP采用用例技…

LeetCode/NowCoder-栈和队列OJ练习

孜孜不倦&#xff1a;孜孜&#xff1a;勤勉&#xff0c;不懈怠。指工作或学习勤奋不知疲倦。&#x1f493;&#x1f493;&#x1f493; 目录 说在前面 题目一&#xff1a;括号匹配问题 题目二&#xff1a;用队列实现栈 题目三&#xff1a;用栈实现队列 题目四&#xff1a;设…

不同网段的通信过程

这里的AA和HH指的是mac地址&#xff0c;上面画的是路由器 底下的这个pc1&#xff0c;或者其他的连接在这里的pc&#xff0c;他们的默认网关就是路由器的这个192.168.1.1/24这个接口 来看看通信的过程 1、先判断&#xff08;和之前一样&#xff09; 2、去查默认网关&#xf…

Matlab读取Swarm球谐系数,并绘制EWH全球格网图(存在疑问)

ICGEM官网下载 COST-G发布的4040的球谐系数 close all; clearvars -except; % addpath(E:\Code\Tool\Function\GRACE_functions); dir_degree_1 E:\Code\GRACE_data\Degree_1\deg1_coef.txt; dir_c20 E:\Code\GRACE_data\Degree_2\C20_RL06.txt; myDir_Swarm E:…

微服务项目收获和总结---第5天(定时发布)

延迟任务 目录 延迟任务技术对比&#xff1a; Redis实现定时任务&#xff1a;​编辑新增任务&#xff1a;取消任务&#xff1a;拉取任务&#xff1a;Zset定时刷新数据到List中&#xff1a;分布式锁实现定时任务只刷新一次&#xff1a; 技术对比&#xff1a; Redis实现定时任…

万界星空科技定制化MES系统帮助实现数字化生产

由于不同企业的生产流程、需求和目标各异&#xff0c;MES管理系统的个性化和定制化需求也不同。有些企业需要将MES管理系统与ERP等其他管理系统进行集成&#xff0c;以实现全面的信息共享和协同工作。有些企业需要将MES管理系统与SCADA等控制系统进行集成&#xff0c;以实现实时…

极验3逆向 JS逆向最新点选验证码 逆向分析详解

目录 声明&#xff01; 一、请求流程分析 二、w参数生成位置 三、主要问题 四、结果展示 原创文章&#xff0c;请勿转载&#xff01; 本文内容仅限于安全研究&#xff0c;不公开具体源码。维护网络安全&#xff0c;人人有责。 声明&#xff01; 本文章中所有内容仅供学习交流…

K8s种的service配置

什么是service 官方的解释是:   k8s中最小的管理单元是pod&#xff1b;而service是 将运行在一个或一组 Pod 上的网络应用程序公开为网络服务的方法;   Kubernetes 中 Service 的一个关键目标是让你无需修改现有应用以使用某种服务发现机制。 你可以在 Pod 集合中运行代码…

MySQL(三)查询

1、单表和多表查询 1.1 算术运算符、比较运算符及特殊运算符 1)MySQL的算术运算符 select 0.1+0.3333,0.1-0.3333,0.1*0.3333,1/2,1%2; select 1/0,100%0; select 3%2,mod(3,2); 2)MySQL的比较运算符 select 1=0,1=1,null=null; select 1<>0,1<>1,null<&…

音乐系统java在线音乐网站基于springboot+vue的音乐系统带万字文档

文章目录 音乐系统一、项目演示二、项目介绍三、万字项目文档四、部分功能截图五、部分代码展示六、底部获取项目源码和万字论文参考&#xff08;9.9&#xffe5;带走&#xff09; 音乐系统 一、项目演示 在线音乐系统 二、项目介绍 基于springbootvue的前后端分离在线音乐系…

英特尔LLM技术挑战记录

英特尔技术介绍&#xff1a; Flash Attention Flash Attention 是一种高效的注意力机制实现&#xff0c;旨在优化大规模 Transformer 模型中的自注意力计算。在深度学习和自然语言处理领域&#xff0c;自注意力是 Transformer 架构的核心组件&#xff0c;用于模型中不同输入元…

Java 文件操作和输入输出流

在 Java 编程中&#xff0c;文件操作和输入输出流是非常常见和重要的任务&#xff0c;它们允许你读取和写入文件、处理数据流等。 文件操作概述 文件操作是指对文件进行创建、读取、写入、删除等操作的过程。在 Java 中&#xff0c;文件操作通常涉及到使用文件对象、输入输出…

聚合网卡和Wondershaper限速的一些问题(速度减半问题)

首先我们来了解一下聚合网卡&#xff1a; 聚合网卡&#xff0c;又称为链路聚合组&#xff08;LAG, Link Aggregation Group&#xff09;、端口汇聚&#xff08;Port Trunking&#xff09;、以太通道&#xff08;Ethernet Bonding&#xff09;等&#xff0c;是一种网络技术&…

python基础知识:py文件转换为jupyter文件

搜索了很多&#xff0c;都没什么用&#xff0c;会出现一些json错误&#xff0c;最终直接新建文件成功: 在自己电脑安装Anaconda&#xff0c;安装jupyter notebook&#xff0c;输入命令打开jupyter notebook&#xff1a; 在Anoconda命令行中cd到自己要转换文件的地址&#xff0…

【css3】01-css3新特性样式篇

目录 1 背景 1.1 设置背景图片的定位 1.2 背景裁切-规定背景的绘制区域 1.3 设置背景图片尺寸 2 边框 2.1 盒子阴影box-shadow 2.2 边框图片border-image 3 文本 -文字阴影text-shadow 1 背景 1.1 设置背景图片的定位 background-origin&#xff1a;规定背景图片的定位…