【Linux】文件权限的理解-1

简介: 【Linux】文件权限的理解-1

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

我们新创建出来的普通文件normal.txt和hello.txt的默认权限都是664,普通目录new_dir的默认权限是775d7d397e8622748478e625a0bc5b1a647.png

1.默认权限:– 你看到的

2.起始权限:– 系统设定的

a.普通文件起始权限:666开始的(没有可执行x权限,普通文件你要什么可执行啊?)

b.目录文件起始权限:777开始的(rwx,能显示,能进入,能创建)

3.最终权限: 系统为了更好的控制文件权限,会有默认的(权限掩码umask)的概念。centos7下默认的掩码为0002,但第一个数字以我们现在的水平不太好理解,那就暂时不管他,所以二进制序列就是000 000 010


4.权限掩码: 在起始权限中,去掉在umask中出现的权限,不能影响其他任何权限!


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


110 110 110 &

111 111 101 =

110 110 100 – 664

按位与的结果正好就把倒数第二位的权限搞没了。


和1按位与,并不会改变它原本的值,无论原来是1还是0都不会变。

和0按位与,管你是什么都给你搞成0,也就是让起始权限的二进制序列的第二个比特位的结果一定变为0

34a25404743f47e9a9bb37a4ca72387c.png


我们讲umask的改为0007,之后创建两个普通文件和一个普通目录,在之前命名的基础上都加了个1

000 000 111 取反111 111 000,所以起始权限中的前3个比特位都是0,文件的最终权限就是660,目录的最终权限就是770


17537a1dabb04e4e96199a9cfb69c3f0.png


4.4 粘滞位(共享目录背景+粘滞位(只能给共享目录添加 chmod +t)的引出+目录w权限的深入理解)



1.背景:在使用Linux的时候,未来很有可能会有一些共享目录,被所有的普通用户共享,用来保存普通用户产生的临时数据。这个文件可以只属于自己,也可以公开使用

我们的home目录就是由root管理员创建的

67ba2295e28e4c6ebfa0b117a31ccb1d.png


Linux下,作为一个正常用户,他的用户家目录是只对自己开放的,而不对任何人开放。

譬如下面的wyn和wyn1的用户家目录只有user拥有rwx的权限,所属组和other没有任何权限。

6a918cec33684719ad08a2ec934d6b10.png


2.共享的目录通常都是由root来提供的,即使某个目录的拥有着和所属组都是root,但这也不影响,只要root将权限放开,其他普通用户均可以以other的身份来访问这个目录


如下面所示,作为普通用户wyn,即使目录bin的拥有者和所属组都是root,但root给other提供了r可查看,x可进入的权限,那我们作为other也是可以访问这个目录的

47955097144f4862bfe31af825da8501.png

因为现在的根目录的拥有着和所属组都是root,而我们是一个wyn普通用户,所以对于根目录,我们就是一个other的角色,我们是没有w权限的,所以无法创建一个公共目录public,但我们可以切换成成root用户在下面创建一个public公共目录

5551b6af222d4e04a5b8805ccbfa37ec.png

这样我们就利用root的身份,在根目录下创建了一个public目录,这个目录的最终权限是755,111 101 101,这是因为在root身份下,umask掩码的值为0022,000 010 010

,所以起始权限777经过掩码的处理后,就变为了755.

ae7669d5191c49a0ab4c5dc4fd5f0b92.png


我们现在将public目录的权限全部放开,那其实现在无论是什么用户,无论是谁,都可以在我们的public公共目录下,创建文件,对文件进行写入,查看public目录下的信息,什么的都可以进行了,因为root已经把public的权限给我们打开了,所以所有人都可以在public这个目录下,拥有对目录的rwx权限。


1ebcd7761db548f39e6eda47b3c6526c.png


我们现在分别作为wyn和wyn1的身份在public这个公共目录下创建了两个普通文件,然后我作为wyn的身份想要看一下wyn1里面的内容,当然可以看到啦,因为wyn1文件的other是拥有可读r的权限的,但现在我想要以wyn的身份向wyn1文件中写入一些东西时,这就不允许了,因为wyn1这个文件对other这样的角色,只开放了r权限,没有开放w和x权限,所以wyn是不可以写入的,正如bash返回给我们的指令Permission denied权限拒绝。


但是wyn现在很不爽,喵的你个wyn1文件就给你自己和root所有权限开放,我作为wyn只能读取这个文件,凭什么?然后一气之下,wyn直接删除了用户wyn1的文件,为什么能删呢?因为public对所有角色的所有权限都开放了,只要对目录public有w权限,那么现在任何一个用户都可以随便删除public下的任何一个文件,因为public对三个角色都开放了w权限么,那无论什么身份的用户都可以在public目录下像删除谁就删除 谁,无论是删自己的文件,还是删别人的文件,没有任何权限约束,想怎么删就怎么删。


就像下面,我们就坏坏的把wyn1文件给删除掉了。


所以现在就有一个非常严重的问题摆在我们的面前,public目录下的文件被所有人共享的时候,受权限的约束,但是拦不住别人删我的文件!!!


