Я попытался переопределить настройку umask для SFTP-соединения в chrooted env. Я не мог использовать различную подсистему, кроме внутреннего ftp.
В OpenSSH_5.3p1 (Debian-3ubuntu4, OpenSSL 0.9.8k 25 марта 2009 г.) есть настройка umask непосредственно из команды.
Как ты умеешь устанавливать?
Моя конфигурация sshd:
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
во всяком случае, это работает.
Если вам не нужен патч, вот еще одно решение:
В 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 в качестве оболочки.
Есть патч, который вы, возможно, захотите посмотреть, который добавляет SftpUmask
возможность sshd_config
.
http://sftpfilecontrol.sourceforge.net/
Вы также можете использовать pam_umask для эта тема. В /etc/pam.d/sshd
:
session optional pam_umask.so umask=0002