Linux---(四)权限

在这里插入图片描述

文章目录

  • 一、shell命令及运行原理
    • 1.什么是操作系统?
    • 2.外壳程序
    • 3.用户为什么不直接访问操作系统内核?
    • 4.操作系统内核为什么不直接把结果显示出来?非要加外壳程序?
    • 5.shell理解重点总结
      • (1)shell是什么?
      • (2)为什么要有shell?
      • (3)shell具体是怎么做的?
      • (4)bash、sh是什么?
      • (5)安卓智能手机
  • 二、Linux权限的概念
    • 1.Linux下有两种用户:
    • 2.切换用户的指令
      • (1)普通用户切换到root
      • (2)普通用户之间切换
    • 3.不切换到root用户,如何用root权限执行一条命令?
  • 三、Linux权限管理
    • 1.权限伴生文件!
      • (1)权限本质:
      • (2)权限与什么有关?
    • 2.文件类型和访问权限(事物属性)
      • (1)ll查看文件的属性
      • (2)用户和角色对应的关系
      • (3)所属组是什么意思
      • (4)为什么要有所属组?
      • (5)为什么没有看到other是谁?
      • (6)Linux文件类型的分类:
        • ✨**理解字符设备文件**
        • ✨理解块设备文件
        • ✨理解链接文件
        • ✨管道文件
    • 3.权限符号
    • 4.如何更改文件权限
    • 5.研究默认权限
      • (1)起始权限
      • (2)权限掩码
      • (3)总结
    • 6.文件权限与目录权限
      • (1)目录权限
      • (2)文件权限
      • (3)粘滞位
    • 7.file指令
  • 总结

一、shell命令及运行原理

1.什么是操作系统?

Linux操作系统
🎐狭义上就是指Linux内核
🎐广义上指Linux内核+LInux外壳和对应的配套程序

Windows操作系统
🎐狭义上就是指Windows内核
🎐广义上指Windows内核+Windows对应的整个图形化界面+预装的各种各样的应用软件

2.外壳程序

LInux外壳程序----命令行解释器Shell
在这里插入图片描述

外壳程序的作用是:
(1)将用户输入的指令解释传递给内核
(2)内核执行命令,得到结果,奖结果通过外壳传递给用户

外壳程序负责信息的传递,称为命令行解释器
在Linux中,命令行解释器称为shell
shell : 命令行解释器 (和用户直接打交道)

Windows下外壳程序—最典型的一种就是图形化界面
在这里插入图片描述

🎐在windows中的图形化界面本质是其中一种外壳程序
🎐在windows下拿鼠标双击一个图标时,就会被图形化界面的外壳解释成要把程序加载到内存,程序就可以运行了。当出现结果时,结果会以图形化界面的形式呈现出来。

3.用户为什么不直接访问操作系统内核?

因为用户不擅于和操作系统打交道,操作系统使用时成本太高,有很多的系统级接口,系统级参数,小白用户根本不会用。

4.操作系统内核为什么不直接把结果显示出来?非要加外壳程序?

shell外壳作用
🎐命令解释
🎐保护内核(拦截不合法请求的指令,不让指令交给操作系统,从而变相保护内核)
生动理解
要相亲的程序员(相当于用户),不擅长与女孩交流,通过媒婆(媒婆相当于外壳程序shell)介绍,认识相亲对象小花(小花相当于内核)。
再发展:
shell(相当于媒婆婚介所):
(1)一旦用户输入,有新的任务时,shell会创建子进程,让子进程执行命令(子进程相当于参加工作的大学生)
(2)父进程(相当于媒婆),继续进行命令行获取

5.shell理解重点总结

(1)shell是什么?

是包裹在操作系统外部的一层软件层,为用户进行命令行解释

(2)为什么要有shell?

因为用户不擅于和内核打交道,所以在用户和内核之间添加一层软件层,方便用户和图形化界面之间的输入,再把指令翻译给操作系统,操作系统执行,把结果再交给用户。

(3)shell具体是怎么做的?

shell 父进程+子进程

(4)bash、sh是什么?

shell是对所有命令行解释器的统称,而具体的一款shell是有bash、sh、windows图形化界面…

(5)安卓智能手机

底层是Linux内核
安卓是GUI(Shell外壳)

二、Linux权限的概念

1.Linux下有两种用户:

🎐root – 超级管理员:可以在linux系统下做任何事情,无权限限制
🎐普通用户:在linux下做有限的事情

