Linux——权限

  个人主页:日刷百题

系列专栏〖C语言小游戏〗〖Linux〗〖数据结构〗 〖C语言〗

🌎欢迎各位点赞👍+收藏⭐️+留言📝 

一、 Linux下用户的分类
 

Linux下有两种用户:

1. root(超级管理员用户)

2. 普通用户

我们adduser添加的就是普通用户。

他们有什么区别呢?

(1)超级用户:可以再linux系统下做任何事情,不受限制
(2)普通用户:在linux下做有限的事情。
(3)超级用户的命令提示符是“#”,普通用户的命令提示符是“$”。


我们如何切换两个用户呢?

Linux下所有的用户都有自己的密码,我们可以通过以下指令切换用户:

(1)切换root用户

su //路径不会发生变化
su  - //路径会变成/root

注:输入的密码是root的密码

(2)切换到普通用户

su 用户名

注:Ctrl d这个快捷键回到之前的用户(相当于exit)

补充:

指令提权:那么我们可以不变成root,但是以root的身份执行一个指令可以吗?

通过sudo指令可以临时提升用户的权限,在指令前面加上sudo,用户就临时切换成了root,以root的身份执行该条命令。

实际上,一般来说普通用户不能执行sudo指令,我们需要将该用户添加到系统信任的白名单才能享受sudo指令。

二、 Linux中文件的权限

2.1 文件访问者的分类

(1)文件和文件目录的所有者:u—user(拥有者)

(2)文件和文件目录的所有者所在的组的用户:g—group(所属组)

(3)其它用户:o—others (其他人)

2.2 文件类型和访问权限

2.2.1 文件类型

- :代表普通文件(文本、可执行文件等等)

d :代表目录文件

l: 软链接(类似 Windows 的快捷方式)

b :代表 块设备文件(磁盘文件)

p :代表管道文件(用来通信的)

c :字符设备文件(例如屏幕等串口设备)
s :套接口文件

2.2.2 访问权限

他们三个为一组,分别代表拥有者,所属组,other的权限

这些权限字符的意思分别是:

r : 对文件而言,具有读取文件内容的权限;对目录来说,具有浏览该目录信息的权限
w : 对文件而言,具有修改文件内容的权限;对目录来说具有增加、删除、改动目录内文件的权限
x : 对文件而言,具有执行文件的权限;对目录来说,具有进入目录的权限
- :  表示不具有该项权限
普通文件:

(1)对于普通文件,没有r权限,就读取不了文件内容

(2)对于普通文件,没有w权限,就修改不了文件内容
(3)对于普通文件,没有x权限,就不能执行该文件
注:绿色代表可执行( ./文件名  表示执行文件)
注:对于root 账号,尽管什么权限都没有,但是依然可以对文件进行读、写、执行。
目录文件:

(1)对目录来说,没有r权限,就查看不了该目录下的信息

(2)对目录来说,没有w权限,就没有增加、删除、改动目录内文件的权限
(3)对目录来说,没有x权限,就没有进入目录的权限
补充知识:
我们当前是普通用户wu ,既作为文件test.txt的拥有者,也作为文件的所属组,当作为拥有者没有读权限,作为所属组有读权限,那么我们去读会成功吗?
答案没有读权限!
那么如果我们当前是普通用户wu,只作为文件test.txt的所属组,可以拥有读权限吗?
答案有读权限!
结论:身份识别的时候只识别一次,一旦匹配成功就不继续匹配了,如果失败就继续匹配

三、 权限如何修改

3.1 用字符表示法修改权限

字符表示方法:

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

(1)文件的拥有者

(2) root身份

那么文件的权限如何修改?

我们可以使用chmod指令

