先放段子,波音777权限这么高真的安全吗?
忘记是在知乎还是微博看到的了,很简单的一句话,由于之前折腾Linux也按照教程敲过chmod 777
的命令,大概知道777是获取最高权限的意思,一直也不知其所以然。抽空又学习了一波相关的知识,才发现关于最高权限的理解依然是有所偏差的。把相关知识做个总结,看段子也要有内涵!
一,从查看文件属性开始
先随便找个目录,使用 ls -l
查看文件具体属性
这是桌面上的几个文件,大都是快捷方式。可以看到每条文件都有很多条内容,但是除了最后的文件名和时间,其他的都不太好猜。
先对文件属性的条目做个具体介绍。从左到右
文件类型和权限 链接数 所有者 所属用户组 文件大小 最后修改时间 文件名
其中最重要的就是第一条,今天要讲到的文件权限,下面具体来解释。
二, 文件类型和权限
文件类型和权限中一共有10位,第一位表示文件类型,可以看到上述文件的第一位都是 -
-
代表普通文件,具体一些类型如下:
d 目录 l 软链接 b 块设备 c 字符设备
s socket p 管道 - 普通文件
后面的9位按每三位划分为 拥有者权限 、 所属用户组权限、其他用户权限
注意这个顺序是固定不变的。
r 表示允许读权限
w 表示允许写权限
x 表示允许执行权限
使用rwx表示获得了全部权限,没有相关权限则使用 -
替代。既 r--
表示只有读权限,没有写和执行权限。
三,修改文件权限
了解了文件权限的基本知识后,我们可以尝试下修改文件权限。Linux支持多用户,和windows不同,你可以通过设置文件的权限来限制其他用户的访问,并且操作非常方便。
我们来新建一个文件来测试。
新建的txt文件只有读写权限,有两种方法可以修改文件权限,
第一种 数字权限修改
这种方式就是开头那个段子的来源了,我们先来看下操作效果。
使用 chmod 777 test.txt
重新查看文件,可以发现 拥有者,所属用户组,其他用户组都获得了全部权限。所以波音777的权限不只是高,是所有人都有权啊。
Linux使用三位数分别代表上述三个用户组,顺序固定。数字的值代表该用户组所拥有的权限类型。那么这个值是如何计算的呢。
发现所有者,所有者用户组失去了写权限和执行权限。
上述命令中ug表示要操作的用户组,u 、g、o 分别表示user,groups,other
减号表示删除权限,加号表示增加权限。
到了这里,Linux文件权限的基本操作就介绍完了。最近也是转到了Linux平台,所以也在边用边学,真心向没有mac的Android同学推荐,模拟器和Gradle编译简直快到没朋友!还有更多东西,再慢慢发掘吧~