在Linux Ubuntu Server 14.04 LTS中创buildFTP用户以使用SFTP访问特定目录

我正在Linux Ubuntu Server 14.04 LTS上创build一个FTP用户,但是当我尝试通过FileZilla与SFTPlogin时,出现以下错误:

Received unexpected end-of-file from SFTP server 

如果我尝试与我的根用户连接一切都很好,所以我必须错过新的用户创build中的东西。 这是我做的:

首先我在/ etc / shells中创build了一个假shell,命名为/ bin / false我创build一个名为ftpgroup的组

 sudo groupadd ftpgroup 

然后我在其中创build了ftp用户

 sudo useradd --home /var/www/html/mydir --group ftpgroup --shell /bin/false myftpuser 

我给用户一个密码

 sudo passwd myftpuser 

并把它作为我给他的主目录的所有者

 sudo chown -R myftpuser /var/www/html/mydir 

最后我设置了文件夹的权限

 sudo chmod 755 /var/www/html/mydir 

我知道将/ bin / false shell更改为/ bin / bash会使其工作,但这会让我的用户能够访问shell命令,如果可能,我会避免这种情况,我只想让他访问文件他自己的目录,没有更多。

用下面的命令更改/ var / www / html / mydir的所有者

 sudo chown -R root:ftpgroup /var/www/html/mydir 

检查这一个参考http://devtidbits.com/2011/06/29/implement-a-sftp-service-for-ubuntudebian-with-a-china-education-isolated-file-directory/

你可以稍微修改/etc/ssh/sshd_config并使用

 Match User myftpuser ChrootDirectory %h ForceCommand internal-sftp AllowTcpForwarding no PermitTunnel no X11Forwarding no 

当然,用您想要限制的用户名replaceusername名。 也可以使用Match Group参数匹配用户组。

无论如何,修改和重新加载你的SSH服务器configuration后,它应该工作。