功能:
设置文件的访问权限
用法:
chmod  用户符号+ -  权限字符  文件名
+: 向权限范围增加权限代号所表示的权限
-: 向权限范围取消权限代号所表示的权限
用户符号:  
u :拥有者
g :所属组
o :其它用户
a :所有用户
(1)增加拥有者读权限:(chmod u+r 文件名)
(2)增加拥有者写权限:(chmod u+w 文件名)
(3)增加拥有者可执行权限:(chmod u+x 文件名)
注:减少拥有者读写可执行权限(chmod u-rwx  文件名)
(4)增加所属组读权限:(chmod g+r 文件名)
(4)增加其他人读权限:(chmod o+r 文件名)
(4)减少所有人读、写、可执行权限:(chmod a+rwx 文件名)

3.2 用8进制数值表示法修改权限

8进制数值表示方法:

每个位置的权限都是用二进制来表示的:

比如:(我们的test.txt文件)

它的权限现在是: rwx------

用二进制表示就是:111 000 000

转换成八进制就是:7 0 0

那我们把它修改成: rw-rw-rw-

用二进制表示就是:110 110 110

转换成八进制就是:6  6  6

用法:

chmod  八进制表示法  文件名

3.3 修改文件的拥有者和所属组

修改文件的拥有者:

(1)chown + 拥有者名 + 文件名

注:

(1)修改文件的拥有者和所属组是强制的,一般用户修改不了,需要提升权限  (sudo  chown  拥有者名   文件名).

(2)用 su  将用户切换到root再执行 ( chown + 拥有者名 + 文件名)

修改文件的所属组:

(2)chgrp + 所属组名 + 文件名

注:

(1)修改文件的拥有者和所属组是强制的,一般用户修改不了,需要提升权限  (sudo  chgrp 所属组名   文件名).

(2)用 su  将用户切换到root再执行   (chgrp + 所属组名 + 文件名)

同时修改文件的拥有者和所属组:

(3)chown + 拥有者名:所属组名 + 文件名

注:

(1)修改文件的拥有者和所属组是强制的,一般用户修改不了,需要提升权限  (sudo  chown 拥有者名:所属组名    文件名).

(2)用 su  将用户切换到root再执行 (  chgrp + 拥有者名:所属组名 + 文件名)

注:选项 -R 可以修改目录。

四、文件的起始权限

普通文件的最终权限八进制表示法是:664

目录文件的最终权限八进制表示法是:775

实际上:

(1)普通文件的起始权限八进制表示法是666

(2)目录文件的起始权限八进制表示法是777

而Linux中因为有权限掩码的存在,导致最终权限变化

4.1  权限掩码

用umask查看权限掩码

权限掩码是如何影响最终权限的呢?

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

以普通文件为例:

普通文件的起始权限是:110 110 110(666)

权限掩码umask是:000 000 011(0002)

~umask: 111 111 100

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

最终的权限是:110 110 100(664)

注:我们可以修改权限掩码

注:修改了umask后,创建出来的文件权限也发生了改变,所以是uamsk影响了我们的最终权限

五、目录的权限

为什么我们普通用户可以删除root的文件呢?

(1)删除一个文件和目标文件没有关系,和当前用户所在的目录有关系。

(2)普通用户wu是这个目录wu的拥有者,root在普通用户的目录里创建文件就要受到普通用户wu的管束。


删除文件是由这个目录的拥有者来管理,删除一个文件的本质就是修改这个目录的内容,需到目录的拥有者有w权限

目录的权限是:

r 代表我们是否能够查看指定目录下的文件

w 代表我们是否能在当前目录下创建、更改和删除文件

创建一个目录的时候是默认去掉other的写权限的,其他用户进入到这个目录是不能进行创建文件

总结:本篇文章将权限的知识差不多囊括了。

希望大家阅读完可以有所收获,同时也感谢各位铁汁们的支持。文章有任何问题可以在评论区留言,百题一定会认真阅读!

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

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

相关文章

【重点】【前缀树】208.实现Trie(前缀树)

题目 前缀树介绍:https://blog.csdn.net/DeveloperFire/article/details/128861092 什么是前缀树 在计算机科学中,trie,又称前缀树或字典树,是一种有序树,用于保存关联数组,其中的键通常是字符串。与二叉查…

