偶然我跑了chmod -u filename
,它删除了我拥有的所有权限filename
。
手册页没有引用-u
选项。实验我能够得出结论,它不会删除所有权限,而只是读取和执行访问权限,而写访问权限保持不变。
那么这到底是做什么的呢?
我上面的结论是错误的,我现在认为它所做的是从所有类别中删除所有者拥有的权限。
我认为这种行为类似于a=u
,只是它-
不是,=
并且a
可以像它一样被丢弃,例如,a+x
。
偶然我跑了chmod -u filename
,它删除了我拥有的所有权限filename
。
手册页没有引用-u
选项。实验我能够得出结论,它不会删除所有权限,而只是读取和执行访问权限,而写访问权限保持不变。
那么这到底是做什么的呢?
我上面的结论是错误的,我现在认为它所做的是从所有类别中删除所有者拥有的权限。
我认为这种行为类似于a=u
,只是它-
不是,=
并且a
可以像它一样被丢弃,例如,a+x
。
这不是一个选项,而是一种指定权限的标准(但不常见)方式。这意味着为所有用户(没有前面的、 或)删除 (
-
) 与文件所有者 ( ) 关联的权限。这记录在手册页中。u
u
g
o
GNU chmod 的手册页将其记录为:
然后
因此,
-u
意味着删除 (-
) 当前为所有人 () 启用的任何权限u
(等同于a-u
,除了尊重当前的 umask)。虽然这通常不会很有用,但类似的chmod +u
情况有时会是,例如,在递归操作时将权限从所有者复制到其他人。它也记录在 POSIX 中,但定义更加模糊:权限规范是广泛
who[+-=]perms
的(或数字),并且进一步指定了这些规范的效果:接着
答案与https://unix.stackexchange.com/a/429424/255251有点相似。
不会删除所有权限,但会考虑
umask
价值。现在更改 umask 值