hello大家好😊
权限对文件的重要性 ❓
文件的内容就是数据,比如一般文本文件、数据库文件、二进制可执行文件等。所以对于文件来说,权限就意味着不同身份(所有者、所属组、其他人)对文件内容的操作限制
- r(read):可读取文件的内容。如读取文本文件的文字内容
- w(write):可对文件的内容进行修改。比如增加、删除文本文件里的文字内容(但不含删除该文件)
- x(execute):系统可以执行此文件。所谓执行文件就是执行文件内容,比如对于脚本文件,文件内容一般都是一堆命令
对于文件的rwx来说,主要都是针对文件的内容而言,与文件名的存在与否没有关系。毕竟文件记录的是实际的数据
权限对目录的重要性 ❓
文件是放实际数据的地方,那目录是什么呢?目录其实就是文件夹,目录里放的是文件。所以对于目录来说,权限就是对文件名的操作限制
- r(read contents of directory):可读取目录结构列表,也就是查询该目录下的文件名。当目录有r权限时,我们就可以使用
ls
命令将目录的文件名列表显示出来 - w(modify contents of directory):可变动该目录下的文件名。也就是:
可在该目录下创建新的文件或目录
可删除该目录下的文件或目录(而不论文件的权限是什么)
对该目录中已有的文件或目录进行更名
移动该目录中的文件或目录的位置 - x(access directory):可进入该目录,也就是让该目录称为工作目录。当目录有x权限时,我们可以使用
cd
切换到该目录
示例 ❗
我们通过一个特殊的例子来体会一下。
假设有两个文件名,分别是下面这样:
- /dir1/file1
- /dir2
假设你现在在系统使用 user1 这个账号,那么这个账号针对/dir1、/dir1/file1、/dir2 这三个文件名来说,分别需要哪些最小的权限才能完成各项任务?来看看下面的表格吧👇
操作 | /dir1 | /dir1/file1 | /dir2 | /重点 |
---|---|---|---|---|
读取file1内容 | x | r | - | 要能够进入/dir1 才能读到里面的文件数据 |
修改fle1内容 | x | rw | - | 要能够进入/dir1且修改fle1才行 |
执行file1内容 | x | rx | - | 要能够进入/dir1且file1能运行才行 |
删除file1文件 | wx | - | - | 要能够进入/dir1且具有目录修改的权限才行 |
将file1复制到/dir2 | x | r | wx | 要能够读file1且能够修改 /dir2内的数据 |
我们可以看到,要读一个文件时,我们得要具有这个文件所在目录的x权限才行。所以,通常要开放的目录,至少会具备rx
在上面的很多操作中,你只要具有x即可,r是非必备的,只是没r的话,使用 [tab] 时,它就无法自动帮你补齐文件名了。
总结 💯
好啦,我们来简单的总结一下:
组件 | 内容 | r | w | x |
---|---|---|---|---|
文件 | 实际数据 | 读到文件内容 | 修改文件内容 | 执行文件内容 |
目录 | 文件名 | 读到文件名 | 修改文件名 | 进入该目录 |
感谢 💖
好啦,这次的分享就到这里,感谢大家看到这里🤞
参考书目 🔎
《鸟哥的LINUX私房菜基础学习篇(第四版)》