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的写权限的,其他用户进入到这个目录是不能进行创建文件

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

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

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

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

相关文章

基于FPGA的HDMI编码模块设计(包含工程源文件)

前文已经通过FPGA实现了TMDS视频编码的算法,也对单沿数据采样转双沿数据采样的ODDR原语做了详细讲解和仿真验证,本文将这些模块结合,设计出HDMI编码模块,在HDMI接口的显示器上显示一张图片。 1、整体思路 如图1所示,是…

Github 2023-12-18 开源项目周报 Top14

根据Github Trendings的统计,本周(2023-12-18统计)共有14个项目上榜。根据开发语言中项目的数量,汇总情况如下: 开发语言项目数量TypeScript项目4Python项目4Jupyter Notebook项目3非开发语言项目1JavaScript项目1Rust项目1Go项目1 基于项目…

【5G PHY】5G小区类型、小区组和小区节点的概念介绍

博主未授权任何人或组织机构转载博主任何原创文章,感谢各位对原创的支持! 博主链接 本人就职于国际知名终端厂商,负责modem芯片研发。 在5G早期负责终端数据业务层、核心网相关的开发工作,目前牵头6G算力网络技术标准研究。 博客…

前后端传参中遇见的问题

前后端传参经常容易出错,本文记录开发springBootMybatis-plusvuecli项目中出现的传参问题及解决办法 1.前后端没有跨域配置,报错 解决方法:后端进行跨域配置,拷贝CorsConfig类 package com.example.xxxx.config;import org.spr…

web服务器之——基于虚拟目录和用户控制的web网站

目录 一、虚拟目录 虚拟目录的作用: 二、搭建基于虚拟目录的web网站 1、www服务器配置 2、搭建静态网站 设置防火墙状态 关闭文件访问权限——SeLinux 3、编辑网页资源文件 4、设置虚拟目录 5、向虚拟目录中写入资源 6、重启httpd 三、搭建基…

Flink系列之:监控反压

Flink系列之:监控反压 一、反压二、Task 性能指标三、示例四、反压状态 Flink Web 界面提供了一个选项卡来监控正在运行 jobs 的反压行为。 一、反压 如果你看到一个 task 发生 反压警告(例如: High),意味着它生产数…

什么是缓存击穿、缓存穿透、缓存雪崩?

🚀 作者主页: 有来技术 🔥 开源项目: youlai-mall 🍃 vue3-element-admin 🍃 youlai-boot 🌺 仓库主页: Gitee 💫 Github 💫 GitCode 💖 欢迎点赞…

postman脚本生成可执行文件(6)

一.通过Python脚本(executescript.py)执行newman指令 #!usr/bin/python import subprocess from datetime import datetimeclass Newman_automate():Newman_automate():该类主要是定义postman脚本执行__path:cmd命令行中执行newnan脚本指令(…

C语言—每日选择题—Day50

一天一天的更新,也是达到50天了,精选的题有250道,博主累计做了不下500道选择题,最喜欢的题型就是指针和数组之间的计算呀,不知道关注我的小伙伴是不是一直在坚持呢?文末有投票,大家可以投票让博…

[Big Bird]论文解读:Big Bird: Transformers for Longer Sequences

文章目录 1 介绍2 模型架构3 结果 论文:Big Bird: Transformers for Longer Sequences 作者:Manzil Zaheer, Guru Guruganesh, Avinava Dubey, Joshua Ainslie, Chris Alberti, Santiago Ontanon, Philip Pham, Anirudh Ravula, Qifan Wang, Li Yang, Am…

【数据结构】树状数组总结

知识概览 树状数组有两个作用: 快速求前缀和 时间复杂度O(log(n))修改某一个数 时间复杂度O(log(n)) 例题展示 1. 单点修改,区间查询 题目链接 活动 - AcWing本活动组织刷《算法竞赛进阶指南》,系统学习各种编程算法。主要面向…

关于“Python”的核心知识点整理大全24

目录 ​编辑 10.1.6 包含一百万位的大型文件 pi_string.py 10.1.7 圆周率值中包含你的生日吗 10.2 写入文件 10.2.1 写入空文件 write_message.py programming.txt 10.2.2 写入多行 10.2.3 附加到文件 write_message.py programming.txt 10.3 异常 10.3.1 处理 Ze…

es6学习(一):变量声明的方式对比:var,let,const

前言 在let和const出现之前,js可以使用var为变量命令,如果是函数也可以用function命名,甚至你可以直接不用任何关键字命名 var a 1function fn() { }b 2console.log(a)console.log(fn)console.log(b) 结果如下 var的特性 1.window环境下,var在最外层定义的变量会直接赋值给…

【JVM从入门到实战】(八)垃圾回收(1)

内存泄漏:指的是不再使用的对象在系统中未被回收,内存泄漏的积累可能会导致内存溢出 什么是垃圾回收 Java中为了简化对象的释放,引入了自动的垃圾回收(Garbage Collection简称GC)机制。通过垃 圾回收器来对不再使用的…

力扣刷题-二叉树-平衡二叉树

110 平衡二叉树 给定一个二叉树,判断它是否是高度平衡的二叉树。 本题中,一棵高度平衡二叉树定义为:一个二叉树每个节点 的左右两个子树的高度差的绝对值不超过1。 示例 1: 给定二叉树 [3,9,20,null,null,15,7] 返回 true 。 给定二叉树 [1…

音画欣赏|《红尘入戏》

《红尘入戏》 46X68cm 陈可之2023年绘 《秋月》 【宋】朱熹 清溪流过碧山头,空水澄鲜一色秋。 隔断红尘三十里,白云红叶两悠悠。 《白日偶无客青山长对门》其四 【宋】韩淲 人生等戏剧,衮衮徒区区。 老身其回头,今有古非无。 -…

Kafka相关知识

一、kafka架构 Kafka基础知识 Kafka是最初由Linkedin公司开发,是一个分布式、分区的、多副本的、多生产者、多订阅者,基于zookeeper协 调的分布式日志系统(也可以当做MQ系统),常见可以用于webynginx日志、访问日志,消息服务等等&…

Arma3/武装突袭3东风战役最后一关游戏无法保存的解决办法

Arma3这个游戏玩进去还是非常有可玩性的,可是在玩过了它本体自带的东风系列战役后,在最精髓的最后一关——game over这个关卡,却有个非常头疼的问题。 逃跑其实是非常简单的,但是想要无伤环游全岛确十分困难,因为这关卡…

游戏运行中突然掉线是什么原因导致的

游戏平稳运行的原因只有一个,掉线的原因各有个的不同。这些不同的原因有常见,也有不常见的。但不管出于什么原因的掉线,带来的损失又是相同的。 首先最常见的原因就是攻击造成的 像CC,DDOS。CC会造成服务器资源的浪费&…

超详细教程:使用React实现动态轮播图

前言 轮播组件是常见的一种方式,用来展示图像、信息或者是广告。我们可以使用React来创建一个轮播组件,并且利用其中的State和effect Hook来创建一款动态的、可以自动播放的轮播组件。 效果 轮播组件会展示一个平铺的图片列表。在图片列表下方是一组小…