乐趣区

关于python:为什么权限管理会用124三个数字

置信很多人在 Linux 外面,遇到文件权限问题的时候,总是喜爱把文件的权限批改为 777。感觉这样能够解决所有问题。

那么大家有没有想过一个问题,为什么数字 7 示意一个文件具备可读、可写、可运行的权限?对于以后用户,如果想给文件权限设置为可写可执行不可读,那么应该用哪个数字?如果想让文件可读可写不可执行,又要用哪个权限?零碎强制要求 SSH 私钥的权限为 600,这里的 600 示意什么意思?如果想再加一个批改权限,那么它用哪个数字比拟好?

咱们晓得,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 的人,不是蠢,就是坏。

最初给大家出一道思考题,应用二进制位来示意权限有什么益处?

最近整顿了几百 G 的 Python 学习材料,蕴含新手入门电子书、教程、源码等等,收费分享给大家!想要的返回“Python 编程学习圈 ”,发送“J”即可收费取得

退出移动版