当前位置: 首页 > news >正文

Linux权限命令详解

Linux权限命令详解

文章目录

  • Linux权限命令详解
    • 一、什么是权限?
    • 二、权限的本质
    • 三、Linux中的用户
    • 四、linux中文件的权限
      • 4.1 文件访问者的分类(人)
      • 4.2 文件类型和访问权限(事物属性)
    • 五、快速掌握修改权限的做法【第一种】
      • 5.1 修改拥有者的权限
      • 5.2 修改所属组的权限
      • 5.3 修改other的权限
      • 5.4 修改多个角色的权限
      • 5.5 一键添加或删除所有权限
      • 5.6 更改文件的拥有者
      • 5.7 更改文件的所属组
      • 5.8 同时更改拥有者和所属组
    • 六、快速掌握修改权限的做法【第二种】
      • 6.1 八进制
    • 七、文件类型
    • 八、可执行权限
    • 九、创建文件的默认权限
      • 9.1 权限掩码
      • 9.2 修改umask
    • 十、目录的权限

一、什么是权限?

权限就是通过一定的条件,拦住一部分人,给另一部分人权利,来访问某种资源,比如vip,门禁之类的

二、权限的本质

权限和人有关,权限和事物的属性有关

权限=人+事物属性有关【人也就是相当于角色】

三、Linux中的用户

  • linux有root用户【超级管理员用户】,普通用户,那么我们怎么切换这两种用户呢?

  • 切换root用户

su -
  • 切换普通用户就是su后面加个用户名
su 用户名
  • 在linux中有三种“人”【角色】:拥有者,所属组,other

  • 其中第一个lin就是拥有者,第二个是所属组,其他就是other

在这里插入图片描述

  • su 用户名,是从root变成普通用户,刚刚上面也说了

  • 但是我不想直接变成root,但是我想以root的身份执行一个工作,怎么做呢?

    • 在执行命令前加上一个sudo

在这里插入图片描述

  1. 那么为什么sudo对指令进行提权的时候,输入的是我们自己密码?那样不是很不安全,用root身份想干啥干啥
  2. 默认普通目前无法执行sudo ,暂时不解决,之后用vim再来解决这个问题

四、linux中文件的权限

4.1 文件访问者的分类(人)

  • 文件和文件目录的所有者:u—User(中国平民 法律题)
  • 文件和文件目录的所有者所在的组的用户:g—Group(不多说)
  • 其它用户:o—Others (外国人)

4.2 文件类型和访问权限(事物属性)

在这里插入图片描述

在这里插入图片描述

  • 文件的属性权限一般有三种

    • r,读
    • w,写
    • x,可执行权限
  • 我们来看下面这里

[lin@shilin lesson1]$ ls -l
total 0
-rw-rw-r-- 1 lin lin 0 Dec  8 10:39 test.txt
[lin@shilin lesson1]$ 
  • 其中-rw-rw-r--是七个字符,我们先不管第一个字符
  • 来看后6个,33为一组,分别对应:拥有者,所属组,other
    • 第一个字符:是否具有读权限,【如果是,就r,否则,就是-】
    • 第二个字符:是否具有写权限,【如果是,就是w,否则,就是-】
    • 第二个字符:是否具有可执行权限,【如果是,就是x,否则,就是-】

五、快速掌握修改权限的做法【第一种】

在这里插入图片描述

  • 一个文件的权限,谁能修改?

    • 文件的拥有者
    • root
  • 用命令怎么修改呢

5.1 修改拥有者的权限

减拥有者的权限

chmod u-w test.txt

在这里插入图片描述

加拥有者的权限

chmod u+rw test.txt

在这里插入图片描述


5.2 修改所属组的权限

减所属组的权限

chmod g-rw test.txt

在这里插入图片描述

加所属组的权限

chmod g+rw test.txt

在这里插入图片描述


5.3 修改other的权限

减other的权限

chmod o-rw test.txt

在这里插入图片描述

加other的权限

chmod o+r test.txt

在这里插入图片描述


5.4 修改多个角色的权限

那我想更改多个"人"【角色】的权限,怎么修改呢?
多个权限之间价格逗号即可~~【注意:一定是英文的!】

批量减少权限

chmod u-w,g-w test.txt

在这里插入图片描述

批量添加权限

chmod u+w,g+w,o+w test.txt

