【问题标题】:SFTP overwrite fails for user with group write access具有组写访问权限的用户的 SFTP 覆盖失败
【发布时间】:2016-02-04 03:49:54
【问题描述】:

这真的很奇怪。我有一个带有 proFTPD 的 Ubuntu 服务器设置(12.04),并且我已经打开了 SFTP。我有一个用户,我希望能够编辑一组文件。这些文件归用户 www-data 和组 www-data 所有。这些文件的权限为 664。用户在组 www-data 中,并且能够在通过 shell 通过 ssh 连接时查看和编辑文件。但是,通过 SFTP,用户可以查看这些文件,但尝试编辑它们会导致 SFTP 报告权限被拒绝,然后导致文件大小为零。但是,用户能够删除和移动文件。谁能想到为什么会发生这种情况?我也尝试将文件的组所有权更改为另一个组,并将用户添加到该组,但出现同样的问题。

使用 proFTPD 的常规 FTP 不会出现此问题。

编辑:按要求,报错全文(这是通过sftp命令行交互模式):

Uploading /Users/leonaves/Desktop/testfile to /testfile
remote open("/testfile"): Permission denied

编辑 2:用户主目录的 ls -l 输出:

编辑 3:SFTP 日志显示如下:

error changing permissions of '/testfile' to 0100644: Operation not permitted

【问题讨论】:

  • “尝试编辑它们会导致 SFTP 报告权限被拒绝” 请编辑您的问题以包含此错误消息的完整文本。显示此 www-data 目录(目录本身)以及您尝试覆盖的这些文件的“ls -l”输出也会很有帮助。
  • @Kenster 添加了错误消息,将截图并添加 ls -l 输出。
  • @Kenster 添加了 ls-l 输出
  • 包含testfile的目录有什么权限?
  • drwxr-xr-x 并归尝试上传的用户和该用户组所有,这是他们的主目录。

标签: ubuntu ftp sftp file-permissions proftpd


【解决方案1】:

所以,问题在于,无论出于何种原因,proFTPD 都试图在上传到 0644 之前设置文件的权限,但由于用户不是所有者,因此无法设置。它尝试设置这些权限的原因是 proFTPD 文档 (http://www.proftpd.org/docs/contrib/mod_sftp.html#SFTPOptions) 中的详细信息:

当 SFTP 客户端上传文件或创建目录时,路径上所需的权限将作为上传的一部分发送到服务器。 (这与 FTP 不同,FTP 在上传时不包括文件权限。)

现在,我不确定是否是我的客户端(我尝试了多个 SFTP 客户端)故意尝试设置这些权限,或者它是否是 proFTPD 的默认设置,但使用了IgnoreSFTPUploadPerms 选项(详见文档的上述链接部分),我能够阻止这种影响文件传输的情况:

如果您出于任何原因需要更多类似 FTP 的功能并希望 mod_sftp 静默忽略 SFTP 客户端发送的任何权限,请使用此选项。

【讨论】:

    猜你喜欢
    • 2015-06-25
    • 2018-10-06
    • 2023-04-03
    • 2014-08-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-02-16
    • 1970-01-01
    相关资源
    最近更新 更多