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 file
chmod 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或粘性位,这也很有用。特别是如果您很少这样做,则很难记住第四个八位位组中的哪一位。
因此,这取决于您在做什么。当我只是设置权限时,我仍然更喜欢使用数字,而我并不关心开头是什么。但是,如果要切换单个位,则字母符号会容易得多。