Linux 权限

news2024/11/27 23:45:32

目录

一、 从问题开始

问题一: 什么叫shell?

问题二: 为什么不能直接使用kernel呢?

问题三: shell 与bash 有什么不同吗? 

 二、 Linux权限

0x01 Linux用户

0x02 切换用户命令  

0x03 sudo命令

0x04 权限的相关概念

0x05 chmod

0x06 chown

0x07 chgrp

0x08 文件权限值的8进制数值表示方法  

0x09 对于目录的读写执行权限  

0x10 other删除文件是否因为写权限

0x11 权限掩码  


一、 从问题开始

问题一: 什么叫shell?

Linux严格意义上来说是一个操作系统,可以称之为"核心(kernel)",而我们一般的用户,不能直接使用这个核心,此时shell就充当一个外壳程序来与这个核心进行沟通。

 从广义上来说: Linux发行版 = Linux内核 + 外壳程序
 从狭义上来说: Linux = Linux 内核
 而我们更多的是从广义上来说

问题二: 为什么不能直接使用kernel呢?

①用户直接使用kernel的成本很高,如果某个命令执行错误,代价还是挺大的
②其次shell也可以用来对操作系统的保护,让内核不会暴露给用户,以免造成不合理的操作所以从技术角度,我们也可以把shell定义为命令行解释器,将用户的命令翻译给核心进行处理,同时将核心的处理结果翻译给使用者

问题三: shell 与bash 有什么不同吗? 

shell是所有解释器的统称,而bash可以说是其中的一款解释器,就好比程序员和你之间的关系,你是程序员之一,而我们使用的Centos7.6的命令行解释器就是bash
当你每次登录的时候,那么系统就会给你创建一个对应的bash这样的进程给你进行命令行操作

 二、 Linux权限

0x01 Linux用户

Linux有俩种用户:​
①超级用户: 可以不受系统限制,在Linux下做任何事情,命令提示符是"#"​
②普通用户: 在Linux下做有限的事情,命令提示符是"$"

0x02 切换用户命令  

 命令:su - [用户名]
功能:切换用户
小提示:
①要从root用户切换到普通用户user,则使用 su- user.要从普通用户user切换到root用户则使用 su -root(root可以省略),此时系统会提示输入root用户的口令,并且如果用su -[用户名],此时root切换到普通用户是不需要输入密码的
②但是当从root用户切换到原来的普通用户不建议使用su - [用户名],而是使用快捷方式exit或者ctrl + D,因为每切换一次用户,系统就会创建一次bash进程
③并且也需要注意的是root用户的密码和普通用户的密码最好是不同的,因为如果相同,第一点,是俩个用户密码的界限不清晰,其次也不安全
④如果从用户切换到用户当然也是需要输入密码的

0x03 sudo命令

命令: sudo
功能: 临时权限提升,执行后续命令,以root身份执行
提示:输入的还是普通用户的密码

此时的文件中并没有之前所创建的root.txt,因为还没有添加信任关系,这个问题留个小悬念,等学完vim的时候我们再学习,所以此时如果我们需要更高权限,可以先使用su -命令

0x04 权限的相关概念

通俗的讲,权限由文件访问者(人) 、文件类型和访问权限(事物属性)组成,比如某个视频的vip,特定的人才能观看,而对于视频文件的读写执行也需要一定的权限

 文件的访问者的分类:
 ①所有者:文件所属的用户
 ②所属组:比如一个部门俩个组进行竞争,那么我们只想一个组内共享一个文件,那这个文件属于这个所属组       
 ③其他人: 我之外的就是其他人与root 和普通用户又有什么区别呢?拥有者、所属组、其他人 指的的是一种身份角色,而root和普通用户指的是具体的一个人,拥有者、所属组、其他 人必须对应在一个具体的人身上,即对应root用户或者普通用户

 文件类型:
-: 普通文件(文本,跟中动静态库,可执行程序,源程序)
d:目录文件
c:字符设备文件(键盘与显示器)b:块设备文件(磁盘,光驱等)
p:管道文件(通信)
l:链接文件(软连接)
提示:可以认为Linux下一切皆文件,Linux系统中,不以文件后缀作为区分文件类型的方式,但是像gcc,g++这些系统上的命令是要以后缀进行区分文件类型的

 文件权限值的表示方法:(第2-10位,表示文件所对应的属性)
权限的前三位:文件的所有者权限
权限的中间三位:文件的所属用户组的权限
权限的后三位:其他用户的权限
r: 是否具有读权限
w:是否具有写权限
x:是否具有可执行权限
提示:rwx三者顺序不可改变

0x05 chmod

功能:设置文件的访问权限
格式:chmod [参数] 权限 文件名

①用户表示符+-=权限字符
+:向权限范围增加权限代号所表示的权限
-:向权限范围取消权限代号所表示的权限
=:向权限范围赋予权限代号所表示的权限
②用户符号:
u:拥有者
g:拥有者同组用
o:其它用户
a:所有用户

