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

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

我正在 Linux Ubuntu Server 14.04 LTS 上创建 FTP 用户,但是当我尝试通过 FileZilla 使用 SFTP 登录时出现以下错误:

Received unexpected end-of-file from SFTP server

如果我尝试连接我的 root 用户,一切都很顺利,所以我一定是在新用户创建过程中遗漏了某些内容。以下是我所做的:

首先,我在 /etc/shells 中创建了一个假 shell,将其命名为 /bin/false,然后创建一个名为 ftpgroup 的组

sudo groupadd ftpgroup

然后我在其中创建了 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 命令,如果可能的话我会避免这种情况,我只希望他访问他自己的目录中的文件,仅此而已。

答案1

使用以下命令更改 /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-chrooted-isolated-file-directory/

答案2

您可以/etc/ssh/sshd_config稍加修改并使用

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

当然,替换成username你想限制的用户名,也可以用Match Group参数匹配用户组。

无论如何,经过修改并重新加载你的 ssh 服务器配置后它应该可以工作。

相关内容