我想在我的Ubuntu Server安装上设置一个基本的FTP服务器。我一直在使用VSFTPD,但是在让服务器允许我创建目录和复制文件时遇到了问题。我已经将系统设置为允许本地用户,但是这似乎并不意味着我可以访问创建目录。在这种情况下,我需要更好地扎根Ubuntu服务器设置以充分配置此FTP服务器。最终目标是能够将文件从本地dev文件夹移至www文件夹以进行部署。目录也需要能够移动。任何帮助将不胜感激。
我想在我的Ubuntu Server安装上设置一个基本的FTP服务器。我一直在使用VSFTPD,但是在让服务器允许我创建目录和复制文件时遇到了问题。我已经将系统设置为允许本地用户,但是这似乎并不意味着我可以访问创建目录。在这种情况下,我需要更好地扎根Ubuntu服务器设置以充分配置此FTP服务器。最终目标是能够将文件从本地dev文件夹移至www文件夹以进行部署。目录也需要能够移动。任何帮助将不胜感激。
Answers:
我将推荐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)
chsh
这似乎也防止用户通过FTP登录。重新设置为/bin/bash
使其可以再次工作。
我认为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
将整个文件夹复制过来,非常方便)。您甚至可以再走一步,使用公钥自动登录,这意味着不再需要输入密码了:)
我强烈建议使用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
进入并使用它。如果您有特殊用户,也是如此。您还可以在此处创建目录,并且可以立即访问它们。在此重要的是寻找访问权限。
不要使用ftp,它是一种固有的不安全协议,因为它以明文形式将用户名和密码发送到服务器。实现sftp一样容易,并且您在连接安全性方面获得了巨大的优势。
设置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