2.切换用户的指令

(1)普通用户切换到root

🎐指令:su 或者 su -
🎐随后输入root用户的密码
🎐区别:
su:单纯的账号切换
su -:让root账号重新登录
🎐退出时按热键ctrl+D

(2)普通用户之间切换

🎐指令:su [普通用户名]
🎐普通用户之间切换,必须知道对方的密码

3.不切换到root用户,如何用root权限执行一条命令?

🎐指令:sudo 要执行的指令
🎐用sudo指令进行提权
🎐例如: sudo ls
🎐此时需要输入普通用户的密码
🎐sudo认证后在一定时间内再次使用sudo不用输密码
🎐安装卸载软件或者部署服务时需要把我们的文件拷贝在系统路径下时,必须使用sudo
🎐管理员只有将普通用户添加到/etc/sudoers文件中,普通用户才可以使用sudo指令,新建的普通用户无法使用sudo指令(sudoers文件会保存Linux受信任的用户,相当于白名单)

三、Linux权限管理

1.权限伴生文件!

(1)权限本质:

是一件事情是否允许被你做。

(2)权限与什么有关?

🎐人–角色

Linux中的角色划分:
🥑拥有者:文件和文件目录的所有者
🥑所属组:文件和文件目录的所有者所在的组的用户
🥑other:其他用户

🎐事物属性

也就是文件天然具备的属性
🥑r 被读取
🥑w 被写入
🥑x 被执行

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

(1)ll查看文件的属性

在这里插入图片描述

(2)用户和角色对应的关系

Linux具体的用户(root、普通用户)
Linux角色(拥有者,所属组,other)
二者之间关系:用户在一定程度上承担这些角色,二者是相互补充的关系。

(3)所属组是什么意思

🎐Linux帐号下任何一个文件一定隶属于一个所属组。
🎐所属组:一批用户的集合。
🎐一个组里可以有一个人
🎐一个组里可以有很多人,用组长的名字来对组命名

(4)为什么要有所属组?

更好地实现同一组的权限管理,保证不同用户可访问不同文件,同一组内可实现共享

(5)为什么没有看到other是谁?

拥有者和所属组是确定的,other有很多,是谁并不清楚。
只要判定一个不是拥有者,也不是所属组,那么就是other.

(6)Linux文件类型的分类:

🎐Linux区分文件类型与后缀无关
🎐那和什么有关?
和文件是否具有可执行权限有关
🎐后缀的意义?
给人看的,用来做一定程度上的用户级别的区分
🎐Linux系统并对文件用后缀作区分,但不代表gcc以及Linux中其他的软件不区分

🎐Linux文件类型的分类:用第一列的的第一个字符进行区分
🥑- :普通文件(包括源代码,可执行程序,库等)
🥑d:目录文件(也就是文件夹)
🥑c:字符设备文件(显示器文件。键盘文件)
🥑b:块设备文件(磁盘、分区)
🥑l:链接文件
🥑p:管道文件

理解字符设备文件

int a=123;
printf(“%d”,a);

🎐printf是格式化输出,printf底层把数字123转换成1字符、2字符、3字符,然后把1、2、4这三个字符显示到显示器上,所以打印整数时要进行格式化输出
🎐往显示器这样的设备打消息,是以字符为单位打印的,所以显示器叫字符设备。

int a;
scanf(“%d”,&a);

🎐从键盘上输入123,实际上输入了一个字符1、字符2、字符3,然后以格式控制把3个字符组合起来转成整数,放到a变量里
🎐所以键盘操作时的单位也是字符

理念:Linux下一切皆文件!
🎐显示器和键盘是文件吗?
是!叫做字符设备文件。
🎐每打开一个终端,相当于在linux中开辟一个字符设备文件,所以每次所写的消息最终就可以按照重定向的方式把内容向其他文件写入

✨理解块设备文件

🎐块设备文件:对数据以块为单位进行处理
🎐典型的块设备:磁盘、硬盘所对应的分区
🎐ls /dev/vda* -l 可查看云服务器上磁盘这样的设备
🎐dev是linux下设备目录

✨理解链接文件

🎐windows下的快捷方式就是链接文件
🎐linux下:
./lesson4/a.out
建立一个软链接 ln -s ./lesson4/a.out exe
在之后运行这个文件 ./exe 就能跑

✨管道文件

🎐主要用来进程间通信
🎐管道可以把一条指令交给另一条指令

3.权限符号

