一般情况下很多人都喜欢在windows下架设,我以前也经常用,但是发现如果不重启的话,机子会变得好慢慢。会经常卡死,于是我下定决心,用Linux 架设一个FTP的服务器,今天我就是要说在Linux下用vsftpd来架设匿名服务器,实现匿名用户上传下载,和本地用户上传下载。
如何安装vsftpd我就不说了,因为有些系统在安装的时候已经定制过软件的安装,所以一装完就默认有了。好了。
我们先添加一个用户。名字为nobody。这个用户我想大家都熟悉了。这个是Linux下的匿名用户,用命令:
adduser nobody来添加这个用户,但是系统显示adduser: user nobody exists 证明系统已经有这个用户了。就不需要在加了。另外若ftp服务器需要匿名用户(anonymous)需要加一个用户ftp,vsftp默认的配置还需要一 个空的目录(empty),该目录的绝对路径应该是/usr/share/empty/,FTP用户的绝对路径/var/ftp。
下面就到编辑配置文件了。配置文件编辑还是用vi编辑器来编辑。vi /etc/vsftpd/vsftpd.conf,在编辑前记得先备份哦。我的配置文件如下大家可以参考使用:
anonymous_enable=YES
local_enable=YES
write_enable=YES
local_umask=022
dirmessage_enable=YES
connect_from_port_20=YES
listen=YES
pam_service_name=vsftpd
userlist_enable=YES
tcp_wrappers=YES
xferlog_enable=YES
ftpd_banner=ftp
ascii_download_enable=YES
chroot_local_user=YES
anon_upload_enable=YES
anon_world_readable_only=NO
anon_mkdir_write_enable=YES
use_localtime=YES
这个代码的详细意思。在我的置顶帖里已经有说明了。大家可以去看看
这个代码包含了匿名和本地用户的上传下载。但是想本地用户登陆还需要一个文件。
在源码目录下有一个RedHat/vsftpd.pam认证文件,把它复制到/etc/pam.d/ftp
复制完以后我们就可以重启FTP服务器了 service vsftpd restart
我们的服务器就这样做完了!
假设有一个本地用户test,登录FTP:
ftp 127.0.0.1
Connected to 127.0.0.1 (127.0.0.1).
220 (vsFTPd 1.2.1)
Name (127.0.0.1:root): test
331 Please specify the password.
Password:
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.
看来情况很好
匿名用户是默认是不可以上传的。但是有个解决的办法。
因为在vsftp中启用了
anon_upload_enable=YES
anon_mkdir_write_enable=YES
选项后用匿名帐号登录系统发现无权上传文件和创建文件夹。
解决方法:
mkdir /var/ftp/upload
chmod 755 /var/ftp/upload
chown ftp:ftp /var/ftp/upload
此时匿名用户就可以上传文件创建文件夹到upload了。
FTP服务器就这样架设完了。