字母与数字的 Chmod

Gau*_*tam 9 chmod

最近,一位同事要求我使用chmod字母而不是数字。除了明显的可读性优势之外,还有什么特别的理由使用字母而不是数字吗?

Tho*_*man 15

chmod符号表示法是更细粒度相比八进制符号,允许特定模式的比特修改,同时留下其他模式位不变。

符号表示法由三个部分组成:

chmod [references][operator][modes] file
Run Code Online (Sandbox Code Playgroud)

references由字母的组合ugoa,其中指定用户的访问file将被修改:谁拥有它(用户u),该文件的组中的其他用户(g),其他用户没有文件的组(中o),或所有用户( a). 如果references省略该组件,则默认为所有用户,但只umask修改允许的权限。

+ operator使指定的文件模式位被添加到每个文件的现有的文件模式比特; -导致它们被移除;和=要除去的原因要添加他们非特定比特,除了setuidsetgid对于目录中置位,除非明确指定。

mode由字母组合而成的rwxXst,其对应的read( r),写(w),执行(或搜索目录)( x),执行/搜索只如果该文件是一个目录或已经有一些用户执行权限(X),setuidsetgid(取决于指定的引用)( s) 和受限删除标志或粘滞位 ( t)。或者,mode可以由字母 之一组成ugo,在这种情况下,mode对应于当前授予所有者 ( u)、文件组成员 ( g) 或上述任一类别 ( o) 中的用户的权限。

例子

假设在权限集fileIS0764/-rwxrw-r--

删除不在文件组中的其他用户的权限:

  • 八进制: chmod 760 file

    请注意,在使用八进制表示法时,必须如何重复保持不变的现有权限。

  • 象征性: chmod o-rwx file

    使用符号表示法,现有文件权限无关紧要。

设置setuid

  • 八进制: chmod 4764 file

  • 象征性: chmod u+s file

设置setgid

  • 八进制: chmod 2764 file
  • 象征性的 chmod g+s file