linux权限124,为什么权限管理会用124三个数字?

原标题:为什么权限管理会用124三个数字?

关注

7438c5b278572d3780a99d7b77e2ff01.png

来源 | 未闻Code

如若转载请联系原公众号

相信很多人在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的人,不是蠢,就是坏。

最后给大家出一道思考题,使用二进制位来表示权限有什么好处?返回搜狐,查看更多

责任编辑:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值