rwx 和八进制版本之间是否有基于网络的转换器?

rwx 和八进制版本之间是否有基于网络的转换器?

rw-r--r--我永远不记得从类似到的转换是什么644。两者之间是否有一个简单的基于网络的转换器?

答案1

该站点提供了一种交互式方式来查看设置/取消设置各个位时设置了哪些权限位。

“计算器”看起来像这样:

  SS#1

答案2

为什么首先需要八进制数?

我总是使用:

chmod o+x file   # all + eXecute permissions
chmod g-w file   # group - write perms
chmod u=r file   # user can just read
chmod ug=rw file # user,group = read and write
chmod a+w file   # user,group,others + write 

ugo(a) 很容易记住。但是,您可能会混淆 o:=owner?哦:=其他?但如果 o=owner,u 会是什么? u:=用户,因此o=其他。

有些命令只喜欢数字权限。好吧,如果你记住两个序列:ugo + rwx,那么计算起来并不难。

    r   w   x  | Sum
u   4   2   1  | 7
g   4   -   1  |  5
o   4   2   -  |   6
---------------------
                 756

是的,非常人为。

说到s和SI就得查阅手册了。也许下次谷歌一下。 :)

答案3

八进制用于权限,因为它是简单的转换。每组rwx形成一个八进制数字。您只需记住 2 的前 3 次方:4, 2, 1. r= 4, w= 2, x= 1。

rw-r--r--= 110 100 100= 4+2+0 4+0+0 4+0+0=644

答案4

我有一个小别名,您可以将其放入 .bashrc (或等效文件)中。

免责声明:我不是剧本的作者,我不确定是谁写的……但支持他/她这样做。

alias lsp="ls -l --color | 
      awk '{k=0; for(i=0;i<=8;i++) k+=((substr(\$1,i+2,1)~/[rwx]/)*2^(8-i));
      if (k) printf(\" %0o \",k); print}'"

相关内容