对于普通文件没有读写执行操作会怎么样?

 从上图可知,对于普通文件的读写执行都是权限被拒绝

 对于超级用户root会有权限约束吗?

0x06 chown

功能:修改文件的拥有者
格式:chown [参数] 用户名 文件名

 也可以将拥有者和所属组同时更改 

0x07 chgrp

功能:修改文件或目录的所属组
格式:chgrp [参数] 用户组名 文件名
常用选项:-R 递归修改文件或目录的所属组

0x08 文件权限值的8进制数值表示方法  

 可以用8进制修改权限:

0x09 对于目录的读写执行权限  

读权限:

 写权限:

 可执行权限:

0x10 other删除文件是否因为写权限

如果目录本身对other具有写权限,other可以删除任何的目录下的文件
如果目录本身对other没有写权限,other不可以删除任何文件

那是否会有这样一种需求呢?  
other可以在特定的目录下创建文件,并写入,但是不想让任何其他人删除自己的文件

此时运用到的就是粘滞位
格式: chmod o+t dir提示:只能对目录设置,一般是限制other权限的,对设置了粘滞位的目录,在该目录下,只能是文件的拥有者或root或者该目录的所有者可以删除,其他人不能删除
应用方向:多个人或者系统会有许多临时数据,所有的临时文件会放在系统的/tmp中,此时需要把所有的权限放开,但是指向让文件的拥有者自己删除自己的文件,此时应用到的就是粘滞位

0x11 权限掩码  

 为什么创建的文件和目录的权限都是这样的呢?

默认权限:
普通文件, 最开始的权限是666
目录文件,最开始的权限是777
从上图可知权限掩码是0002,即凡是在权限掩码中出现的,都应在最开始的权限中去掉
如: 666的二进制可以写为110 110 110,权限掩码0002的二进制是000 000 010
default = default & ~(mask) : 权限掩码去翻与最开始的权限进行按位与

~(mask) : 111 111 101
最终按位与: 110 110 110
                 & 111 111  101
                -----------------------
                     110 110 100

即664,二进制为110 110 100
目录创建的权限也如上所示,结果为775

 那如何设置权限掩码呢?

 提示:设置的权限掩码只能在本次登录有效

 如上是本人对于Linux权限的一些学习,如有问题,还请评论区多多指正。

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

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

相关文章

重磅!软著申请不需要邮寄纸质材料啦,附软著申请流程。

重磅!软著申请不需要邮寄纸质材料啦,附软著申请流程。 最新消息申请流程一,准备申请材料二,申请人填写申请表三,提交申请材料四,补正五,审查六,发布公告七,接受异议八&am…

力扣---二叉树OJ题(多种题型二叉树)

文章目录 前言🌟一、剑指 Offer 55 - I. 二叉树的深度🌏1.1 链接:🌏1.2 代码一:🌏1.3 代码二:🌏1.4 流程图: 🌟二、100. 相同的树🌏2.1 链接&…

超强实用!利用xfsdump和xfsrestore打造无懈可击的数据备份与恢复策略

前言 上次我们分析了EXT文件系统的恢复方式,借助于extundelete工具仅可以恢复EXT类型的文件,但无法恢复CentOS 7系统,因为centos7默认采用xfs类型的文件。 xfs文件系统恢复工具有以下几种: xfsprogs:xfs文件系统扩展…

HTB MonitorsTwo

MonitorsTwo HTB MonitorsTwo 老规矩信息收集了: NMAP信息收集 ┌──(kali㉿kali)-[~/桌面] └─$ sudo nmap --min-rate 1000 10.10.11.211 Starting Nmap 7.93 ( https://nmap.org ) at 2023-05-19 09:18 CST Nmap scan report for 10.10.11.211 Host is up…

Python入门(十六)函数(四)

函数(四) 1.传递列表1.1 在函数中修改列表 2.传递任意数量的实参2.1 结合使用位置实参和任意数量实参2.2 使用任意数量的关键字实参 作者:Xiou 1.传递列表 我们经常会发现,向函数传递列表很有用,其中包含的可能是名字…

设计模式-模板方法模式

模板方法模式 问题背景解决方案:模板方法模式基本介绍解决问题代码示例运行结果 钩子方法注意事项和细节 问题背景 豆浆的制作: 1)制作豆浆的流程:选材—>添加配料—>浸泡—>放到豆浆机打碎 2)通过添加不同…

高可用性和双机热备浅析

在用户眼里,业务需要永远正常对外提供服务,这就要求应用系统的高可用(High availability,即 HA)。高可用主要是针对架构而言,第一步一般会采用分层的思想将一个庞大的应用系统拆分成应用层、中间件、数据存…

SpringBoot+MyBatis-plus实现CRUD (踩坑总结!!!)

一、创建项目&#xff0c;引入相应的依赖 (项目源码在文末) &#xff08;不要选Module !!!!&#xff09; <dependency><groupId>com.baomidou</groupId><artifactId>mybatis-plus-boot-starter</artifactId><version>3.4.2</version&g…

