基本 Ubuntu FTP 服务器

基本 Ubuntu FTP 服务器

我想在我的 Ubuntu Server 安装上设置一个基本的 FTP 服务器。我一直在使用 VSFTPD,但在让服务器允许我创建目录和复制文件方面遇到了问题。我已将系统设置为允许本地用户,但似乎这并不意味着我可以创建目录。这可能是我需要更好地了解 Ubuntu 服务器设置才能充分配置此 FTP 服务器的情况。最终目标是能够将文件从我的本地 dev 文件夹移动到我的 www 文件夹以进行部署。目录也需要能够移动。任何帮助都将不胜感激。

答案1

我推荐 PureFTPD,因为在我看来它是最简单、最容易使用的。您需要先安装它:sudo apt-get install pure-ftpd安装后它会自动启动。默认情况下,它使用 PAM 身份验证 - 这意味着它使用系统中已存在的帐户进行身份验证。您需要做的就是创建一个用户帐户,主目录是您的 www 路径,并为该帐户设置密码。然后,您应该能够使用该用户/密码组合进行连接以上传/下载文件。

像这样:

sudo adduser ftpman --home /var/www/ --ingroup www-data

这将创建ftpman用户并将其放入 Apache 使用的 www-data 组中,并将引导您完成其余的设置脚本。定义完成后,chmod如果您收到有关 WWW 文件夹已存在于您创建的用户/组组合中的错误,请确保 WWW 文件夹。

最后,如果您想锁定该帐户的 SSH 访问权限,请运行:sudo chsh -s /bin/false ftpman这会将该用户的 shell 更改为 false。(将 ftpman 替换为您的 ftp 用户)

答案2

我认为 SFTP 是更好的选择。嘿,它的名字里有“安全”这个词,它一定更好 :)

SFTP 使用 ssh 进行文件传输(与 FTPS 不同,FTPS 基本上是 FTP + TLS)。这意味着,如果您可以 ssh 到目标机器,您几乎总是可以通过 SFTP 到它,因为它使用相同的身份验证机制,因此根本不需要安装和配置不同的服务器守护程序(即没有 pureftpd 或 vsftpd)。只要您的权限设置正确/var/www- 即大概事实上sudo chmod g+w /var/www; sudo usermod -g $USER -G www-data $USER——您应该能够立即使用 SFTP。

如今,大多数客户端软件都可以顺利地执行 SFTP,您也可以使用scp开发服务器上的 shell 来复制内容(scp -R将复制整个文件夹,非常方便)。您甚至可以更进一步,使用公钥自动登录,这意味着不再需要输入密码 :)

答案3

我强烈建议使用 vsftpd。它是 Linux 中最安全的 FTP 守护程序之一。过去许多其他守护程序都存在弱点,而且 FTP 似乎很难以安全的方式实现。

vsftpd 安装后立即启动。Ubuntu 允许本地用户登录。因此,启动 FTP 客户端并使用系统密码以普通用户身份登录(我的示例使用 lftp):

> lftp 127.0.0.1 ftp
lftp 127.0.0.1:~> user qbi
Password: #typing my password which I also use to log in via GDM
lftp [email protected]:~> ls
drwxr-xr-x 10 1000 1000   4096 2008-07-28 16:32 Desktop
... many more

现在我正在使用某种文件管理器(Nautilus、Shell 等)来创建一个新目录foo并返回到我的 FTP 客户端:

ftp [email protected]:~> ls -l
...
drwxr-xr-x 2 1000 1000   4096 2010-08-09 13:32 foo

目录在那里,我可以cd进入并使用它。如果您有特殊用户,情况也是如此。您还可以在那里创建目录,并且可以立即访问它们。在这里,查找访问权限很重要。

答案4

不要使用 ftp,它本质上是一种不安全的协议,因为它会以明文形式向服务器发送用户名和密码。实现 sftp 同样简单,而且您在连接安全性方面获得了巨大优势。

相关内容