当本地用户通过 vsftp 将文件上传到服务器时,我遇到了一些文件权限问题。
我希望文件具有全部 766 个权限。经过多次尝试和错误,我发现必须进行如下设置:
local_umask=011
file_open_mode=0777
但我不知道为什么这会导致 766 个权限。有人能解释一下吗?
答案1
这vsftpd守护进程将创建文件权限为0777。从此,local_umask
(0011) 被减去。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