如何将ProFTP和SSHD_config设置为FTP和SFTP到Ubuntu 12.04上的相同目录?

我在Ubuntu 12.04的chrooted环境中遇到了麻烦。

目的

设置FTP / SFTP服务器,用户可以在新的“sftp”组中的用户使用sftp和ftp到相同的目录

ProFTP设置

ProFTP安装程序是Ubuntu的基础版本,并且按预期工作。 用户'test1'可以通过tcp 21上的ftplogin到服务器,并被chrooted到他的目录/ home / test1 / ftproot。

在/etc/proftpd/proftpd.conf中

# Use this to jail all users in their homes DefaultRoot ~/ftproot 

当用户test1通过ftplogin时,他只看到/(这就是我想要的)。

但是当同一个用户通过sftplogin,并且使用sshd_config正确地chroot时,因为/ home / test1目录必须由root拥有,用户通过sftplogin并且看到:

 / /ftproot /.bashrc 

这意味着用户不会在同一个/ ftproot目录中结束。 test1将最终在他的/ home / test1主目录下,默认由root实际拥有。 因此,直到他将目录更改为/ ftproot,他才能通过sftp写入任何内容。

我如何设置SFTP服务器,所以默认情况下,他最终在同一目录?

这里是我的sshd_config相关设置:

 #Subsystem sftp /usr/lib/openssh/sftp-server Subsystem sftp internal-sftp -f AUTH -1 VERBOSE Match Group sftp ChrootDirectory %h ForceCommand internal-sftp #AllowTcpForwarding No 

ChrootDirectory%h / ftproot不起作用。

既然proftpd通过mod_sftp模块实现了自己的SFTP实现,那么使用SFTP实现SFTP(而不是OpenSSH)就可以mod_sftp地解决这个问题。

你需要改变用户test1到达的文件夹。 看看这个问题的答案: https : //stackoverflow.com/questions/3530433/putty-change-default-ssh-login-directory ;
cd subdir/subdir添加到〜/ .bashrc或〜/ .bash_profile或
更改用户的主目录。

要更改用户的主目录: usermod -d /path/to/dir/ username