sftp服务器的chroot初始目录

我用chrootconfiguration了一个sftp服务器,它工作正常,唯一困扰我的是最初的登陆目录,因为sftp用户在登陆文件夹中没有写入权限,他必须去一个以他自己命名的文件夹用户名来上传文件。

我已经设置了:ForceCommand internal-sftp -d%u,我在一些configuration指南中发现它们说它应该更改登陆文件夹,但是它不起作用。 在开始时我已经在passwd上为用户loginconfiguration了一个空脚本,但是如果它可能与此有关,我将它改为了/ bin / bash。 我重新启动服务,所以也可能不是这个原因。

也许这可能与ssh的版本有关,我使用的分发版或者sshd都不能这样做?

这是我的configuration关于sshd:

CentOS版本6.6(最终版)

OpenSSH_5.3p1,OpenSSL 1.0.1e-fips 2011年2月11日

Subsystem sftp internal-sftp Match group sftponly ChrootDirectory %h X11Forwarding no AllowTcpForwarding no ForceCommand internal-sftp -d %u 

你可以使用sftp选项来更改你的起始目录。 请参阅sftp-server(8)手册页:

-d start_directory

为用户指定备用起始目录。 path名可能包含以下在运行时展开的标记: %%被replace为文字'%', %h被replace为被authentication的用户的主目录, %u被replace为该用户的用户名。 默认是使用用户的主目录。 此选项与sshd_config(5) ChrootDirectory选项一起使用时很有用。

你可以通过把它作为internal-sftp的参数来做到这一点,例如:

 Subsystem sftp internal-sftp -d "%h/sftp_home/" 

这应该从6.2版本开始