在这里插入图片描述

删除所有权限

chmod u-rw,g-rw,o-rw test.txt

在这里插入图片描述


5.5 一键添加或删除所有权限

  • 这里的a就是all的意思【所有】

添加所有权限

chmod a+r test.txt

在这里插入图片描述


删除所有权限

chmod a-r test.txt

在这里插入图片描述

  • 对于普通用户,自身要受到对应权限的约束,即使这个文件是自己的!

在这里插入图片描述

  • 对于root用户,不受权限约束的!

在这里插入图片描述

  • 对于其他用户,文件对应的是other选项,这个选项是没有读和写权限的

在这里插入图片描述

注意:对于文件的拥有者,如果删除了文件的拥有者权限,但是所属组的没有删除,它也会禁止读写操作

在这里插入图片描述

结论:权限只会匹配一次!

5.6 更改文件的拥有者

chown root test.txt

在这里插入图片描述


我们回到上面的那里

  • 这个时候我们把拥有者的改成root用户,但是所属组还是原来的

在这里插入图片描述

结论:身份识别的时候只识别一次,一旦匹配成功就不继续匹配了,如果失败就继续匹配

5.7 更改文件的所属组

chgrp root test.txt

在这里插入图片描述

这个时候文件也就普通用户都不属于了

在这里插入图片描述

这里如果再加上other的读和写的权限,就又可以了~~

chmod o+rw test.txt

在这里插入图片描述

在这里插入图片描述

5.8 同时更改拥有者和所属组

chown lin:lin test.txt

在这里插入图片描述

那么怎么没有修改other的指令呢?

六、快速掌握修改权限的做法【第二种】

6.1 八进制

在这里插入图片描述

  • 如上图所示,如果有一个字符就代表1,如果是-就代表0

在这里插入图片描述

我们想去掉所有人的所有权限可以这样做

chmod 000 test.txt

在这里插入图片描述

赋予所有权限就是下面这条命令

chmod 777 test.txt

在这里插入图片描述

保留拥有者的读写权限

chmod 600 test.txt

在这里插入图片描述

在这里插入图片描述

七、文件类型

在windows使用的是后缀名来区分文件类型的
而在linux中是不通过后缀区分文件类型【不是linux不用后缀】

那么通过什么区分呢?

  • ls -l第一个属性列

在这里插入图片描述

  • -:普通文件,文本文件,可执行程序,库等都叫做普通文件
  • d:目录文件
  • b:块设备文件
  • c:字符设备文件
  • p:管道文件
  • l:链接文件

我们来挨个介绍一下

  • 第一个-普通文件

平时创建的文件就是普通文件

在这里插入图片描述

  • 第二个d目录文件

在这里插入图片描述

  • 第三个b块设备文件

这个典型的代表就是磁盘

ls -l /dev/vda

在这里插入图片描述

  • 第四个c字符文件

这个终端文件我们在linux命令章节讲过了,这里就不再赘述

ls -l /dev/pts/

在这里插入图片描述

  • 第五个p管道文件

我们创建一个管道文件

mkfifo pipe

在这里插入图片描述

  • 这里就可以通过管道文件来进行输出

在这里插入图片描述

  • 第六个l链接文件
ln -s /home/lin/lesson1/test.txt xx.link

这个链接文件也就是相当于创建了一个快捷方式,直接指向了这个文件

在这里插入图片描述

  • 如果删除了源文件,那么这个快捷方式也就不能用了

在这里插入图片描述

  • 比如linux的根目录就有很多的链接文件

在这里插入图片描述

八、可执行权限

我们了解了读权限,写权限,那么可执行权限是什么呢?如何理解?

是一个可执行的文件,也有可执行权限,才能执行

能执行 = 具有可执行权限 + 一个可执行文件

  • 如果我们要进入一个目录,需要什么权限? ----> 进入一个目录,需要x权限

我们来验证一下:

  • 第一种情况:

在这里插入图片描述

  • 第二种情况:

在这里插入图片描述

  • 第三种情况:

在这里插入图片描述

  • 可以看到去掉x权限就不能进入目录了~~

小结一下:

  • 进入一个目录需要x权限
  • 目录的r权限:用户能否查看指定目录的文件信息
  • 目录的w权限:决定用户是否能在指定的目录内新建,修改,删除文件

