导读 | 相信很多人在Linux里面,遇到文件权限问题的时候,总是喜欢把文件的权限修改为777。觉得这样可以解决一切问题。 |
我们知道,1,2,4这三个数字可以表示7以内的所有数字。例如:
- 1: 1
- 2: 2
- 3: 1 + 2
- 4: 4
- 5: 1 + 4
- 6: 2 + 4
- 7: 1 + 2 + 4
那么,如果要表示15以内的所有数字,还需要增加哪个数?你可能要想半天,才知道,需要增加一个8。
但是,如果我们从二进制的视角来看这些数字,就会发现实际上问题非常简单:
- 1: 001
- 2: 010
- 4: 100
如果我们令可执行权限对应001,可写权限对应010,可读权限对应100。那么,可读又可写对应110,也就是十进制的6。可写又可执行对应011也就是十进制的3。显然,111为可读可写可执行,对应十进制的7。
如果我们要增加一个控制能否修改的参数,那么我们就可以用高4位来表示,可修改:1000。
由于 Linux 中,文件的权限分别需要为文件所有者、跟所有者在同一个用户组的其他人以及不在同一组的其他人设置。如果不能读,不能写,不能执行,就是二进制的000对应十进制的0.
对于 SSH 私钥这种极度敏感的文件,显然只能文件所有者可读可写,于是它的权限为:110 000 000也就是600了。
如果要对所有登录系统的人都可读可写可修改,显然文件权限为111 111 111自然就是十进制的777。
网上有一些垃圾文章,会引诱你把文件权限设置为777。只要你看到这种文章,那么这个文章的作者一定是一个水货。
请大家记住这样一句话:对于一个合理设计的软件、程序或者项目,如果某个地方需要你把权限设置为777才能使用,那么一定是你之前有地方搞错了!一定是你出错了。任何让你给文件设置权限为777的人,不是蠢,就是坏。
最后给大家出一道思考题,使用二进制位来表示权限有什么好处?
原文来自:
本文地址://q13zd.cn/power-124-chage.html编辑:问题终结者,审核员:逄增宝
Linux大全:
Linux系统大全: