it-swarm.cn

基本的Ubuntu FTP服务器

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

33
JPrescottSanders

我将推荐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)

42
Marco Ceppi

我认为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,并且您还可以在开发服务器上的Shell中使用scp来复制内容(scp -R会在整个文件夹之间进行复制,非常方便)。您甚至可以再走一步,使用公钥自动登录,这意味着不再需要输入密码了:)

10
Ben Williams

我强烈建议使用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进入并使用它。如果您有特殊用户,也是如此。您还可以在此处创建目录,并且可以立即访问它们。在这里寻找访问权限很重要。

5
qbi

我谦虚地推荐我从头开始编写自己的FTP服务器: JetFTP 。它很容易安装和使用极端


安装:

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

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

    Sudo apt-get install jetftp
    
  • 而已!

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

3
Nathan Osman

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

2
Stuart

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

write_enable=YES

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

0
Simon East

设置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

0
Sajad Bahmani