我尝试覆盖chrooted env中的SFTP连接上的umask设置。 我不能使用subsytem diffrente比internal-ftp。
在OpenSSH_5.3p1(Debian-3ubuntu4,OpenSSL 0.9.8k 2009年3月25日)中,直接从命令中设置了umask。
你怎么能够设置?
我的sshdconfiguration是:
Match User myuser ChrootDirectory /mnt/jail/myuser/ AllowTCPForwarding no X11Forwarding no #ForceCommand /usr/lib/openssh/sftp-server -l DEBUG3 #ForceCommand /bin/sh -c 'umask 002; /usr/lib/openssh/sftp-server' ForceCommand internal-sftp -u 002
无论如何,它的剂量作品。
如果你不想要补丁解决scheme,这是另一个解决方法:
在sshd_config中:
# Subsystem sftp /usr/lib/openssh/sftp-server Subsystem sftp /usr/local/bin/sftpwrapper # And the Match Group, ChrootDirectory, etc... declarations
并在/ usr / local / bin / sftpwrapper(chmod 755,chown root:root)
#!/bin/bash -- umask 0002 exec /usr/lib/openssh/sftp-server
chrooted组中的用户仍然可以使用/ bin / false作为shell。
有一个补丁可能需要查看,它为sshd_config
添加了一个SftpUmask
选项。
http://sftpfilecontrol.sourceforge.net/
你也可以使用这个线程的 pam_umask。 在/etc/pam.d/sshd
:
session optional pam_umask.so umask=0002