local_umask 和 file_open_mode 如何工作?

local_umask 和 file_open_mode 如何工作?

当本地用户通过 vsftp 将文件上传到服务器时,我遇到了一些文件权限问题。

我希望文件具有全部 766 个权限。经过多次尝试和错误,我发现必须进行如下设置:

local_umask=011
file_open_mode=0777

但我不知道为什么这会导致 766 个权限。有人能解释一下吗?

答案1

vsftpd守护进程将创建文件权限为0777。从此,local_umask0011) 被减去。umask 本质上是删除你不希望用户拥有的权限。这会导致用户的文件权限设置为0766

有关详细信息,请参阅此文章文件权限

答案2

umask 值会从打开模式设置中减去。如果您不提供自定义 umask 值,则将使用默认值 (077),从而导致您不想要的结果。

答案3

您获得此权限的原因是:

1)设置local_umask = 011,您告诉vsftp设置:

0:读取、写入和执行 1:读取和写入 1:读取和写入

这相当于 chmod 766。

2)file_open_mode=0777的值没有被解析,

在这里你可以找到关于什么是 umask 以及如何使用它的很好的解释:https://www.cyberciti.biz/tips/understanding-linux-unix-umask-value-usage.html

相关内容