Linux权限概念与思想,能深度理解“权限”,看这一篇就够啦

目录

一、Linux权限的概念

a.什么是权限?

b.权限的本质

c.Linux中的用户

1.从root用户切换到普通用户user:

2.从普通用户user切换到root用户:

3.我不想直接变成root,但是我就是想以root的身份执行一个工作?

4.Linux中具体的角色需要用具体的人来扮演

二、如何修改权限

1、快速修改权限的做法

2.除了修改权限以外,我们还可以修改所属组和拥有者:

b.除以上的修改方法我们还可使用八进制

三、文件类型

a.LInux不通过后缀名区分文件类型,不是说Linux不用后缀

b.Linux系统不以文件后缀作为区分文件的类型,并不代表gcc不需要

四、目录的权限

1.如果我们要进入一个目录,需要什么权限?

2.Linux创建文件的时候,为什么好像有默认权限?为什么是我们看到的样子?

umask(Linux 默认权限掩码)

五、为什么我们一个普通人能够删掉别人的文件(包括root)?合理吗?

六、如果想在Linux下,由多个用户建立共享一个文件,来被大家共同访问,怎么办?

粘滞位:


一、Linux权限的概念

a.什么是权限?

就是通过一定的条件,拦住一部分人,给另一部分人权利,来访问某种资源,有无,或者能还是不能的问题。例如vip、门禁。

b.权限的本质

权限与人有关、权限和事物的属性有关

权限=人(角色)+ 事物(文件)的属性

c.Linux中的用户

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

命令: su [用户名]
功能:切换用户。
例如,要从root用户切换到普通用户user,则使用 su user。 要从普通用户user切换到root用户则使用 su root(root可以省略),此时系统会提示输入root用户的口令

举例

1.从root用户切换到普通用户user:

2.从普通用户user切换到root用户:

3.我不想直接变成root,但是我就是想以root的身份执行一个工作?

利用指令提权sudo(但是大有可能你还不能做到,在下一篇博客讲vim时再来解决这个问题)

你应该会有这样的报错,这是配置前,因此接下来使用到sudo的指令,你都可以先切换为root再执行。

4.Linux中具体的角色需要用具体的人来扮演

前面的:-rw-r--r--,不看第一个,后面的三个为一组分别表示

每组第一个字符r:具有可读权限

每组第二个字符w:具有写权限

每组第三个字符x:具有可执行权限

- 就是不具有以上的权限。

因此我们上面给的图的意思就是:

1.拥有者具有的权限是:可读可写权限

2.所有组具有的权限是:可读权限

3.其他具有的权限是:可读权限

举例:

我们现在新创建一个用户:

先让原来的用户创建一个文件:

other到底是什么?对于test.txt来说,拥有者是pupuruin,所属组是pupuruin,则study和root对于这个文件来说就是other,other的权限是只可读

检验:

在study时:

在root时:

为什么root对于test.txt来说是other却仍然可以在文件中写内容呢?因为root是超级管理员,不受权限的限制。

可执行性:

我们在test.c中简单的这样写

从这里可以看出由于study对于test.c来说是其他人不具有可执行性也不具有可写性,因此无法编译。

二、如何修改权限

1.快速修改权限的做法

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

a.拥有者

b.root

chmod u+/-rwx,g+/-rwx,o+/-rwx,a+/-rwx filename   

u----user

g---group

o---other

a----all

若想同时为u g o改变权限就使用a+/-rwx filename

示例:

如图当我们为test.txt的所属组和其他人加上相应权限后所发生的改变

这就证明我们的修改是有效的:

那可执行性呢?

原本的test.c对于pupuruin来说是不具有可执行性的,因此我为他加上了这个权限

但是我们发现,他已经具有了可执行性了,却不能被编译

这是为什么?

如何理解x

可执行权限 vs 可执行

能执行 = 具有可执行权限 +你就是一个可执行文件

他现在只具有可执行权限,但他却不是一个可执行文件

2.除了修改权限以外,我们还可以修改所属组和拥有者:

a.

修改拥有者:chown name filename

修改所属组:chgrp name filename

chown name1(拥有者):name2(所属组)filename

(为什么没有修改other的指令,因为不需要!!)

示例:

如图,我们可发现只有root能修改所属组和拥有者

b.除以上的修改方法我们还可使用八进制

chmod 八进制 filename

示例:

三、文件类型

Windows是如何区分文件类型的?

后缀名

a.LInux不通过后缀名区分文件类型,不是说Linux不用后缀

通过什么来区分?ls -l 第一个属性列:

d:文件夹
-:普通文件
l:软链接(类似Windows的快捷方式)
b:块设备文件(例如硬盘、光驱等)
p:管道文件
c:字符设备文件(例如屏幕等串口设备)
s:套接口文件

b.Linux系统不以文件后缀作为区分文件的类型,并不代表gcc不需要

Linux != gcc 

Linux 不区分文件类型

但Linux上面的工具可能区分!

四、目录的权限

1.如果我们要进入一个目录,需要什么权限?

进入一个目录需要x权限

目录的r权限:用户能否查看指定目录内的文件信息

目录的w权限:决定用户是否能在指定的目录内新建、修改,删除文件。

文件 = 内容(该目录里面所有的文件信息详细数据)+ 属性

证明:

2.Linux创建文件的时候,为什么好像有默认权限?为什么是我们看到的样子?

最终权限就是我们所看到的样子

umask(Linux 默认权限掩码)

这是我的umask默认值:(大家的umask默认值会不同,这是正常的)

五、为什么我们一个普通人能够删掉别人的文件(包括root)?合理吗?

a.删除一个文件和目标文件有关系吗?没关系!!

b.和谁有关系? 和我所在的目录有关系

无论任何人,在我的目录下建立文件,都可由我删除,因为我有对这个目录的w权限

六、如果想在Linux下,由多个用户建立共享一个文件,来被大家共同访问,怎么办?

1.首先这个文件,不能在我们各自的家目录下创建,为什么?其他人看不见,进不来

2.因此,我们只能在系统的非用户目录下创建

当前,我(pupuruin)准备新建一个文件和student1共享,不想让study看,study可以删吗?

study可不可以删取决于他(other)拥有的权限。

首先,我们先创建一个目录,并且为所有人打开写权限

现在所有的人都拥有在目录里 w 的权限,因此其他人也可以删该目录中的文件

pupuruin建立一个test.txt文件,并且打开了其他人可写的权限

如图,我(pupuruin)和student1共享文件test.txt,而study他可以看我们的共享文件,也将我们共享的文件给删掉,怎么办?

粘滞位:

当一个目录被设置为“粘滞位”(用chmod+t),则该目录下的文件只能由:

a.超级管理员删除

b.该目录的所有者删除

c.该文件的所有者删除

(一般a,b是同一人)

示例:

pupuruin创建一个新文件,study来删,已经不能删了

对于此时的study已经不具有w权限了

对于现在的log.txt来说,只有pupuruin、root能删,而study和student1都不能删

结语:

       随着这篇关于题目解析的博客接近尾声,我衷心希望我所分享的内容能为你带来一些启发和帮助。学习和理解的过程往往充满挑战,但正是这些挑战让我们不断成长和进步。我在准备这篇文章时,也深刻体会到了学习与分享的乐趣。

       在此,我要特别感谢每一位阅读到这里的你。是你的关注和支持,给予了我持续写作和分享的动力。我深知,无论我在某个领域有多少见解,都离不开大家的鼓励与指正。因此,如果你在阅读过程中有任何疑问、建议或是发现了文章中的不足之处,都欢迎你慷慨赐教。         你的每一条反馈都是我前进路上的宝贵财富。同时,我也非常期待能够得到你的点赞、收藏,关注这将是对我莫大的支持和鼓励。当然,我更期待的是能够持续为你带来有价值的内容,让我们在知识的道路上共同前行。

  • 8
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值