【Linux取经路】权限管理——还在因为没有权限而头疼?手把手教你修改权限(二)

简介: 【Linux取经路】权限管理——还在因为没有权限而头疼?手把手教你修改权限(二)

🔔一次只能匹配一个角色

通过修改权限(下面会提到),给test.txt文件的拥有者只设置读权限,给所属组设置读和写权限,给其他人设置任何权限。问:此时的文件拥有者可以往文件中写入嘛

b0bec39eacef43c891a2c4aa9d085aab.png

从上图的结果可以看出,写入操作被拒绝了。因为:一次只能匹配一个角色,当wcy用户执行echo 'Hello Linux!' > test.txt命令时,系统匹配到wcy是test,txt文件的拥有者,而拥有者不具备写权限,所以wcy用户无法写入。

📢权限的修改

只有文件的拥有者和超级用户才可以修改权限。

🔔chmod

功能:设置文件的访问权限。

格式:chmod [参数] 权限 文件名

常用选项:

R:递归修改文件目录的权限

🎊用法一: 用户表示符、+ - =、权限字符

u:拥有者

g:所属组

o:其他人

a:所有用户(拥有者、所属组、其他人)

+:增加权限

-:取消权限

=:赋予权限

示例:

chmod u+r test.txt:表示给拥有者添加test.txt文件的读权限。

chmod a-rwx test.txt:表示取消所有用户对test.txt文件的读、写、可执行权限。

chmod u+rw,g+r,o+r test.txt:表示给拥有者加上对test.txtx文件的读权限和写权限,给所属组和其他人加上读权限。

🎊用法二:三位8进制数字

对于一组权限中的三个权限位,可以用1表示具备该权限,用0表示不具备该权限。例如:111表示当前角色拥有读、写、可执行权限;010表示当前角色没有读权限和可执行权限,只有写权限。这三个2进制数字又可以用一个8进制数字来表示,111对应的8进制是7,010对应的8进制是2。这样一来每种角色的权限可以用一个8进制数字表示,那三个角色的权限就可以用三个8进制数字来表示。

3ede338a24c846e28858cfeafc56caaa.png

示例:

chmod 000 test.txt:表示移除所有用户对test.txt文件的所有权限

chmod 764 test.txt:表示给test.txt文件设置拥有者的读、写、可执行权限;给所属组设置读、写权限,没有可执行权限;给其他人设置读权限,没有写和可执行权限。

chmod 777 test.txt:表示给所有用户设置对于test.txt文件的所有权限。

🔔chown

功能:修改文件的拥有者

格式:chown [参数] 用户名 文件名

把一个东西给别人,需要得到别人的同意,同理,A要把自己文件给B,需要得到B的同意。感觉好麻烦呀,那有没有一种方法,可以强制让A把他自己文件给B呢?答案是肯定的,可以把这个活交给大佬root来完成。

c8781b3db506400880b372674e7f2b28.png

0327601a43864797adc81d4669e14d1a.png


示例:

  • chown wanghua test.txt:表示把test.txt文件的拥有者改成wanghua
  • chown wcy:wanghua test.txt:表示把test.txt文件的拥有者改成wcy,把所属组改成wanghua

🔔chgrp

功能:修改文件或目录的所属组

格式:chgrp [参数] 用户组名 文件名

常用选项:

  • -R:递归修改文件或目录的所属组

示例:

  • chgrp wanghua test.txt:表示把test.txt文件的所属组改成wanghua

📢权限掩码

f12f788c0ac34ae688a8b854f9ec5b23.png

创建一个普通文件,它的权限是664,即:拥有者和所属组都具有读和写权限,而其他人只具有读权限。创建一个目录,它的权限是775,即:拥有者和所属组具备所有权限,其他人只具备读权限和可执行权限,为什么会这样呢?先给结论:

默认给普通文件的起始权限是666

默认给目录的起始权限是777

但是上面的结论和我们观察到的现象不同。别急,起始还有一个叫做权限掩码的东西,它还会影响到我们所创建文件的初始权限,可以通过umask指令去查看权限掩码。

21b944c4737544ec8dfb566757dc28e6.png

其中第一个0表示后面的数字都是8进制,因此当前的权限掩码就是002。

🎊权限掩码如何影响初始权限?

凡是在权限掩码中出现的权限,不会出现在最终文件权限中出现。权限掩码就像一个漏斗,对默认权限进行“过滤”,得到的才是最终权限。

43a5dc1cc1a04b99a94358da791cfc00.png

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

🎊如何修改权限掩码?

  • umask 0555:表示创建的文件初始情况下对所有角色都只有读权限、没有写和可执行权限。

📢目录的权限

可读权限:是否允许用户查看目录下的文件内容

可写权限:是否允许用户在当前目录下进行创建、更改、删除

可执行:是否允许用户进入对应的目录

869263c55c9549028e8b2adcf6137cbf.png


13d9e134c2214ca2b3dd72ee942f7e84.png


68f61c5b87484574ba352d7de16fa8c8.png

📢粘滞位

当我们新建一个用户时,系统会自动在/home路径下创建一个用户的家目录,通过观察可以发现,所有家目录的权限都是700,这意味着,其他普通用户无法进入我的家目录,也不能查看我的家目录下的所有文件,更不能对我的家目录中的文件进行修改、删除,也不能在我的家目录中创建文件。