Python 列表推导式:简洁、高效的数据操作艺术

文章目录 Python 列表推导式:简洁、高效的数据操作艺术1. 列表推导式:语法糖的力量2. 过滤元素:带条件的列表推导式3. 复杂的数据结构:嵌套的列表推导式4. 数据变形:带表达式的列表推导式5. 推广至其他数据结构&#x…

LearnDash LMS ProPanel在线学习系统课程创作者的分析工具

点击阅读LearnDash LMS ProPanel在线学习系统课程创作者的分析工具原文 LearnDash LMS ProPanel在线学习系统课程创作者的分析工具通过整合报告和作业管理来增强您的 LearnDash 管理体验,使您能够发送特定于课程的通信,并显示课程的实时活动&#xff01…

堆与二叉树(上)

本篇主要讲的是一些概念,推论和堆的实现(核心在堆的实现这一块) 涉及到的一些结论,证明放到最后,可以选择跳过,知识点过多,当复习一用差不多,如果是刚学这一块的,建议打…

shell实现折线图

生成 100 行数据到文件 file.txt for ((i1; i<100; i));doif [ ${i} -lt 10 ];thennum$(( (RANDOM % 5) 10 i ))elsenum$(( (RANDOM % 5) 10 15 ))fiecho ${num} done 通过文件 file.txt 生成折线图 #!/bin/bash# 指定文件名&#xff0c;该文件必须为数字 file./file.…

Redis最实用的基础入门数据结构和常用指令使用教程

1.单线程redis操作为什么那么快&#xff1f; 一方面&#xff0c;Redis 的大部分操作在内存上完成&#xff0c;再加上它采用了高效的数据结构&#xff0c;例如哈希表和跳表&#xff0c;这是它实现高性能的一个重要原因。另一方面&#xff0c;就是 Redis 采用了多路复用机制&…

patchless amsi学习(中)

DR7 DR7被称为“调试控制寄存器”&#xff0c;允许对每个硬件断点进行精细控制。其中&#xff0c;前8位控制是否启用了特定的硬件断点。偶数位&#xff08;0、2、4、6&#xff09;称为L0-L3&#xff0c;在本地启用了断点&#xff0c;这意味着仅在当前任务中检测到断点异常时才…

配置Nginx解决跨域问题

Nginx 中将前端请求中的所有以 “/apiUrl” 开头的路径代理到 http://192.12.200.101:9813 例如&#xff1a; /apiUrl/login > http://192.12.200.101:9813/login 配置nginx环境 进入Nginx 的配置文件编辑界面: sudo nano /etc/nginx/conf.d/default.conf开始编辑 defaul…

7.实现任务的rebalance

1.设计 1.1 背景 系统启动后&#xff0c;所有任务都在被执行&#xff0c;如果这时某个节点宕机&#xff0c;那它负责的任务就不能执行了&#xff0c;这对有稳定性要求的任务是不能接受的&#xff0c;所以系统要实现rebalance的功能。 1.2 设计 下面是Job分配与执行的业务点…

使用案例总结Vlookup函数的30种用法

1 基础用法 =VLOOKUP(A12,B$1:D$8,3,0) 2 批量查找 =VLOOKUP(A11:A13,A2:C8,3,0) 3 模糊查找 =VLOOKUP("*"&D2&"*",A:B,2,0) 4 模糊查找2 =VLOOKUP(D10&"??",A:B,2,0) 5 模糊查找3 =

HBuilder X将Vue打包APP返回上一页退出问题、清除缓存页面历史防止返回登录页(上一页)、以及状态栏颜色切换

目录 一、返回上一页退出问题 二、清除缓存页面历史防止返回上一页 三、状态栏颜色切换 一、返回上一页退出问题 1.首先重新认识一下vue的页面跳转&#xff0c;这里我只说常用到的两个 goSkip(){//直接跳转this.$router.push(/test);this.$router.replace(/test);//带参数跳…

