FTP 是File Transfer Protocol(文件传输协议)的英文简称,而中文简称为 “文传协议” 用于Internet上的控制文件的双向传输。
FTP的主要作用,就是让用户连接上一个远程计算机(这些计算机上运行着FTP服务器程序)查看远程计算机有哪些文件,然后把文件从远程计算机上拷到本地计算机,或把本地计算机的文件送到远程计算机去。
在CentOS或者RedHat Linux上有自带的ftp软件叫做vsftpd
CentOS 6.5 安装ftp
使用pure-ftpd搭建FTP服务
pure-ftpd 官网 http://www.pureftpd.org/project/pure-ftpd
wget http://download.pureftpd.org/pub ... ftpd-1.0.32.tar.bz2
http://download.pureftpd.org/pub/pure-ftpd/releases/pure-ftpd-1.0.32.tar.bz2
tar jxf pure-ftpd-1.0.32.tar.bz2
cd pure-ftpd-1.0.32 切换到解压目录
./configure --prefix=/usr/local/pureftpd --without-inetd --with-altlog --with-puredb --with-throttling --with-peruserlimits --with-tls
安装选项
make && make install 编译与编译安装
cd configuration-file 切换到源码路径目录中
mkdir -p /usr/local/pureftpd/etc/
cp pure-ftpd.conf /usr/local/pureftpd/etc/pure-ftpd.conf
cp pure-config.pl /usr/local/pureftpd/sbin/pure-config.pl
chmod 755 /usr/local/pureftpd/sbin/pure-config.pl
清空之前的pure-ftpd.conf配置文件加入如下:
vim /usr/local/pureftpd/etc/pure-ftpd.conf //内容如下:
ChrootEveryone yes
BrokenClientsCompatibility no
MaxClientsNumber 50
Daemonize yes
MaxClientsPerIP 8
VerboseLog no
DisplayDotFiles yes
AnonymousOnly no
NoAnonymous no
SyslogFacility ftp
DontResolve yes
MaxIdleTime 15
PureDB /usr/local/pureftpd/etc/pureftpd.pdb
LimitRecursion 3136 8
AnonymousCanCreateDirs no
MaxLoad 4
AntiWarez yes
Umask 133:022
MinUID 100
AllowUserFXP no
AllowAnonymousFXP no
ProhibitDotFilesWrite no
ProhibitDotFilesRead no
AutoRename no
AnonymousCantUpload no
PIDFile /usr/local/pureftpd/var/run/pure-ftpd.pid
MaxDiskUsage 99
CustomerProof yes
---------------------------------------------------------------------------------------------
mkdir /data/ftp #创建ftp服务的目录
chmod 777 /data/ftp#所有人都可以写这个目录
useradd yuananqin #创建以哪个账号的身份登录ftp
/usr/local/pureftpd/bin/pure-pw useradd test1 -uyuananqin -d /data/ftp #建立虚拟账号就是这个pure-ftpd软件的账户属于yuananqin这个用户,当你在客户端创建文件的时候,文件所属主跟组都属于yuananqin
/usr/local/pureftpd/bin/pure-pw mkdb #创建密码文件 每次创建一个用户都用重新创建一个mkdb
/usr/local/pureftpd/bin/pure-pw list #列出用户
/usr/local/pureftpd/bin/pure-pw userdel test1 #删除账号
killall pure-ftpd//删除所有进程
启动pure-ftpd服务的命令: /usr/local/pureftpd/sbin/pure-config.pl /usr/local/pureftpd/etc/pure-ftpd.conf
用其他终端登录 命令如: ftp 或者lftp
ftp 192.168.1.122
lftp test2@192.168.1.122
test2表示创建的pure-ftpd软件用户
目录中的文件不是实时刷新的/data/ftp
put filename 上传
get filename 下载
? 查看表示显示支持的命令
------------------------------------------------------------------------------------------------------------------------------
vsftp
vsftp配置ftp服务 (文档http://note.youdao.com/share/?id=4be23a089a56f46a9f56d5f7b97fca96&type=note)
yum install -y vsftpd db4-utils
db4-utils 是用来生产密码文件的。
装完以后可以直接启动 :/etc/init.d/vsftpd start
建立虚拟账号
useradd virftp -s /sbin/nologin #建立一个与虚拟账号对应的系统账号
建立虚拟账户相关的文件
vim /etc/vsftpd/vsftpd_login //建立虚拟账户相关的账户密码文件奇数行为账号偶数行为密码 内容如下:
test1
123456
test2
abcdef
chmod 600 /etc/vsftpd/vsftpd_login #修改一下权限
生成对应的库文件 db_load -T -t hash -f /etc/vsftpd/vsftpd_login /etc/vsftpd/vsftpd_login.db #虚拟账号密码文件对应的数据库文件
-----------------------------------------------------------------------
建立虚拟账号相关的目录以及配置文件
mkdir /etc/vsftpd/vsftpd_user_conf
cd /etc/vsftpd/vsftpd_user_conf
创建和用户对应的配置文件(文件名跟用户名一致)
vim /etc/vsftpd/vsftpd_user_conf/test1
vim test1 内容如下:
local_root=/home/virftp/test1#
anonymous_enable=NO
write_enable=YES
local_umask=022
anon_upload_enable=NO
anon_mkdir_write_enable=NO
idle_session_timeout=600
data_connection_timeout=120
max_clients=10
max_per_ip=5
local_max_rate=50000
mkdir /home/virftp/test1
修改权限: chown -R virftp:virftp /home/virftp
vim /etc/pam.d/vsftpd 在最开头添加两行
auth sufficient /lib/security/pam_userdb.so db=/etc/vsftpd/vsftpd_login //如果是64位系统,则改为/lib64/security/pam_userdb.so
account sufficient /lib/security/pam_userdb.so db=/etc/vsftpd/vsftpd_login //如果是64位系统,则改为/lib64/security/pam_userdb.so
再修改 vim /etc/vsftpd/vsftpd.conf
anonymous_enable=YES改为anonymous_enable=NO
#anon_upload_enable=YES 改为 anon_upload_enable=NO
#anon_mkdir_write_enable=YES 改为 anon_mkdir_write_enable=NO
再增加:
chroot_local_user=YES
guest_enable=YES
guest_username=virftp
virtual_use_local_privs=YES
user_config_dir=/etc/vsftpd/vsftpd_user_conf
启动vsftpd服务/etc/init.d/vsftpd start
get filename
put filename
mirror 目录
mirror -R 目录 上传
文件在 /home/virftp/test1/
vsftp使用mysql存放虚拟用户并验证 http://www.aminglinux.com/bbs/thread-342-1-1.html
ftp的主动和被动模式 http://www.aminglinux.com/bbs/thread-961-1-1.html