九、创建文件的默认权限

linux创建文件的时候,为什么好像有默认权限?为什么是我们看到的样子?

在这里插入图片描述

  • Linux创建的普通文件,起始权限是:0666,去掉x的
  • Linux创建的目录文件,起始权限是:0777,包含x的

  • 再看上面的权限,我们的创建的普通文件也不是666,而是664,目录文件也不是777,而是775

9.1 权限掩码

umask
  • 在创建文件的时候,要在起始权限中,过滤掉(不是简单的减法)再umask中出现的权限

在这里插入图片描述

9.2 修改umask

umask 0000

在这里插入图片描述

  • 修改了umask后,创建出来的文件权限也发生了改变,所以是uamsk影响了我们的默认权限

最终权限 = 起始权限 & (~umask)

在这里插入图片描述

在这里插入图片描述

umask:Linux中的权限掩码!


十、目录的权限

  • 为什么我们普通人竟然可以删除别人的文件(包括root)合理吗?

在这里插入图片描述

  • 删除一个文件和目标文件有关系吗? ---->没有关系!!!

  • 那么和谁有关系呢? ---- >和我所在的目录有关系!!!

在这里插入图片描述

  • 这个目录是这个用户的拥有者,在我自己的目录里创建文件就要受到我管束~~

所以删除文件是由这个目录的拥有者来管理,删除一个文件的本质就是修改这个目录的内容

  • 所以创建一个目录的时候是默认去掉写权限的,一个外来用户进入到这个目录是不能进行创建文件的~~

本期内容就到这里了,感谢大家的收看,欢迎三连~~

相关文章:

Linux权限命令详解

Linux权限命令详解 文章目录 Linux权限命令详解一、什么是权限?二、权限的本质三、Linux中的用户四、linux中文件的权限4.1 文件访问者的分类(人)4.2 文件类型和访问权限(事物属性) 五、快速掌握修改权限的做法【第一种…...

【Android】Glide的简单使用(下)

