作者:gnuhpc
出处:http://www.cnblogs.com/gnuhpc/
1、vsFTPd,目前常用FTP服务器套件;
vsFTPd是一款在Linux发行版中最受推崇的FTP服务器程序;特点是小巧轻快,安全易用;能让其自身特点得发发挥和掌握,也然最主要的是会用;
目前在开源操作系统中常用的FTPD套件主要有ProFTPD、PureFTPd和wuftpd等;至于哪个FTP服务器套件更好,哪个是你最熟悉的,哪个就是最好的;
2、ftp 用户管理解说;
FTP 服务器对用户的管理,在默认的情况下是根据 /etc/passwd及/etc/group 来进行的,所以我们一定要了解Linux系统用户和用户组的管理,用户和用户组的管理是一切应用的的基础,有的弟兄不想去了解基础的东西,就想一步成架好各种服务器,事实证明这种学习方法是最不明智的;虽然在您可能在几分钟启动了ftp服务器,但遇到问题时,您不一定能知道是哪里出错;所以基础还是极为重要的;
在FTP服务器中,匿名用户的用户名和密码都是ftp ;这个用户可以在您的操作系统中的 /etc/passwd 中能找得到;可能有类似下面的一行;
ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin
说明:
/etc/passwd 是系统用户的配置文件;/etc/group是系统用户组配置文件,您可以通过 《Linux 用户(user)和用户组(group)管理概述》 及其相关文档中了解一些用户管理的一些基础知识;
在ftp用户这行中,我们看到七个字段,每个字段写字段之间用:号分割;
ftp 是用户名
x 是密码字段,是隐藏的;
14 是用户的UID字段,可以自己来设定,不要和其它用户的UID相同,否则会造成系统安全问题;
50 用用户组的GID,可以自己设定,不要和其它用户组共用FTP的GID,否则会造成系统全全问题;
FTP User 是用户说明字段;
/var/ftp 是ftp用户的家目录,可以自己来定义;
/sbin/nologin 这是用户登录SHELL ,这个也是可以定义的,/sbin/nologin 表示不能登录系统;系统虚拟帐号(也被称为伪用户)一般都是这么设置。比如我们把ftp用户的/sbin/nologin 改为 /bin/bash ,这样ftp用户通过本地或者远程工具ssh或telnet以真实用户身份登录到系统。这样做对系统来说是不安全的;如果您认为一个用户没有太大的必要登录到系统,就可以只给他FTP帐号的权限,也就是说只给他FTP的权限,而不要把他的SHELL设置成 /bin/bash 等;
关于ftp用户组的理解:
我们查看 /etc/group 的时候,会发现类似这样一条;
ftp:x:50:
/etc/group 是用户组的管理配置文件,上面这行表示用户组ftp,x是密码段,50是GID;我们对照在/etc/passwd中的ftp那行得知ftp用户是属于ftp用户组的,因为ftp用户那行中的GID和ftp用户组的GID是相同的;
3、安装
比较简单,一般发行版的源中都有,最多就是源代码编译,问题一般不大。
4.启动和关闭
启动:/etc/init.d/vsftpd start
重启: /etc/init.d/vsftpd restart
关闭: /etc/init.d/vsftpd stop
5.实现匿名上传下载:
首先:我们要改一下vsftpd.conf,确保有以下几行;
Anon_upload_enable=YES (开放上传权限)
Anon_mkdir_write_enable=YES (可创建目录的同时可以在此目录中上传文件)
Write_enable=YES (开放本地用户写的权限)
anon_umask=022(这个配置解决了vsFTPd只能上传不能下载的权限问题)
anon_other_write_enable=YES(解决匿名不能删除的问题)
其次:在ftp用户家目录的下建一个文件夹,并修改其权限为完全开放;
mkdir /var/ftp/pub
chmod 777 /var/ftp/pub
(Ubuntu下为/home/ftp/)