在 Liunx 中,有一组神奇的数字:421,加起来等于 7,有时候我们会看到或者设置一个文件的权限是 777,什么意思?难道权限和詹姆斯邦德一样神秘?其实这是 Liunx 的对文件设置权限的特殊代号,让我们一步一步学习它。
本篇文章你会学习到:
- Liunx 文件操作者类型
- 文件的权限
- 修改文件的权限
- FHS
使用者与群组
Liunx 文件的操作者有三种类型的用户:
- 使用者
- 群组
- 其他人
文件权限
每个文件都有不同的权限,这些信息会告诉你当前文件对应不同类型的人的权限是如何的。先用命令 ls -al
查看文件信息:
jay-liunx% ls -al
total 12
drwxr-xr-x 2 jay jay 4096 Jul 15 21:32 .
drwxr-xr-x 3 jay jay 4096 Jul 15 21:31 ..
-rwxr--r-- 1 jay root 6 Jul 15 21:32 test.txt
解读一下上面最后一条 -rwxr--r-- 1 jay root 6 Jul 15 21:32 test.txt
的信息:
- 文件的权限 -rwxr--r--
- 文件连接数 1
- 文件拥有者 jay
- 文件所属组 root
- 文件的容量 6
- 最后修改时间 Jul 15 21:32
- 文件的名称 test.txt
解读权限
接下来我们来解读真正权限的代号:-rwxr--r--
,先拆解:[-][rwx][r--][r--]
成四部分:
- 第一部分[-]:文件的类型
- [d]
- [-]
- [l]
- [b]
- [c]
- 第二部分[rwx]:拥有者的权限
- 第三部分[r--]:群组的权限
- 第四部分[r--]:其它用户的权限
解读 rwx
我们会发现,后面三个部分都是由 r、w、x 组成的,它们分别代表:
- r:可读
- w:可写
- x:可执行
OK 现在我们可以读懂文件权限信息了,-rwxr--r-- 1 jay root 6 Jul 15 21:32 test.txt
,这一串代表:
- 大小为 6 Bytes
- 文件名为 test.txt
- 在 Jul 15 21:32 时候创建
- 它对拥有者是可读可写可执行的
- 对 root 群组是可读的
- 对其他人也只有可读权限
421
那么回到我们文章的最前面,777 到底是什么代号?Liunx 为了方便对文件权限进行操作,为每个权限对应了不同的数字:
- 4=r:可读
- 2=w:可写
- 1=x:可执行
那么我们在对文件设置权限的时候通常是通过数字来设置的,例如:rwxr--r--
对应数字 744
。
修改文件的权限
我们可以通过以下命令对文件的权限进行修改:
- chgrp:改变文件所属组
- chgrp tech test.txt
- chown:改变文件拥有者
- chown jay test.txt
- chmod:改变文件权限
- chmod 777 test.txt
FHS
FHS(Filesystem Hierarchy Standard)是文件系统层级标准的英文简称。Liunx 系统的文件组织形式就是采用的这一标准。
它的主要目的是希望让使用者可以了解到已安装软件通常放置于那个目录下,所以他们希望独立的软件开发商、操作系统制作者、以及想要维护系统的使用者,都能够遵循 FHS 的标准。 也就是说,FHS 的重点在于规范每个特定的目录下应该要 放置什么样子的数据而已。
FHS 目录配置依据:
- 可共享的:可以共享给其他系统挂载使用的目录,所以包括可执行文件与使用者的邮件等数据,是能够共享给网络上其他主机挂载用的目录;
- 不可共享的:自己机器上面运行的设备文件或者是与程序有关的 socket 文件等,由于仅与自身机器有关,所以当然就不适合共享给其他主机了;
- 不变的:有些数据是不会经常变动的,跟随着 distribution 而不变动。 例如函数库、文件说明文档、系统管理员所管理的主机服务配置文件等等;
- 可变动的:经常改变的数据,例如登录文件、一般用户可自行收受的新闻群组等。
FHS 对目录树架构仅定义出 3 层目录下应该放置什么数据:
- / (root, 根目录):与开机系统有关;
- /usr (unix software resource):与软件安装/执行有关;
- /var (variable):与系统运行过程有关。
这部分的内容太多了,我们会用一张图来总结以下:
liunx
〖坚持的一俢〗
网友评论