基本的Ubuntu FTP服务器

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

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

像这样的东西:

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

这将创建ftpman用户并将他放入Apache使用的www-data组中,并将ftpman您完成其余的安装脚本。 一旦定义了,如果您在创建的用户/组合组合中已经存在错误,请确保chmod WWW文件夹。

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

在我看来,SFTP是一种更好的方式。 嘿,它的名字中有“安全”这个词,它一定要好:)

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

现在大多数客户端软件都会非常愉快地使用SFTP,你也可以使用开发服务器上的shell中的scp -R来复制内容( scp -R会复制整个文件夹,并且非常方便)。 您甚至可以采用另一个步骤并使用公钥自动登录,这意味着不再需要输入密码:)

我强烈建议使用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 

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

我谦卑地推荐一个我自己写的FTP服务器: JetFTP 。 它的安装和使用非常简单。


安装:

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

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

     sudo apt-get install jetftp 
  • 而已!

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

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

设置ftp服务器有三种不同的方法:

(1)匿名FTP:

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

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

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

(3)FTP支持mysql虚拟用户身份validation:

此方法仅允许对系统上没有虚拟用户身份validationshell帐户的某些用户组访问服务器。 它使用存储用户信息的外部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  Enable users with a specified user id (uid) to access the server -V  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  Max client that can connect to the server -C  Max connections for a IP -T  Max bandwitdh disponible for each connection -n  Max MB that a user can have into its home folder -m  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

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

write_enable=YES

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