剩下的9个字符3个一组,每一组对应rwx权限,有相应权限就写相应字母,没有就写-

4.如何更改文件权限

🎐chmod 用户表示符±权限字符
🥑+:增加权限
🥑-:减少权限
🥑u:拥有者
🥑g:所属组
🥑o:其他用户
🥑a:所有用户

🎐一个人增加或减少文件权限

例如: chmod u-r test.txt

🎐如何一次性多处更改文件权限

注意用逗号隔开
例如: chmod u-r,g+wx,o+rwx test.txt

🎐想去掉所有人的写权限

例如: chmod a-w test.txt

🎐一般用户,不是文件的拥有者,不能更改文件权限。
🎐root账号不受权限约束,可以更改文件权限
🎐针对一个人既是拥有者又是所属组的情况:
权限,一个用户在匹配身份的时候,只能匹配一次。如果是拥有者,则只看拥有者权限,在的所属组权限不看了;不是拥有者,才看所属组权限,以此类推。

🎗️更改拥有者:普通用户将文件拥有者改为root或者其他普通用户

法一:sudo chown root/普通用户名 文件名
法二:
su (这一步将账号切换成root,输入root账号密码)
chown root/普通用户名 文件名

🎗️更改所属组:

例如将所属组修改为root
法一:sudo chgrp root 文件名
法二:
su
chgrp root 文件名

🎗️更改other:注意拥有者和所属组修改了,对应的other范围也自动修改了,所以不需要为修改other提供具体指令,也做不到

🎗️如何同时对拥有者和所属组进行修改

sudo chown 拥有者名:所属组名 文件名

5.研究默认权限

(1)起始权限

在这里插入图片描述
从上图可看出:
目录起始权限 775
普通文件起始权限 664

(2)权限掩码

Linux中存在权限掩码,通过umask查看或修改权限掩码
权限掩码是四位数字,可看作 0+三位八进制数字
(第一个0可看作8进制数字前缀,后面三位数字分别对应拥有者权限,所属组权限,other权限)

root默认掩码值是0022
普通用户掩码值是0002

🥑umask
作用:查看掩码值

验证如下:在这里插入图片描述

🥑umask 权限值
作用:修改权限值
说明:将现有的存取权限去掉权限掩码后,即可产生建立文件时预设权限

我们研究权限掩码的后三位数字
002 也就是 000 000 010
🎗️注意:凡是在权限掩码中出现的权限,最终都要在起始权限中去掉
🎗️去掉不是指简单的加减法
🎗️最终权限=起始权限 去掉 权限掩码中出现的权限
🎗️去掉 :意思是清零指定的比特位。在umask中出现的比特位为1,最终权限的位置上必须被清零,无论起始是0还是1

🎗️0&1=0
🎗️1&1=1
🎐任何数和1按位与 结果是他本身
🎗️1&0=0
🎗️0&0=0
🎐任何数和0按位与 结果是0

🧨结论:最终权限 =起始权限 & (~umask)
~mask意思是:对umask按位取反(包括符号位)
🎃举例:
比如003按位取反
原来 000 000 011
之后 111 111 100
目录起始权限666(110 110 110)
(~umask)003 (111 111 100)
二者进行按位与&
结果 110 110 100 (也就是664)
所以该目录最终的权限是664,即拥有者有rw权限,所属组有rw权限,other有r权限。
在这里插入图片描述

(3)总结

起始权限是为了让文件或者目录在最开始有起始的权限
权限掩码让用户去控制文件或目录起始权限是什么,给用户更多选择性

6.文件权限与目录权限

(1)目录权限

进入一个目录,需要 x 权限
是否允许一个指定用户查看目录的文件列表,需要 r 权限
是否允许一个指定用户在当前目录下新建文件,需要 w 权限

(2)文件权限

一个文件一定是属于一个目录的。
一个文件属性能不能查看,是由目录的权限决定的!
一个文件能不能被删除,这个文件本身不能决定,要看所属的目录与对应账户是否有w权限。

(如果所属目录的一个other具有w权限,就可以删除该目录下的文件。)
(所以普通用户的默认掩码是002,000 000 010去掉的就是other中的写权限,默认这个值的本质是为了防止other用户的随意更改)

