我不能在SFTP + chrooted env上工作使用internal-sftp指令它工作,但我无法设置umask。 (ex umask 002)从openssh软件包使用sftp-server dosent不起作用,因为loginshell仅用于chrooted用户使用/ bin / false重放(文件未find)这是一个来自http://www.openssh的sshd服务器行为。组织/ faq.html常见#2.9
我的sshdconfiguration:
Match User sftponly ChrootDirectory /mnt/www-prod-shared-jail/sftponly/ AllowTCPForwarding no X11Forwarding no #ForceCommand internal-sftp -u 002 ForceCommand /usr/lib/openssh/sftp-server #ForceCommand /bin/sh -c 'umask 002; /usr/lib/openssh/sftp-server'
你怎么解决这个问题? 我的chrooted环境,在家里(chrooted)是/ jail / user / bin / false
我尝试:
你有什么想法 ?
谢谢,Ema
内部的sftp服务器以root用户身份运行,因此会启动root umask。 你可以通过强制umask来解决这个问题,比如在/etc/ssh/sshd_config修改
Subsystem sftp /usr/lib/openssh/sftp-server
至
Subsystem sftp /bin/sh -c 'umask 0002; /usr/libexec/openssh/sftp-server'
或者任何你想要的掩饰。
我最近碰到了这个。 在sshd_config中指定umask适用于sftp,但不适用于internal-sftp。 不幸的是,为了在不创build整个chroot环境的情况下监禁用户,你必须使用internal-sftp。 好消息是,如果您使用PAM,仍然可以设置umask。
创build一个包含所有sftp用户的组。 例如,我们称之为sftpjail。
然后将以下内容添加到/etc/pam.d/login
session optional pam_umask.so sftpjail umask=0002
这将为sftpjail组中的所有用户设置umask。
编辑如果你想使用上面的configuration,我很确定你所缺less的是chroot环境(二进制文件,configuration文件等) – 因此,当它试图chroot时出现“文件未find”错误。 虽然如果是我,我会回到使用“ForceCommand internal-sftp”并设置PAM中的umask
我有这个问题,但我在客户机上使用ssh而不是sftp。 只要我用sftp用户@主机而不是ssh用户@主机,它工作正常。