基本的Ubuntu FTP服务器


33

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


您提到将文件和文件夹从本地dev移动到www文件夹-您是在同一台计算机上还是在不同计算机上完成所有这些操作?
Marco Ceppi

VSFTPD是否还完整出售?还是对其他类型的FTP软件(例如pureftp)感兴趣?
Marco Ceppi

本地开发人员完全是一台单独的机器。我熟悉通过FTP将文件移动到Web服务器,也许有更好的方法。
JPrescottSanders 2010年

我没有在VSFTPD上出售,这是我在谷歌搜索时发现的第一个,如果您有更简单的解决方案,我将不胜枚举。
JPrescottSanders 2010年

Answers:


42

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

像这样:

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

这将创建ftpman用户并将其置于Apache使用的www-data组中,并将引导您完成其余的安装脚本。定义chmod完后,如果发现错误,请确保访问WWW文件夹,该错误已存在于您创建的用户/组组合中。

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


5
就我而言,PureFTP是最容易设置的。
内森·奥斯曼

1
您习惯于像老师一样给予完整的解释。太棒了!!!
2011年

1
我尝试了此操作,但无法与新创建的用户建立连接。现有用户可以正常工作
2012年

1
一切正常,除了我运行时,chsh这似乎也防止用户通过FTP登录。重新设置为/bin/bash使其可以再次工作。
DanH

1
谢谢,我可以确认我在vsftpd中花了一整天,在pureftpd中花了5分钟。为了简单设置且安全,请使用pureftpd。我很困惑为什么主流吹捧vsftpd!
RyBolt 2014年

10

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

SFTP使用ssh进行文件传输(与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
提示提示...如果您有Windows客户端,则他们可以使用WinSCP winscp.net/eng/index.php来访问sftp服务器。
LassePoulsen

根据您的评论,OP当然应该使用vsftpd,因为vs代表非常安全。:-)
QBI

PureFTPD使用与SFTP相同的身份验证-在我看来,它实际上更安全,因为如果您的帐户信息被泄露,则没有人可以通过SSH访问您的计算机。最糟糕的是,他们具有文件访问权限。
Marco Ceppi

如果您的应用仅支持FTP,而您正在通过SSH进行隧道传输,则有什么区别?:)
endolith 2012年

5

我强烈建议使用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 qbi@127.0.0.1:~> ls
drwxr-xr-x 10 1000 1000   4096 2008-07-28 16:32 Desktop
... many more

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

ftp qbi@127.0.0.1:~> ls -l
...
drwxr-xr-x 2 1000 1000   4096 2010-08-09 13:32 foo

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


3

衷心推荐我从头开始编写的FTP服务器:JetFTP。这是非常简单的安装和使用。


安装:

  • 将我的PPA添加到您的软件源并更新:

    sudo apt-add-repository ppa:george-edison55/george-edison
    
  • 运行以下命令:

    sudo apt-get install jetftp
    
  • 而已!

使用JetFTP很简单- 8021使用运行JetFTP的计算机上的登录名和密码连接到端口。


2

不要使用ftp,它是一种固有的不安全协议,因为它以明文形式将用户名和密码发送到服务器。实现sftp一样容易,并且您在连接安全性方面获得了巨大的优势。


明确的问题是最好的答案:-)
Sajad Bahmani 2010年

0

设置ftp服务器的方法有以下三种:

(1)匿名FTP:

人们只能使用匿名帐户且没有密码来访问服务器。当然,服务器管理员将设置上传限制,以防止用户放置非法文件,例如盗版音乐/电影/游戏。

(2)具有匿名访问权限的FTP和具有密码帐户的用户:

此方法使匿名帐户用户和密码帐户用户都可以进入服务器。他们只能访问指定的目录,但可以查看/修改/删除所有文件和/或文件夹的root用户除外。

(3)FTP与mysql支持虚拟用户身份验证:

此方法仅允许某些在系统上没有虚拟用户身份验证Shell帐户的用户组访问服务器。它使用存储用户信息的外部mysql服务器。

第一选择:匿名FTP

在开始创建匿名ftp服务器之前,必须将一个名为ftp的用户添加到您的系统中,同时还要包含一个主目录。此步骤非常简单,只需遵循以下命令:

useradd -d /home/ftp/ftp -s /bin/false ftp

mkdir -p /home/ftp/upload

这样做仅允许该帐户写入此文件夹。您可以使用更多变量来指定ftp服务器将执行的操作。这里有些例子:

-e Allow access to the server only by anonymous users
-B Start the server with background demon
-i Anonymous users can't upload files
-M Let anonymous users create folders
-s ftp user files cannot be downloaded

第二种选择:“匿名用户和密码帐户用户”

为了使匿名和密码帐户用户都可以在同一服务器上,请遵循以下小指南:

-B ,-i ,M, -r, -s same of before
-u <uid> Enable users with a specified user id (uid) to access the server 
-V <Ip address> Only specified IPs will be able to access the server in non-anonymous mode 

第三种选择:'''使用Mysql的虚拟用户'''

要创建具有mysql支持的服务器,请执行以下步骤:

下载并安装PureFTPd用户管理器,您可以在此处找到 http://machiel.generaal.net/index.php?subject=user_manager_pureftpd

解压缩并将其所有内容上载到Web服务器www目录,然后在浏览器中写此链接链接http://localhost/ftp/install.php 遵循安装程序要求的所有步骤复制并保存rge pureftpd-mysql .conf进入pureftpd用户管理器目录

做完了 使用此链接访问管理面板http:// localhost / ftp

启动服务器进程之前要添加的更多选项

-c <num> Max client that can connect to the server
-C <num> Max connections for a IP
-T <bandwitdh> Max bandwitdh disponible for each connection
-n <MBytes> Max MB that a user can have into its home folder
-m <Cpu Loading> Stops the anonymous uploads if the cpu loading exceed from this value 

并在某些ftp服务器应用程序中查看此内容:https :
//help.ubuntu.com/6.06/ubuntu/serverguide/C/ftp-server.html


4
从其他地方复制并粘贴答案时,应始终记下来源
多里(Dori)2010年

0

默认情况下,VSFTPD的默认安装不允许任何创建/修改更改。您需要编辑/etc/vsftpd.conf和取消注释以下行...

write_enable=YES

其次,您需要在相应的文件和文件夹上配置适当的文件系统权限。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.