一般而言,不同的账号,是不会在同一个目录下的。
特殊情况,比如多个账号在同一个root创建的共享目录中相互协同、共享数据。
(由root账号创建一个目录,将这个目录的other权限设为有w权限时,一个账号就可以删除另一个账号的文件;若设为无w权限时,多个账号都不能在此目录下新建文件)
(当目录的other权限有w,如果其他账号想读、写、执行别的账号创建的文件,得看这个文件的other权限是否允许)

🎗️如何解决这种特殊情况呢?使得在共享目录下可以写文件但是不能让别人删除我的文件。
设置粘滞位。

(3)粘滞位

chmod +t 目录名
🎐作用:对目录设置粘滞位,在该目录的内部只有文件的拥有者能够删除自己的文件,其他人不能删除。
🎐应用场景:多用户实现文件共享
🎐注意:
不在一个人的家目录下共享
在根目录或非家目录下共享

7.file指令

file 文件或目录
功能:辨识文件类型
在这里插入图片描述


总结

Linux的权限部分内容就到这里啦~想要了解更多内容,记得关注后续哦👻

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

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

相关文章

JDK8新特性:Stream流

目录 1.获取Stream流 2.Stream流常见的中间方法 3.Stream流常见的终结方法 1、 Stream 是什么?有什么作用?结合了什么技术? ●也叫 Stream 流,是Jdk8开始新增的一套 API ( java . util . stream .*),可以用于操作集…

Java开发-WebSocket

WebSocket是基于TCP的一种新的网络协议。它实现了浏览器与服务器全双工通信-浏览器和服务器只需要完成一次握手&#xff0c;两者之间就可以创建持久性的连接&#xff0c;并实现 双向数据传输。 使用 导入maven坐标 <dependency><groupId>org.springframework.bo…

基于V/F控制的三相逆变器MATLAB仿真模型

微❤关注“电气仔推送”获得资料&#xff08;专享优惠&#xff09; 参考文献&#xff1a;张飞,刘亚,张玉杰.基于V/F控制的三相逆变器仿真模型的研究[J].自动化与仪器仪表,2015 关于V/F控制的论文非常多&#xff0c;随意下载&#xff01; 当分布式电源经过逆变器运行于孤岛模…

【计算机毕设案例推荐】高校学术研讨信息管理系统小程序SpringBoot+Vue+小程序

前言&#xff1a;我是IT源码社&#xff0c;从事计算机开发行业数年&#xff0c;专注Java领域&#xff0c;专业提供程序设计开发、源码分享、技术指导讲解、定制和毕业设计服务 项目名 基于SpringBoot的高校学术研讨信息管理系统小程序 技术栈 SpringBoot小程序VueMySQLMaven 文…

UE4 材质实操记录

TexCoord的R通道是从左到右的递增量&#xff0c;G通道是从上到下的递增量&#xff0c;R通道减去0.5&#xff0c;那么左边就是【-0.5~0】区间&#xff0c;所以左边为全黑&#xff0c;Abs取绝对值&#xff0c;就达到一个两边向中间的一个递减的效果&#xff0c;G通道同理&#xf…

stm32外部时钟为12MHZ,修改代码适配

代码默认是8MHZ的&#xff0c;修改2个地方&#xff1a; 第一个地方是这个文件的这里&#xff1a; 第二个地方是找到这个函数&#xff1a; 修改第二个地方的这里&#xff1a;

javaEE -5(8000字详解多线程)

一&#xff1a;JUC(java.util.concurrent) 的常见类 1.1 ReentrantLock 可重入互斥锁. 和 synchronized 定位类似, 都是用来实现互斥效果, 保证线程安全&#xff0c;ReentrantLock 也是可重入锁. “Reentrant” 这个单词的原意就是 “可重入” ReentrantLock 的用法&#xf…

TypeScript学习 | 泛型

简介 泛型是指在定义函数、接口或类的时候&#xff0c;不预先指定具体的类型&#xff0c;而在使用的时候再指定类型的一种特性 作用 可以保证类型安全的前提下&#xff0c;让函数、接口或类与多种类型一起工作&#xff0c;从而实现复用 基本使用 举个例子&#xff1a; 创…

T113-S3-buildroot文件系统tar解压缩gz文件

目录 前言 一、现象描述 二、解决方案 三、tar解压缩.gz文件 总结 前言 本文主要介绍全志T113-S3平台官方SDK&#xff0c;buildroot文件系统tar不支持.gz文件解压缩的问题以及如何配置buildroot文件系统解决该问题的方法介绍。 一、现象描述 在buildroot文件系统中&#xff…

二、可行性分析与需求分析

