Linux---(四)权限

news2024/9/26 1:18:47

在这里插入图片描述

文章目录

  • 一、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.coloradmin.cn/o/1133629.html

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

相关文章

勒索病毒最新变种.locked1勒索病毒来袭,如何恢复受感染的数据?

引言: 在当今数字化时代,网络威胁不断进化,.locked1勒索病毒就是其中一种常见的恶意软件。这种病毒会加密您的文件,然后勒索赎金以解锁它们。本文将详细介绍.locked1勒索病毒,包括如何恢复被加密的数据文件和如何预防…

Hadoop3.0大数据处理学习1(Haddop介绍、部署、Hive部署)

Hadoop3.0快速入门 学习步骤: 三大组件的基本理论和实际操作Hadoop3的使用,实际开发流程结合具体问题,提供排查思路 开发技术栈: Linux基础操作、Sehll脚本基础JavaSE、Idea操作MySQL Hadoop简介 Hadoop是一个适合海量数据存…

https下载图片

OpenSSL用法示例 OpenSSL源码安装 对于ubuntu,懒得编译源码可以直接安装 sudo apt-get install libssl–dev /usr/include/openssl/ssl.h CMakeLists中添加 link_libraries(ssl crypto) apt-get安装不需要再制定libssl.a, libcrypto.a的路径了, 就像用libc标…

柏拉图式爱情是同性之爱,绘画是理念世界的二次模仿

公元前427年,柏拉图出生在雅典。 柏拉图20岁成为苏格拉底的弟子。 有一次,柏拉图问苏格拉底:“什么是爱情?”苏格拉底说:“请穿越麦田,摘一株最大最金黄的麦穗回来。不走回头路,只能摘一次。”…

永恒之蓝漏洞 ms17_010 详解

文章目录 永恒之蓝 ms 17_0101.漏洞介绍1.1 影响版本1.2 漏洞原理 2.信息收集2.1 主机扫描2.2 端口扫描 3. 漏洞探测4. 漏洞利用5.后渗透阶段5.1创建新的管理员账户5.2开启远程桌面5.3蓝屏攻击 永恒之蓝 ms 17_010 1.漏洞介绍 永恒之蓝(ms17-010)爆发于…

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

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

7-3、S曲线生成器【51单片机控制步进电机-TB6600系列】

摘要:本节介绍步进电机S曲线生成器的计算以及使用 一.计算原理 根据上一节内容,已经计算了一条任意S曲线的函数。在步进电机S曲线加减速的控制中,需要的S曲线如图1所示,横轴为时间,纵轴为角速度,其中w0为起…

PyCharm 安装 cx_Oracle 失败

我在PyCharm的终端用 pip安装cx_Oracle失败,报错情况如下: ERROR: Could not build wheels for cx_Oracle, which is required to install pyproject.toml-based projects 出错原因: python 的版本太高了,我的是3.11版本的&…

开源思维导图白板工具

https://okso.app https://drawio.com https://tldraw.com https://excalidraw.com

Qt QPixmap绘制一层透明度蒙版

效果 为了在一个图片上绘制透明蒙层效果,思路: 绘制原图。原图上绘制一层透明度。 代码 QImage image(":/resource/icon24_File_Word.png");QPixmap pixmap QPixmap::fromImage(image);ui->label->setPixmap(pixmap);// 重新构造一个…

[Docker]二.Docker 镜像,仓库,容器介绍以及详解

一.Docker 镜像,容器,仓库的简单介绍 通俗来讲:镜像相当于VM虚拟机中的ios文件,容器相当于虚拟机系统,仓库相当于系统中的进程或者执行文件,容器是通过镜像创建的 1.镜像 Docker 镜像就是一个 Linux 的文件系统( Root FileSystem ),这个文…

np.linspace精确度

前言 今天发现一个大坑,如果是序列是小数的话,不要用np.linspace,而要用np.arrange指定等差序列。比如入下图中a和b是一样的意思,但是b是有较大误差的。 anp.arange(0,4,0.4) bnp.linspace(0,4,10) print("a",a) prin…

HDRP中ShaderGraph自发光(Emission)不工作

在Unity中使用HDRP管线时,在ShaderGraph中制作自发光效果可能会遇到这么一个问题,直接将颜色连到主节点的Emission上没效果。 原因:HDRP场景的灯光是基于物理的,所以灯光的强度远远大于默认的自发光强度,自发光就会不…

蓝桥杯动态规划每日一题

一、买卖股票的最佳时机III 股票最佳时机 1.状态表示 dp[i]:到达i天,所能获得的最大利润 但是我们唯一不清楚的是,他完成了几笔交易,所以不如,就设置一种二维数组 dp[m][3] 2是说第0天是第0笔,第一天是第1笔&#xff…

003 后台系统-搭建前端环境

课程链接 一.下载和配置vscode与nodejs 1.vscode视频链接 2.打开vscode下载以下插件: 3.安装nodejs16.19.0 4.检测nodejs是否安装成功,安装地址无中文 在cmd界面输入命令:node -v 显示版本则安装成功 5.在vscode中创建工作区 在电脑中创…

嵌入式 Tomcat 调校

SpringBoot 嵌入了 Web 容器如 Tomcat/Jetty/Undertow,——这是怎么做到的?我们以 Tomcat 为例子,尝试调用嵌入式 Tomcat。 调用嵌入式 Tomcat,如果按照默认去启动,一个 main 函数就可以了。 简单的例子 下面是启动…

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

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

图像压缩(4)《数字图像处理》第八章 8.3节 数字图像水印

图像压缩(3)《数字图像处理》第八章8.3节数字图像水印 一. 前言二.章节引言三.简单综述三.本章小结四.参考文献四. 小结 一. 前言 始于那本深蓝色的大块头,冈萨勒斯的《数字图像处理》,从此走上了图像信号处理的不归路&#xff0…

Java开发-WebSocket

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