debian internal-sftp -u 0002 umask 无法正常工作 - 缺少执行权限

debian internal-sftp -u 0002 umask 无法正常工作 - 缺少执行权限

我一直在这里搜索,但找不到类似的问题。

我已经在上设置了SSH服务器,问题是 在没有执行权限的情况下应用了。即使我更改了不同的值,执行权限也永远不会被应用。sftpdebian 7umask

这是我的配置:

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 中了。

相关内容