文章目录 概念考点练习题一、可行性分析与需求分析1.可行性分析的任务2.可行性研究3.甘特图4.数据流图5.数据字典数据字典的内容 6.需求分析7. 实体联系ER图8. 状态转换图 二、练习题 概念考点练习题 一、可行性分析与需求分析 1.可行性分析的任务 用最小的代价在尽可能短的时…

【德哥说库系列】-PostgreSQL跨版本升级

&#x1f4e2;&#x1f4e2;&#x1f4e2;&#x1f4e3;&#x1f4e3;&#x1f4e3; 哈喽&#xff01;大家好&#xff0c;我是【IT邦德】&#xff0c;江湖人称jeames007&#xff0c;10余年DBA及大数据工作经验 一位上进心十足的【大数据领域博主】&#xff01;&#x1f61c;&am…

区块链外包开发需要注意的问题

在进行区块链外包开发时&#xff0c;有一些关键问题需要特别注意&#xff0c;以确保项目的成功和质量。以下是一些需要考虑的问题&#xff0c;希望对大家有所帮助。北京木奇移动技术有限公司&#xff0c;专业的软件外包开发公司&#xff0c;欢迎交流合作。 1.明确的需求和目标&…

【网络协议】聊聊TCP的三挥四握

上一篇我们说了网络其实是不稳定的&#xff0c;TCP和UDP其实是两个不同的对立者&#xff0c;所以TCP为了保证数据在网络中传输的可靠性&#xff0c;从丢包、乱序、重传、拥塞等场景有自己的一套打法。 TCP格式 源端口和目标端口是不可缺少的&#xff0c;用以区分到达发送给拿…

windows安装数据库MySQL

windows安装数据库MySQL 文章目录 windows安装数据库MySQL一、MySQL官网下载压缩包二、在D盘新建文件夹D:\MySQL&#xff0c;将下载的压缩包解压到该文件夹下三、配置环境变量四、通过命令行模式安装、启用、配置SQL服务 一、MySQL官网下载压缩包 下载地址&#xff1a;https:/…

APP逆向基础(APK流程)

APK的基本结构 Android体系结构和APK基本结构-CSDN博客 APK 打包流程 【Android 安装包优化】APK 打包流程 ( 文件结构 | 打包流程 | 安装流程 | 安卓虚拟机 )_adnroid 安装包优化,打指定资源_韩曙亮的博客-CSDN博客 APK安装流程

Go 实现插入排序算法及优化

插入排序 插入排序是一种简单的排序算法&#xff0c;以数组为例&#xff0c;我们可以把数组看成是多个数组组成。插入排序的基本思想是往前面已排好序的数组中插入一个元素&#xff0c;组成一个新的数组&#xff0c;此数组依然有序。光看文字可能不理解&#xff0c;让我们看看…

Power BI 傻瓜入门 9. 设计和部署数据模型

本章内容包含&#xff1a; 详细说明设计数据模型的技术要求Power BI Desktop中基本数据模型的设计将数据模型从Power BI Desktop发布到Power BI Services 在数据进入Power BI后对其进行操作既是一门艺术&#xff0c;也是一门科学。导入到任何应用程序中的数据不仅需要注意数据…

【论文阅读】(2023TPAMI)PCRLv2

目录 AbstractMethodMethodnsU-Net中的特征金字塔多尺度像素恢复多尺度特征比较从多剪切到下剪切训练目标 总结 Abstract 现有方法及其缺点&#xff1a;最近的SSL方法大多是对比学习方法&#xff0c;它的目标是通过比较不同图像视图来保留潜在表示中的不变合判别语义&#xff…

[AutoSar NVM] 存储架构

依AutoSAR及公开知识辛苦整理&#xff0c;禁止转载。 专栏 《深入浅出AutoSAR》&#xff0c; 全文 2900 字. 图片来源&#xff1a; 知乎 汽车的ECU内存中有很多不同类型的变量&#xff0c;这些变量包括了车辆各个系统和功能所需的数据。大部分变量在ECU掉电后就会丢失&#x…

深入探索Sharding JDBC:分库分表的利器

随着互联网应用的不断发展和用户量的不断增加&#xff0c;传统的数据库在应对高并发和大数据量的场景下面临着巨大的挑战。为了解决这一问题&#xff0c;分库分表成为了一个非常流行的方案。分库分表主流的技术包括MyCat和Sharding JDBC。我们来通过一张图来了解这两者有什么区…