文章目录 缓存设置内存缓存硬盘缓存自定义磁盘缓存行为图片请求优先级缩略图旋转图片Glide的回调:TargetsBaseTargetTarget注意事项设置具体尺寸的Target 调试及Debug获取异常信息 配置第三方网络库自定义缓存 缓存设置 GlideApp .with(context).load(gifUrl).asGif().error(…...

TCP对数据的拆分

应用程序的数据一般都比较大,因此TCP会按照网络包的大小对数据进行拆分。 当发送缓冲区中的数据超过MSS的长度,数据会被以MSS长度为单位进行拆分,拆分出来的数据块被放进单独的网路包中。 根据发送缓冲区中的数据拆分情况,当判断…...

面试问题--计算机网络:二层转发、三层转发与osi模型

计算机网络:二层转发、三层转发与OSI模型 1. 二层转发和三层转发 1.1 二层转发(Data Link Layer) 在计算机网络中,二层转发是通过数据链路层(Data Link Layer)实现的。以下是关于二层转发的一些关键信息…...

kubectl获取ConfigMap导出YAML时如何忽略某些字段

前言: 当我们在使用Kubernetes时,常常需要通过kubectl命令行工具来管理资源。有时我们也想将某个资源的配置导出为YAML文件,这样做有助于版本控制和资源的迁移。然而,默认情况下,使用kubectl get命令导出资源配置会包…...

复制粘贴——QT实现原理

复制粘贴——QT实现原理 QT 剪贴板相关类 QClipboard 对外通用的剪贴板类,一般通过QGuiApplication::clipboard() 来获取对应的剪贴板实例。 // qtbase/src/gui/kernel/qclipboard.h class Q_GUI_EXPORT QClipboard : public QObject {Q_OBJECT private:explici…...

(一)五种最新算法(SWO、COA、LSO、GRO、LO)求解无人机路径规划MATLAB

一、五种算法(SWO、COA、LSO、GRO、LO)简介 1、蜘蛛蜂优化算法SWO 蜘蛛蜂优化算法(Spider wasp optimizer,SWO)由Mohamed Abdel-Basset等人于2023年提出,该算法模型雌性蜘蛛蜂的狩猎、筑巢和交配行为&…...

LED透镜粘接UV胶是一种特殊的UV固化胶,用于固定和粘合LED透镜。

LED透镜粘接UV胶是一种特殊的UV固化胶,用于固定和粘合LED透镜。 它具有以下特点: 1. 高透明度:LED透镜粘接UV胶具有高透明度,可以确保光线的透过性,不影响LED的亮度和效果。 2. 快速固化:经过UV紫外线照射…...

C语言 题目

1.写一个函数算一个数的二进制(补码)表示中有几个1 #include<stdio.h>//统计二进制数中有几个1 //如13:1101 //需要考虑负数情况 如-1 结果应该是32// n 1101 //n-1 1100 //n 1100 //n-1 1011 //n 1000 //n-1 0111 //n 0000 //看n的变化 int funca(int c){int co…...

CDN 内容分发网络

CDN常见问题 什么是 CDN &#xff1f; CDN 全称是 Content Delivery Network/Content Distribution Network&#xff0c;翻译过的意思是 内容分发网络 。 我们可以将内容分发网络拆开来看&#xff1a; 内容&#xff1a;指的是静态资源比如图片、视频、文档、JS、CSS、HTML。…...

Android : Xui- RecyclerView+BannerLayout 轮播图简单应用

实例图&#xff1a; 1.引用XUI http://t.csdnimg.cn/Wb4KR 2.创建显示图片布局 banner_item.xml <?xml version"1.0" encoding"utf-8"?> <LinearLayout xmlns:android"http://schemas.android.com/apk/res/android"xmlns:app"…...

Java网络通信-第21章

Java网络通信-第21章 1.网络程序设计基础 网络程序设计基础涵盖了许多方面&#xff0c;包括网络协议、Web开发、数据库连接、安全性等。 1.1局域网与互联网 局域网&#xff08;LAN&#xff09;与互联网&#xff08;Internet&#xff09;是两个不同的概念&#xff0c;它们分…...

Leetcode 345. Reverse Vowels of a String

Problem Given a string s, reverse only all the vowels in the string and return it. The vowels are ‘a’, ‘e’, ‘i’, ‘o’, and ‘u’, and they can appear in both lower and upper cases, more than once. Algorithm Collect all the vowels and reverse the…...

[linux] 用命令行wget下载google drive的大文件

使用wget命令下载Google drive上的文件_ubuntu上wget下载谷歌云盘文件-CSDN博客 如何用命令行下载Google Drive上的共享文件&#xff1f;-腾讯云开发者社区-腾讯云 举例&#xff1a;https://drive.google.com/drive/folders/1vKj3VvJEKgS_o-uOSmz3I0-GomECpql3 1、在网页上&…...

Docker Network(网络)——8

目录&#xff1a; Docker 为什么需要网络管理Docker 网络架构简介 CNMLibnetwork驱动常见网络类型 bridge 网络host 网络container 网络none 网络overlay 网络docker 网络管理命令 docker network createdocker network inspectdocker network connectdocker network disconne…...

网页设计--第6次课后作业

试用Vue相关指令完成对以下json数据的显示。显示效果如下&#xff1a; 其中&#xff1a;gender1 显示为女&#xff0c;gender2显示为男。价格超过30元&#xff0c;显示“有点小贵”。价格少于等于30元&#xff0c;则显示“价格亲民”。 data: {books: [{"id": "…...

R语言学习

Part1阶段1&#xff1a;入门基础 1安装R和RStudio&#xff1a; 下载并安装R&#xff1a;https://cran.r-project.org/ 下载并安装RStudio&#xff1a;https://www.rstudio.com/products/rstudio/download/ 2Hello World&#xff1a; 学习如何在R中输出"Hello, World!"…...

基于Unity3D 低多边形地形模型纹理贴图

在线工具推荐&#xff1a; 3D数字孪生场景编辑器 - GLTF/GLB材质纹理编辑器 - 3D模型在线转换 - Three.js AI自动纹理开发包 - YOLO 虚幻合成数据生成器 - 三维模型预览图生成器 - 3D模型语义搜索引擎 当谈到游戏角色的3D模型风格时&#xff0c;有几种不同的风格&#xf…...

vue预览pdf,放大缩小拖动,dialog拖动,父页面滚动

公共组件部分代码 main.js import draggable from /directive/drag/index Vue.use(draggable) pdf组件部分代码...

泽攸科技二维材料转移台的应用场景及优势

随着二维材料的广泛研究和各种潜在应用的开发&#xff0c;对于二维材料样品的精密操控与转移的需求日益增加。特别是一些新型二维材料的制备和器件集成制备中&#xff0c;需要在显微镜下对样品进行观察与定位&#xff0c;并能够在微米甚至纳米量级上精确移動和转移样品。 传统…...

JavaScript——基本使用HelloWrold

1. 内部标签 html <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>Title</title><!--script标签内&#xff1a;写js代码 也可以写在body标签内--><script>alert(hello,world)&l…...

关于DNS服务器地址总是127.0.0.1且无法解析域名地址

问题 笔者尝试nslookup解释域名时&#xff0c;出现服务器变成本地环回口地址&#xff0c;导致无法解析域名 C:\Users\Zsy>nslookup www.baidu.com 服务器: UnKnown Address: 127.0.0.1*** UnKnown 找不到 www.baidu.com: Server failed排查思路 尝试关闭虚拟网卡&#…...

制作一个RISC-V的操作系统四-嵌入式开发介绍

文章目录 什么是嵌入式开发交叉编译查看一些GCC文件夹 调试器GDB相关语法命令 模拟器QEMUQEMU的安装和使用项目构造工具MakeMakeFile的构成make的运行 练习4-1练习4-2练习4-3 什么是嵌入式开发 程序跑到开发板上&#xff0c;或者说运行到硬件上 交叉编译 简单理解交叉编译来说…...

Python爬虫-实现批量抓取王者荣耀皮肤图片并保存到本地

前言 本文是该专栏的第12篇,后面会持续分享python爬虫案例干货,记得关注。 本文以王者荣耀的英雄皮肤为例,用python实现批量抓取“全部英雄”的皮肤图片,并将图片“批量保存”到本地。具体实现思路和详细逻辑,笔者将在正文结合完整代码进行详细介绍。注意,这里抓取的图片…...

04-详解Eureka注册中心的作用,具体配置,服务注册和服务发现

Eureka注册中心的作用 Eureka架构 远程调用的两个问题 服务的ip地址和端口号写死: 生产环境中服务的地址可能会随时发生变化,如果写死每次都需要重新修改代码多实例问题: 在高并发的情况下一个服务可以有多个实例形成一个集群,此时如果采用硬编码的方式只能访问服务的一个实…...

数据分析基础之《matplotlib(3)—散点图》

一、常见图形种类及意义 1、matplotlib能够绘制折线图、散点图、柱状图、直方图、饼图。我们需要知道不同的统计图的意义&#xff0c;以此来决定选择哪种统计图来呈现我们的数据 2、折线图plot 说明&#xff1a;以折线的上升或下降来表示统计数量的增减变化的统计图 特点&…...

Flask 动态路由、请求数据接收、视图函数返回值详解

一、动态路由 在前面的博客中&#xff0c;我们学习了如何创建基本的 Flask 应用&#xff0c;并定义了一些简单的路由。但有时候&#xff0c;我们需要更加灵活的路由&#xff0c;能够根据用户请求的不同来动态生成响应。Flask 提供了动态路由的功能&#xff0c;使我们能够轻松处…...

Transformer 简介

Transformer 是 Google 在 2017 年底发表的论文 Attention Is All You Need 中所提出的 seq2seq 模型。Transformer 模型的核心是 Self-Attention 机制&#xff0c;能够处理输入序列中的每个元素&#xff0c;并能计算其与序列中其他元素的交互关系的方法&#xff0c;从而能够更…...

LLVM学习笔记(64)

4.4.3.3.3. 设置寄存器类对类型的行为 1679行调用computeRegisterProperties()来计算寄存器类的衍生属性。TargetLoweringBase的容器RegisterTypeForVT、RegClassForVT以及NumRegistersForVT用于记录原生支持每个ValueType目标机器寄存器类的信息&#xff0c;即类型对应的寄存…...

深度学习TensorFlow2基础知识学习前半部分

目录 测试TensorFlow是否支持GPU&#xff1a; 自动求导&#xff1a; 数据预处理 之 统一数组维度 定义变量和常量 训练模型的时候设备变量的设置 生成随机数据 交叉熵损失CE和均方误差函数MSE 全连接Dense层 维度变换reshape 增加或减小维度 数组合并 广播机制&#…...