您的位置:首页 > 编程语言 > PHP开发

FTP服务

2015-06-08 11:56 561 查看
一、简介
FTP:File Transfer Protocol(文件传输协议)的英文简称,而中文简称为“文件传输协议”。用于Ineternet上的控制文件的双向传输。同时,它也是一个应用程序(Application)。基于不同的操作系统有不同的FTP应用程序,而所有这些应用程序都遵守同一种协议传输文件。在FTP的使用当中,用户经常遇到两个概念:“下载”(Download)和“上传”(Upload)。
“下载”文件就是从远程主机拷贝文件至自己的计算机上。
“上传”文件就是将文件从自己计算机中拷贝至远程主机上。
支持FTP协议的服务器就是FTP服务器。
二、工作模式
FTP连接及传输模式
控制连接:TCP 21,用于发送FTP命令信息
数据连接:TCP 20,用于上传、下载数据
数据连接的建立类型:
主动模式:服务端从20端口主动向客户端发起连接
被动模式:服务端在指定范围内某个端口被动等待客户端连接
三、相关配置

第12行:控制匿名登录
anonymous_enable=YES
第15行:允许本地帐号登录
local_enable=YES

第18行:控制可写权限
write_enable=YES
第22行:控制本地文件的权限掩码
local_umask=022

第27行:控制是否允许匿名上传(与26行同时开启或关闭)
anon_upload_enable=YES

第31行:控制是否允许匿名写及创建目录的权限
aanon_mkdir_write_enable=YES
第35行:控制上传或下载的日志记录
dirmessage_enable=YES

第42行:启用FTP数据端口连接请求
connect_from_port_20=YES

第56行:控制日志的保存路径
xferlog_file=/var/log/xferlog

第59行:设置指令超时的时间,默认为600秒
idle_session_timeout=600

第62行:设置数据连接的超时时间,默认为120秒
data_connection_timeout=120

第91行:控制登录FTP的用户是否被限制在家目录下;
chroot_list_enable=YES
四、vsftp下的匿名用户、本地用户及虚拟用户的配置
1)匿名用户
vim /etc/vsftpd/vsftpd.conf

write_enable=YES #允许所有用户可以写入文件

anonymous_enable=YES #启用匿名用户

anon_umask=022 #匿名用户上传文件的权限掩码
anon_upload_enable=YES #匿名用户可以上传文件
anon_mkdir_write_enable=YES #匿名用户可以在服务端创建目录

anon_other_write_enable=YES #开放其他写入权限(比如删除目录)

anon_root=/var/ftp #匿名用户的FTP根目录

--------------------------------------------------------
chown ftp /var/ftp/pub #更改目录的属主,使匿名用户有权限在pub目录中创建文件

2)本地用户
vim /etc/vsftpd/vsftpd.conf
local_enable=YES #启用本地用户
write_enable=YES #所有用户可以写入
local_umask=022 #本地用户所上传文件的权限掩码
chroot_local_user=YES #是否将用户禁锢在主目录

3)虚拟用户
1、建立虚拟FTP用户的账号数据库文件
[root@localhost ~]# vim /etc/vsftpd/vusers.list

zhangsan
123
lisi
123
[root@localhost ~]# cd /etc/vsftpd/
[root@localhost ~]# db_load -T -t hash -f vusers.list vusers.db
[root@localhost ~]# chmod 600 /etc/vsftpd/vusers.*
2、创建FTP根目录及虚拟用户映射的系统用户

[root@localhost ~]# useradd -d /var/ftproot -s /sbin/nologin virtual
[root@localhost ~]# chmod 755 /var/ftproot/
3、支持虚拟用户的PAM认证文件

[root@localhost ~]# vim /etc/pam.d/vsftp.vu
#%PAM-1.0
auth required pam_userdb.so db=/etc/vsftpd/vusers

account required pam_userdb.so db=/etc/vsftpd/vusers
4、在vsftpd.conf文件中添加支持配置

[root@localhost ~]# vim /etc/vsftpd/vsftpd.conf
write_enable=YES
guest_enable=YES #启用虚拟用户
guest_username=virtual #虚拟用户映射的本地用户
pam_service_name=vsftpd.vu #虚拟用户认证文件

5.为个别虚拟用户建立独立的配置文件
在vsftpd.conf文件中添加用户配置目录支持

user_config_dir=/etc/vsftpd/vusers_dir

为用户zhangsan、lisi建立独立的配置目录及文件

[root@localhost ~]# mkdir /etc/vsftpd/vusers_dir/
[root@localhost ~]# cd /etc/vsftpd/vusers_dir/
[root@localhost ~]# vim zhangsan
anon_upload_enable=YES

anon_mkdir_write_enable=YES

[root@localhost ~]# touch lisi
[root@localhost ~]# service vsftpd restart
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  ftp