我遵循本指南{ http://john.parnefjord.se/node/62 }在www-data组中设置另一个用户(joeuser),但是不pipe这些更改,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
但没有任何回应/logging。 我想这意味着脚本没有运行。 现在,如何跟踪joeuserlogin时发生了什么? 该服务器正在运行Ubuntu 11.4。
你是正确的,这确实表明脚本没有运行,这意味着umask没有被设置,所以文件/文件夹将不会被创build具有正确的权限。
这是在Ubuntu系统上?
你可以发布ls -l /usr/lib/openssh/和cat /etc/ssh/sshd_config | grep Subsystem的输出吗? cat /etc/ssh/sshd_config | grep Subsystem
更新:我实际上是通过将sftp-server重命名为sftp-server.orig ,然后使用以下命令创build一个名为sftp-server的脚本来实现的:
#!/bin/bash umask 002 /usr/lib/openssh/sftp-server.orig
一定要chmod +x 。 我也重新启动了ssh服务,但在这种情况下可能没有必要。
但是我确实发现,openssh 5.4有一个设置sftp umask的选项,所以将来可能会有一些不太好的做法,但是我试过的Ubuntu Lucid服务器版本是5.3。
另外,我使用Nautilus sftp客户端与Ubuntu Maverick连接使用笔记本电脑。 它会创build具有适当的umask的目录,但它不会创build具有正确的umask的文件。 我怀疑这是Nautilus客户端在创build的文件上强制umask的问题,如果使用诸如filezilla或winscp的客户端,则可能会正常工作。 更新:我刚刚证实,使用winscp复制的文件具有正确的文件权限。 这对Nautilus sftp客户端来说是不幸的。
你也可以尝试这样的: http : //en.positon.org/post/A-solution-to-the-umask-problem%3A-inotify-to-force-permissions