使用 chmod 时 + 和 = 有什么区别?

Val*_*orn 5 command-line chmod

我阅读了关于chmod 的所有内容,但我什么也没得到。如果我写chmod u=rwx file这个“影响”我对文件的所有权限,如果我写chmod u+rwx file这个“添加”我对文件的所有权限,但是+和之间有什么区别=

gle*_*man 12

由于您指定了所有读取、写入和执行位,因此没有区别。

如果您只指定一些位,就会出现差异:

$ umask 022
$ touch afile ; ls -l afile
-rw-r--r-- 1 jackman jackman 0 Aug 21 11:23 afile
$ chmod u+x afile; ls -l afile
-rwxr--r-- 1 jackman jackman 0 Aug 21 11:23 afile*
$ chmod u=x afile; ls -l afile
---xr--r-- 1 jackman jackman 0 Aug 21 11:23 afile*
Run Code Online (Sandbox Code Playgroud)

  • 其实,还是有区别的。如果设置了 setuid 位,则将取消设置。 (6认同)

dag*_*rha 8

手册页

运算符 + 使选定的文件模式位添加到每个文件的现有文件模式位中;- 导致它们被移除;和 = 导致它们被添加并导致未提及的位被删除,但目录的未提及的设置用户和组 ID 位不受影响。