Answers:
该chmod符号表示法是更细粒度相比八进制符号,允许特定模式的比特修改,同时留下其他模式位不变。
符号表示法由三个部分组成:
chmod [references][operator][modes] file
在references由字母的组合ugoa,其中指定用户的访问file将被修改:谁拥有它(用户u),该文件的组中的其他用户(g),其他用户没有文件的组(中o),或所有用户(a)。如果references省略该组件,则默认为所有用户使用,但仅umask修改允许的权限。
在+ operator使指定的文件模式位被添加到每个文件的现有的文件模式比特; -使它们被删除;和=要除去的原因要添加他们非特定比特,除了setuid和setgid对于目录中置位,除非明确指定。
在mode由字母组合而成的rwxXst,其对应的read( r),写(w),执行(或搜索目录)( x),执行/搜索只如果该文件是一个目录或已经有一些用户执行权限(X)setuid或setgid(取决于指定的参考)(s)和受限制的删除标志或粘性位(t)。或者,mode可以由字母之一组成ugo,在这种情况下,字母mode对应于当前授予所有者(u),文件组成员(g)或上述两个类别中没有用户权限的权限o。
例子
假设设置的权限file是0764/-rwxrw-r--
从不在文件组中的其他用户删除权限:
八进制: chmod 760 file
请注意,使用八进制表示法时必须如何保留现有权限不变。
象征性的: chmod o-rwx file
使用符号表示法时,现有文件权限无关紧要。
设置setuid:
八进制: chmod 4764 file
象征性的: chmod u+s file
设置setgid:
chmod 2764 filechmod g+s file使用字母,可以在不更改其他位的情况下打开和关闭各个位。
说我有以下目录:drwxrwsr-x 6 f261-01a g261-01a 4096 Sep 12 17:51 / home / teams / 261 / f261-01a
如果我想关闭其他用户的读取权限,并且想使用数字,我可能会很快做chmod 751。除了我刚刚关闭目录上的setgid位。哎呀。
但是,如果使用chmod o-r,则仅关闭所需的读取位,并且目录上的setgid位保持设置。
如果要打开文件或目录上的setuid,setgid或粘性位,这也很有用。特别是如果您很少这样做,则很难记住第四个八位位组中的哪一位。
因此,这取决于您在做什么。当我只是设置权限时,我仍然更喜欢使用数字,而我并不关心开头是什么。但是,如果要切换单个位,则字母符号会容易得多。