OpenSSH 5.3 为 SFTP chroot 环境设置 UMASK,根本不起作用

OpenSSH 5.3 为 SFTP chroot 环境设置 UMASK,根本不起作用

我尝试在 chrooted 环境中覆盖 SFTP 连接上的 umask 设置。我无法使用不同于 internal-ftp 的子系统。

在 OpenSSH_5.3p1(Debian-3ubuntu4,OpenSSL 0.9.8k 2009 年 3 月 25 日)中,可以直接从命令进行 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

无论如何,它不起作用。

答案1

如果您不想要补丁解决方案,这里还有另一种解决方法:

在 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。

答案2

您可能需要查看一个补丁,它SftpUmask为 添加了选项sshd_config

http://sftpfilecontrol.sourceforge.net/

您还可以使用 pam_umask此主题。 在/etc/pam.d/sshd

session    optional     pam_umask.so umask=0002

相关内容