mas*_*ini 5 file-permissions umask sshfs
如果我在没有 umask 的情况下安装 sshfs 服务器,我会得到-rw-rw-r--新创建的文件。如果我尝试在浏览器上打开服务器上的 php 文件,则会收到以下错误:
Incorrect file/directory permissions: Above 755.
In order files to be processed by the webserver, their permissions have to be equal or below 755.
Run Code Online (Sandbox Code Playgroud)
所以我尝试了umask=0022:新创建的文件有-rwxr-xr-x. 这些权限很好,因为上面的错误不再出现。但是,我不明白为什么新文件被设置为可执行文件......
您能解释一下吗?非常感谢...
来自sshfs手册:
-o umask=M
set file permissions (octal)
Run Code Online (Sandbox Code Playgroud)
请注意,手册提到选项名称是umask。因此,它与您在 中使用的值不同chmod,其中7表示rwx(二进制111)。相反,正如其名称所示,umask它是一个mask。
对于fuse,此掩码用作所需权限的反转。
然后,从http://wiki.gilug.org/index.php/How_to_mount_SFTP_accesses#General_working_of_umask,我们得到以下内容:
[umask i]模板掩码。与 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 ---
Run Code Online (Sandbox Code Playgroud)
因此,如果您提供0022,则权限将如下所示:
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
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
15641 次 |
| 最近记录: |