00be8937174e43fead4c4b61f70850e9.png


d6f2537e5fc140f6ab3cbea64c8f3ad9.png

但有的时候,我们多个用户想进行文件数据的共享。家目录的特性,导致我们所建立的共享目录不能在任何一个用户的家目录下。那建立在哪里合适呢?答案是,通过超级用户在根目录下建立一个共享文件(根目录的拥有者和所属组都是root,普通用户作为other没有写权限,所以无法在根目录下创建文件),其他普通用户都以其他人的身份去操作这个共享文件。因此,这里还需要把共享文件针对其他人的权限设置为7,以保证普通用户可以进入到这个目录,并且查看该目录下的所有文件、在该目录下创建文件等。

🎊存在的问题

上面的做法确实实现了文件数据的共享,但也存在着问题,回想一下上面提到的目录权限,一个目录如果有写权限w,就意味着可以在该目录下创建、删除、修改文件。停!注意删除文件,一个文件能否能够被删除是由它所在的目录决定的,并不由该文件本身所决定,如果文件所在的目录对当前角色有写权限,那么这个文件就可以被当前角色删除。

 回到共享目录,上面说了,把共享目录对其他人的权限都设置为7,这意味着所有其他普通用户都可以删除共享目录下的任何文件。换句话说就是:用户A在共享目录下创建了一个文件,而用户B则可以随意的删除A用户所创建的文件。这显然是不合理的。如何解决这个问题呢?可能会有朋友想着,那就删除共享目录针对other的写权限w,但是这样我们同时也无法在共享目录下创建文件,就是失去了共享的意义。

🎊粘滞位的引出

为了解决上面的问题,引出了一个新的权限位:粘滞位。粘滞位的出现,避免了前面提到的互删这种不合理的操作。可以给共享目录针对other角色加上粘滞位权限。

chmod o+t shared:给共享目录的other加上粘滞位权限

8be9f9b7aa5942209dbb06acd9de9d22.png

d6c5c9d1dfdb44b3bdd71c2425decaa8.png

🎊粘滞位总结:

  • 给目录设置,一般是共享目录
  • 只允许文件的拥有者或者root能删除这个文件,其他用户一概不允许
  • t是一种特殊的x权限

小Tips:其实,系统已经帮我们在根目录下建立了一个共享目录。

1c77090e98254a99912e29f125370eb9.png

 今天的分享到这里就结束啦!如果觉得文章还不错的话,可以三连支持一下,您的支持就是春人前进的动力!

相关实践学习
CentOS 7迁移Anolis OS 7
龙蜥操作系统Anolis OS的体验。Anolis OS 7生态上和依赖管理上保持跟CentOS 7.x兼容,一键式迁移脚本centos2anolis.py。本文为您介绍如何通过AOMS迁移工具实现CentOS 7.x到Anolis OS 7的迁移。
目录
相关文章
|
1月前
|
Linux Shell
Linux系统文件默认权限
Linux系统文件默认权限
|
21天前
|
Linux 数据安全/隐私保护
linux特殊权限!!
本文介绍了Linux系统中的特殊权限,包括suid、sgid和sbit。suid使普通用户在执行特定命令时获得root权限;sgid使用户在创建文件时继承目录的用户组权限;sbit确保用户只能删除自己在共享目录中创建的文件。此外,文章还讲解了chattr和lsattr命令,用于更改和查看文件的扩展属性,以及umask的概念和计算方法,帮助理解文件和目录的默认权限。
36 1
linux特殊权限!!
|
21天前
|
Linux 数据安全/隐私保护
linux权限管理
本文介绍了Linux系统中的权限管理,包括权限的概念、用户和用户组与权限的关系、文件权限位的说明以及rwx权限的具体含义。同时,详细讲解了如何使用`chmod`和`chown`命令更改文件和目录的权限,并通过多个实验演示了不同权限组合对文件和目录的实际影响。最后,总结了文件和目录权限的一些重要知识点,帮助读者更好地理解和应用Linux权限管理。
43 1
linux权限管理
|
1月前
|
Linux 数据安全/隐私保护
探索Linux操作系统下的权限管理
【8月更文挑战第66天】在数字世界中,操作系统的权限管理就如同现实世界中的钥匙和锁,保护着我们的数据安全。本文将带你深入理解Linux系统中的权限设置,通过实际代码示例,让你掌握文件和目录权限的分配与管理技巧。准备好了吗?让我们开始这场关于权限管理的探险之旅吧!
87 14
|
1月前
|
Linux 应用服务中间件 nginx
Linux下权限设置之suid、sgid、sticky
Linux下权限设置之suid、sgid、sticky
|
1月前
|
Linux 数据安全/隐私保护 Windows
Linux_权限理解(详细PLUS
Linux_权限理解(详细PLUS
|
1月前
|
网络协议 Linux 网络安全
【Linux】用户和权限及实用操作------迅速了解用户和权限及其实用操作
【Linux】用户和权限及实用操作------迅速了解用户和权限及其实用操作
|
1月前
|
Linux Go 数据安全/隐私保护
Linux入门2——初识Linux权限
Linux入门2——初识Linux权限
26 0
|
6月前
|
Linux Windows
Linux权限命令详解(二)
Linux权限命令详解(二)
|
6月前
|
安全 Linux 开发工具
Linux权限命令详解(一)
Linux权限命令详解(一)
下一篇
无影云桌面