计算机图形学头歌合集(题集附解)

目录 CG1-v1.0-点和直线的绘制 第1关&#xff1a;OpenGL点的绘制 第2关&#xff1a;OpenGL简单图形绘制 第3关&#xff1a;OpenGL直线绘制 第4关&#xff1a;0<1直线绘制-dda算法<> 第5关&#xff1a;0<1直线绘制-中点算法<> 第6关&#xff1a;一般直线绘…

Flink系列之:大状态与 Checkpoint 调优

Flink系列之&#xff1a;大状态与 Checkpoint 调优 一、概述二、监控状态和 Checkpoints三、Checkpoint 调优四、RocksDB 调优五、增量 Checkpoint六、RocksDB 或 JVM 堆中的计时器七、RocksDB 内存调优八、容量规划九、压缩十、Task 本地恢复十一、主要&#xff08;分布式存储…

云仓酒庄的品牌雷盛红酒LEESON分享香槟为什么是“酸”的?

云仓酒庄致力成为红酒爱好者的首选供应商。云仓酒庄品牌雷盛红酒多系列、多国家、多价位区间的多品种供货&#xff0c;使得酒品丰富而多样&#xff0c;既可以整箱方式销售&#xff0c;也可以单瓶模式购买&#xff0c;全管道使成本更低&#xff0c;降低中间仓储环节、支线物流仓…

codeforces A. Constructive Problems

分析 由图可得&#xff1a;一开始放一个&#xff0c;由于边上的无需依靠对角线 r e b u i l d rebuild rebuild &#xff0c;所以可以直接 r e b u i l d rebuild rebuild &#xff0c;这样一列就好了。然后第二列随便放一个位置&#xff0c;其他所有都可以靠对角线 r e b u…

12.18拓扑排序,DAG,模板,课程安排

拓扑排序 有向无环图一定是拓扑序列,有向有环图一定不是拓扑序列。 无向图没有拓扑序列。 首先我们先来解释一下什么是有向无环图&#xff1a; 有向就是我们两个结点之间的边是有方向的&#xff0c;无环的意思就是整个序列中没有几个结点通过边形成一个圆环。 下图就是一个…

实战Src对ruoyi框架管理系统漏洞的复现

前言&#xff1a; 在挖src的时候&#xff0c;搜搜有没有后台弱口令能进去的&#xff1a; 发现一个弱口令进去后&#xff1a; 【这个蓝色的草丛居然堪比算是ruoyi的指纹】 看这界面&#xff0c;是不是很像ruoyi 插件一看&#xff1a; 前端vue.js 加上登录的cookie rememberM…

Python-flask 入门代码

python与pycharm安装 过程略&#xff0c;网上很多&#xff0c;记得为pycharm配置默认解释器 虚拟环境 pipenv # 全局安装虚拟环境 # 可加-U参数&#xff0c;明确全局安装&#xff0c;不加好像也可以? pip3 install pipenv #检查安装情况 pipenv --version # ---控制台输出…

Spring Boot 3 + Vue 3 整合 WebSocket (STOMP协议) 实现广播和点对点实时消息

&#x1f680; 作者主页&#xff1a; 有来技术 &#x1f525; 开源项目&#xff1a; youlai-mall &#x1f343; vue3-element-admin &#x1f343; youlai-boot &#x1f33a; 仓库主页&#xff1a; Gitee &#x1f4ab; Github &#x1f4ab; GitCode &#x1f496; 欢迎点赞…

鸿蒙Js实战,计算器功能开发

场景&#xff1a; 通过动态设置按钮组件button实现计算器的键盘&#xff0c;通过文本text显示计算的表达书&#xff0c;可以计算&#xff0c;-&#xff0c;*&#xff0c;/&#xff0c;可以一个一个移除&#xff0c;可以重置 等。 下面我们开始今天的文章&#xff0c;还是老规…