www-data 用户的 SFTP 权限 - 需要帮助!

www-data 用户的 SFTP 权限 - 需要帮助!

我遵循了本指南{http://john.parnefjord.se/node/62} 在 www-data 组中设置另一个用户 (joeuser),但尽管进行了这些更改,但未设置 unmask。/var/www/example.com/ 下的文件夹现在归 www-data 组所有,但只有 www-data 用户可以修改它。我已遵循并重复了该操作指南中提到的每个步骤。

我取消了以下脚本中的 echo 语句的注释:

#!/bin/bash
#/bin/echo `/bin/date` > /tmp/sftp-test.txt
#/bin/echo 'Starting SFTP server from wrapper script to set correct umask...' >> /tmp/sftp-test.txt
umask 0002;
/usr/lib/openssh/sftp-server

但是没有回显/记录任何内容。我猜这意味着脚本没有运行。现在我如何追踪 joeuser 登录时发生的事情?服务器正在运行 Ubuntu 11.4。

答案1

您说得对,这确实表明脚本根本没有运行,这意味着没有设置 umask,因此不会使用正确的权限创建文件/文件夹。

这是在 Ubuntu 系统上吗?

ls -l /usr/lib/openssh/您能发布和的输出吗cat /etc/ssh/sshd_config | grep Subsystem

更新:sftp-server实际上,我通过重命名sftp-server.orig然后创建一个包含以下内容的脚本来 实现此目的sftp-server

#!/bin/bash
umask 002
/usr/lib/openssh/sftp-server.orig

一定要chmod +x。我还重新启动了ssh服务,但在这种情况下可能没有必要。

不过,我确实发现 openssh 5.4 有一个设置 sftp umask 的选项,因此将来可能会有一种不那么黑客的方式来做到这一点,但我尝试过的 Ubuntu Lucid 服务器是 5.3 版本。

另外,我使用装有 Ubuntu Maverick 的笔记本电脑通过 Nautilus sftp 客户端进行连接。它会创建具有正确 umask 的目录,但不会创建具有正确 umask 的文件。我怀疑这是 Nautilus 客户端强制创建文件时出现的问题,如果使用 filezilla 或 winscp 等客户端,可能会正常工作。 更新:我刚刚验证了使用 winscp 复制的文件确实具有正确的文件权限。Nautilus sftp 客户端的缺陷很严重。

你也可以尝试这样的方法:http://en.positon.org/post/A-solution-to-the-umask-problem%3A-inotify-to-force-permissions

相关内容