这里起始有一个逻辑,就是为什么共享目录拦不住我们删除文件呢?因为目录的w权限本身就可以在目录下创建或删除文件,他是同时带有这两个权限的,而一个共享目录他是必须必须要拥有其他用户在里面创建文件的权限,所以他又必须带上w,带上w那也就意味着,其他用户可以随便删除文件了,这样无法化解的矛盾,就必须有人来解决,这个人就是+t,粘滞位的作用就引出来了。

39b735640d4c4b12b9fdc06ded860b40.png

bb7f124c0d0141b28c147dcf1effc149.png



我们现在利用root的身份对public的所有角色加上t粘滞位并且带上a选项,但可以看到只在public的other角色下的x位置变成了t,t就是该目录设置的粘滞位

63b395b099e7419dbcb79ec59f58bbef.png

指令:chmod +t public


加上我们的粘滞位之后,我们又想故技重施,但是这回我们删不了了,操作被拒绝了,因为我们的public共享目录是被设置了粘滞位的


b7ad5299b28244688881ce60a761cb55.png


设置粘滞位之后,共享目录public下的文件一般只能被两种人删除,一种是root,一种是文件的拥有者

起始也可以被目录的拥有者删除,但目录的拥有者一般就是root,所以我们上面才说,共享目录下的文件一般都是由root或文件的拥有者删除的。


5.权限的匹配规则(很重要!很重要!很重要!)

权限的匹配规则是:只能匹配一个人,并且优先匹配拥有者,然后才是所属组,最重要的是他只会匹配一次。



三、关于Linux指令和Linux下文件权限的总结


1.Linux发展史

2.云服务器环境的搭建

3.ls/cd/pwd/whoami/touch/mkdir/rm/rmdir/bc/cal/date/wc/grep/more/less/head/tail/zip/unzip/tar/ll/clear/cat/man/echo/tree/nano/which/whereis/find/file/cp/mv/chmod/chgrp/sort/uniq/gcc/su/sudo/top/stat/uname/alias/umask/history/useradd/userdel/passwd/usermod/chown

4.Linux目录结构、重定向、管道、~、-、家目录、文件类型、目录权限、umask、粘滞位

5.权限、概念、用户(具体的人,角色)、chmod ugo±rwx or 八进制,chown chgrp更改角色

























相关文章
|
2月前
|
存储 Linux 数据安全/隐私保护
Linux文件权限及用户管理
Linux文件权限及用户管理
16 0
|
2月前
|
安全 Linux 数据安全/隐私保护
【Linux】深入理解Linux文件权限
【Linux】深入理解Linux文件权限
36 0
|
5月前
|
存储 Linux 数据安全/隐私保护
哇~~真的是你呀!今天是Linux文件权限与归档压缩。
Linux文件权限可以控制文件和目录的读取、写入和执行权限,保护系统和用户文件的安全性和私密性。文件权限通常使用r、w、x三个字母来表示,分别表示读取、写入和执行的权限。Linux中文件权限被分成三个等级:用户(user)、用户组(group)、其他人(other)。每个用户可以被分配为不同的用户组,同时用户也可以独立属于一个用户组。
55 0
|
5月前
|
Linux Go 数据安全/隐私保护
linux常用命令手册 用户管理useradd 文件权限管理chmod 搜索管理find grep
linux常用命令手册 用户管理useradd 文件权限管理chmod 搜索管理find grep
65 2
|
6月前
|
安全 Linux Shell
Linux加强篇005-用户身份与文件权限
山重水复疑无路,柳暗花明又一村
285 2
Linux加强篇005-用户身份与文件权限
|
7月前
|
运维 Linux Go
【Linux】管理Linux文件权限属性介绍
【Linux】管理Linux文件权限属性介绍
62 0
【Linux】管理Linux文件权限属性介绍
|
8月前
|
安全 Linux 数据安全/隐私保护
Linux 文件权限基础:文件和目录权限管理指南
Linux 文件权限基础:文件和目录权限管理指南
289 0
|
2月前
|
安全 Ubuntu Shell
Linux之用户权限和文件权限详解
Linux之用户权限和文件权限详解
|
6月前
|
安全 Linux
Linux文件权限详解
Linux是一款功能强大的操作系统,其文件权限系统是确保文件和系统安全的关键组成部分。正确理解和配置文件权限对于维护系统安全至关重要。
108 4
Linux文件权限详解
|
2月前
|
Linux
Linux 文件权限详细教程
Linux 文件权限是系统中非常重要的概念之一,用于控制对文件和目录的访问。权限分为读(Read)、写(Write)、执行(Execute)三个部分,分别表示对文件的读取、修改和执行操作的权限。 文件权限可以分为三类用户:文件所有者(Owner)、文件所属组(Group)、其他用户(Others)。 查看文件权限 可以使用 ls -l 命令来查看文件的详细权限信息。 执行该命令后,会显示包括权限、所有者、所属组、文件大小、创建时间等信息。
55 2