我们知道linux中文件权限分别是-rwx,分别代表无权限、读、写、执行。

权限也可以用数字来表示,比如我们常说的777、755、644等。

从最简单的说起

  • -代表无权限,用数字表示是 0
  • r代表读权限,用数字表示是4
  • w代表写权限,用数字表示是2
  • x代表执行权限,用数字表示是1

老师讲的转换方式

以前在兄弟连培训的时候,李超老师讲过,一个方法

就是把要给的权限先转换成数字,然后加起来

比如777权限,7=1+2+4,其中124分别代表执行、读、写。

  • 三个7中,第一个7代表文件所属用户对该文件的权限为7(所有权限)
  • 第二个7代表文件所属用户组对该文件的权限为7
  • 第三个7代表其他用户组对该文件的权限为7

(ps:也就是说任何一个人对该文件都有读写执行权限,所以说嘛~不要随便设置777权限)

自己get到的一个转换方式

假设我们要给一个文件如下权限(所属用户拥有rwx,同用户组和其他用户拥有读和执行):

-rwxr-xr-x

第一个-代表这是一个文件,如果是目录则会显示d

我们把后面权限的部分拿出来,用二进制来表示,如果有权限用1表示,反之为0

那么这个文件权限转换成了

111 101 101

然后把每个三位数转换成10进制,分别为:

7 5 5

看到755 是不是就明白啦~~

Linux Shell中转换进制

下图是在Linux Shell中二进制转十进制的方法(口算帝绕道!)

2016-03-14 05-55-13屏幕截图.png

文章最后的参考中写了一个各种进制及base64|32转换的相关文章

参考文章

linux shell 不同进制数据转换(二进制,八进制,十六进制,base64)