我一直在这里搜索,但找不到类似的问题。
我已经在上设置了SSH
服务器,问题是 在没有执行权限的情况下应用了。即使我更改了不同的值,执行权限也永远不会被应用。sftp
debian 7
umask
这是我的配置:
Match Group sftp-users
ChrootDirectory /sftp/%u
AuthorizedKeysFile /sftp/%u/.ssh/authorized_keys
X11Forwarding no
AllowTcpForwarding no
# AuthenticationMethods publickey
ForceCommand internal-sftp -u 0002
例子:
-u 0002
上传的 file.txt 应该获得 775 权限,但实际获得的是 664-u 0222
上传的 file.txt 应该得到 555 但得到了 444-u 0666
上传的 file.txt 应该得到 111,但得到了 000
您能否告诉我应该检查哪些文件或需要查看哪些其他配置?谢谢!
答案1
首先你应该明白什么是umask
(手册页对此进行了很好的解释)。它不是对您将获得的权限的完全否定,而是应该从上传文件的原始权限中剥离的权限掩码。这意味着,您需要考虑您尝试上传的文件的原始权限,0666
除非它是可执行文件,否则通常是(但您永远无法知道用户将要上传的文件将具有什么权限)。
这就是为什么上游 OpenSSH 中的错误请求您所描述的功能,但肯定不再调用它umask
。如果您想使用此功能,它已经在 Fedora/RHEL 中了。