linux常见的二十多个指令

目录 一、指令的概念 二、28个常见的指令 ⭐2.1 ls指令 ⭐2.2 pwd指令 ⭐2.3 cd指令 ⭐2.4tree指令 ⭐2.5 mkdir指令 ⭐2.6 touch指令 ⭐2.7 rmdir指令 ⭐2.8 rm指令 ⭐2.9 clear指令 ⭐2.10 man指令 ⭐2.11 cp指令 ⭐2.12 mv指令 ⭐2.13 cat指令&#xff08;适…

正规文法、正规表达式、有限自动机及其之间的转换(笔记)

The Equivalent Transforming among RG, RE and FA 正规文法 A Grammar G is a quadruple (四元组):G (VN, VT, S, P ) Where, VN is a finite set of nonterminals.VT is a finite set of terminals.S is the start symbol, S ∈ \in ∈ VN.P is a finite set of product…

.Net 使用OpenAI开源语音识别模型Whisper

.Net 使用OpenAI开源语音识别模型 Whisper 前言 Open AI在2022年9月21日开源了号称其英文语音辨识能力已达到人类水准的 Whisper 神经网络&#xff0c;且它亦支持其它98种语言的自动语音辨识。 Whisper系统所提供的自动语音辨识&#xff08;Automatic Speech Recognition&…

python基础知识(四):input语句、if语句和pass语句

目录 1. input语句2. 强制转换3. if语句4. pass语句 1. input语句 input语句是程序获取从键盘输入的内容&#xff0c;会把输入的内容自动转换成字符串。 使用方法: 变量名 input(“提示语”) 例如 language input("你最爱什么语言?") print(language)这两行代码…

RK3588平台开发系列讲解(项目篇)常见模型结构

平台内核版本安卓版本RK3588Linux 5.10Android 12文章目录 一、DNN二、CNN三、RNN沉淀、分享、成长,让自己和他人都能有所收获!😄 📢 AI 模型常采用人工神经网络来模拟人脑神经的记忆和处理信号的能力。常见的人工神经网络类型有深度神经网络(Deep Neural Network,DNN)…

Vue中组件的几个重要点

1 单词命名组件名称 vue推荐的命名组件名称有以下几种&#xff1a; 首先看下组件有几个单词构成 单个单词 如果只有一个单词&#xff0c;那么建议全部小写&#xff0c;用的时候也是全部小写的&#xff0c;或者首字母大写 有人喜欢哪怕只有一个单词也首字母大写&#xff0c;…

读论文-GPRAR

论文&#xff1a;GPRAR: Graph Convolutional Network based Pose Reconstruction and Action Recognition for Human Trajectory Prediction&#xff08;2016&#xff09; 摘要 高精度的预测对于自动驾驶等各种应用至关重要。现有的预测模型在现实世界中很容易出错&#xff0…

linux【网络编程】之HTTP协议

一文了解应用层协议&#xff1a;HTTP协议 一、HTTP协议二、URL2.1 urlencode和urldecode 三、HTTP协议格式3.1 HTTP请求方法3.2 HTTP状态码3.3 HTTP响应报头 四、结合代码理解HTTP通信流程五、长连接六、http会话保持七、postman和fiddler 一、HTTP协议 在上篇文章中我们模拟了…

YOLOV5 + PYQT5双目测距

YOLOV5 PYQT5双目测距 1. 测距源码2. 测距原理3. PYQT环境配置4. 实验结果 1. 测距源码 详见文章 YOLOV5 双目测距&#xff08;python&#xff09; 2. 测距原理 如果想了解双目测距原理&#xff0c;请移步该文章 双目三维测距&#xff08;python&#xff09; 3. PYQT环境…

大数据需要学习哪些内容

Python 已成利器 在大数据领域中大放异彩 Python&#xff0c;成为职场人追求效率的利器&#xff0c;因为不管什么工作&#xff0c;数据都会是工作的一部分&#xff0c;有数据的地方&#xff0c;就有Python&#xff01; 我们知道&#xff0c;随着互联网的发展&#xff0c;线上…

数睿通2.0数据血缘、标准、质量功能更新发布

文章目录 引言数据血缘数据标准数据质量结语 引言 这段时间工作繁忙&#xff0c;琐事较多&#xff0c;加上二阳的冲击&#xff0c;导致数睿通 2.0 的更新进度缓慢&#xff0c;深表歉意&#xff0c;还望大家可以理解。本次更新主要包含数据治理模块的血缘&#xff0c;标准&…

阿里云的云安全审计可以用于哪些安全事件与合规审核?

阿里云的云安全审计可以用于哪些安全事件与合规审核&#xff1f; [本文由阿里云代理商[聚搜云www.4526.cn]撰写] 随着互联网的高速发展&#xff0c;各种互联网应用和服务也在不断涌现。但在运营过程中&#xff0c;安全事件和合规审核问题也不断出现。如何及时、准确地识别并解决…