从sshfs
手册:
-o umask=M
set file permissions (octal)
请注意手册中提到的选项名称是umask
. 因此,它与您在 中使用的值不同chmod
,其中7
表示rwx
(二进制111
)。相反,顾名思义,umask
是一个面具。
对于fuse
,此掩码用作所需权限的反转。
然后,从http://wiki.gilug.org/index.php/How_to_mount_SFTP_accesses#General_working_of_umask,我们得到以下信息:
[umask i]sa 模板掩码。与 chmod 相反,因为用于在创建文件和目录时设置要设置的权限。八进制值越高,限制越多(在二进制级别,位 1 遮蔽属性,位 0 允许它)。
0 allows rwX
1 allows rw-
2 allows r-X
3 allows r--
4 allows -wX
5 allows -w-
6 allows --X
7 allows ---
因此,如果您提供0022
,权限将如下所示:
- AND with
0777
(参见umask手册页)仅考虑“用户”、“组”和“其他”权限(即丢弃掩码的第一部分)。
000 000 010 010 -> 0022
AND
000 111 111 111 -> 0777
=
000 000 010 010 -> 0022
- 反转三个权限。
000 010 010 -> 022
变成
111 101 101 -> 755
如果您不希望文件可执行,但希望它们可读可写 ( chmod 666
),则应设置umask
为:
110 110 110 = 666 <- chmod value
001 001 001 = 111 <- umask value