FTP是文件传输协议(文件传输协议)的英文简称,中文简称“文传协议”。 用于互联网上控制文件的双向传输。 同时,它也是一个APP应用。 每个操作系统都有不同的FTP APP应用程序,但所有这些APP应用程序都遵循相同的协议传输文件。 在FTP的使用中,用户经常会遇到“下载”(Download )和“上传”(upload )这两个概念。 “下载”文件是将文件从远程主机复制到您的计算机。“上传”文件是将文件从您的计算机复制到远程主机。 使用internet语言,用户可以通过客户端程序将文件上载(下载)到远程主机。
一般来说,在各种linux发行版中,缺省情况下附带的ftp软件为vsftp。 鉴于每个linux发行版都认可vsftp,vsftp必须是优秀的ftp软件。
要构建Linux FTP服务器,请执行以下操作:
)1)检查是否安装了vsftpd软件
可以使用以下命令来检测是否安装了vsftpd软件: rpm -qa |grep vsftpd。 例如,我的centos 5.6将显示以下结果:
如果没有安装,可以下载安装,也可以使用软件源进行安装。 这里省略说明。
)2)使用vsftpd软件
1 )使用vsftpd软件主要包括以下命令:
FTP :启动服务vsftpd开始
FTP :停止服务vsftpd停止
FTP :重新启动service vsftpd restart
2 )使用或带路径的命令:
(3) vsftpd的配置
ftp的配置文件主要有三个,在centos5.6中,它们位于/etc/vsftpd/目录中:
1 ) ftpusers此文件用于指定那些用户无权访问ftp服务器。
2 ) user_list此文件表示的默认帐户默认情况下无法访问ftp
3 ) vsftpd.conf vsftpd的主配置文件
)4)然后使用vi编辑vsftpd的主配置文件vsftpd.conf文件。
etc/vsftpd/vsftpd.conf是vsftpd的主要配置文件,该文件中以#开头的一行是注释行,缺省设置为:
anonymous_enable=YES
是否允许匿名登录ftp,YES表示允许。
# local _ enable=是
#是否允许本地用户登录,/etc/passwd中的本地用户帐户,YES表示允许。
# write _ enable=是
#是否释放写入权限。
#local_umask=022
#将本地用户文件的掩码设置为022。
# anon _ upload _ enable=是
#是否允许匿名用户上载文件。
#anon_mkdir_write_enable=YES
#是否允许匿名用户创建文件夹。
dir message _ enable=是
#当用户进入一个目录时,该目录将显示应注意的内容。 显示的文件缺省值为. message,必须在该目录下手动创建。 当然,可以使用message_file设置项进行修订
xferlog_enable=YES
#启用下载日志的上传,并使用xferlog_file确定日志文件名。
connect _ from _ port _ 20=是
启用FTP数据端口连接请求(ftp-data )。
#chown_uploads=YES
chown_username可以决定是否更改上载文件的所有者。
#chown_username=whoever
如果chown_uploads的值为YES,则上载文件的所有者为chown_username中定义的值。
#xferlog_file=/粗犷的耳机/log/vsftpd.log
如果xferlog_enable的值为YES,则日志记录在xferlog_file定义的文件中。
#xferlog_std_format=YES
#是否使用标准的ftp xferlog模式。
#idle_session_timeout=600
#如果使用者在600秒以内没有命令动作,则强制离线!
#data_connection_timeout=120
#如果数据传输在120秒内未成功,vsftpd将强制客户端删除在线状态!
#nopriv_user=ftpsecure
运行vsftpd所需的无特权系统用户。 默认值为nobody。
# async _ abor _ enable=是
#如果设置为允许,则为特殊
的FTP命令“异步退出”将生效。#ascii_upload_enable=YES
#是否允许使用ascii码方式上传文件。
#ascii_download_enable=YES
#是否允许使用ascii码方式下载文件。
#ftpd_banner=Welcome to blah FTP service.
#定制欢迎信息。
#deny_email_enable=YES
#是否禁止匿名用户使用某些邮件地址。
#banned_email_file=/etc/vsftpd/banned_emails
#当deny_email_enable=YES时,可以利用这个设定项目来规定那个email address 不可登入vsftpd ,在上面设定的档案内,一行输入一个email address 即可!
#chroot_local_user=YES
#是否将所有使用者限制在自己的家目录之内(chroot)。
#chroot_list_enable=YES
#是否启用将某些用户限制在它们的家目录内。
#chroot_list_file=/etc/vsftpd/chroot_list
#如果chroot_list_enable=YES时,可以设定哪些用户会被限制在自己的家目录内而无法离开(chroot),一行一个账号即可!
#ls_recurse_enable=YES
#是否允许使用ls -R等命令。
listen=YES
#开启ipv4监听
#listen_ipv6=YES
#开启ipv6监听。
pam_service_name=vsftpd
#使用pam模块控制,vsftpd文件在/etc/pam.d目录下。
userlist_enable=YES
#此选项被激活后,vsftpd将读取userlist_file参数所指定的文件中的用户列表。当列表中的用户登录FTP服务器时,该用户在提示输入密码之前就被禁止了。即该用户名输入后,vsftpd就直接禁止掉该用户,不会再进行询问密码等后续步骤。
tcp_wrappers=YES
#是否允许tcp_wrappers管理。
一般配置的话:
以下几项需要去掉前面的#号:
anonymous_enable=YES
local_enable=YES
write_enable=YES
anon_upload_enable=YES
anon_mkdir_write_enable=YES
本配置开通了匿名访问、匿名上传和下载等功能。
FTP 存放文件默认路径在/粗犷的耳机/ftp/pub目录下,启动FTP服务后,可能遇到一些问题,比如不能登录进去,或者不能写目录、写文件等,需注意的事项是的:
1、pub目录的权限不能全开,全开会报错,chmod 755 -R pub
2、但是这样也会带来一个问题,当匿名用户登录后,在pub下的newftp目录下想上传一个文件,会报错,因为匿名用户(ftp)无法在该目录下(该目录属于root用户)创建一个新文件的,因为该目录下他没有权限,所以要加入其他用户(o)的写权限,chmod o+w /粗犷的耳机/ftp/pub/newftp.
现在权限变为:
drwxr-xrwx 2 root root 4096 06-20 16:55 newftp
其实就是757的权限,此时匿名用户(ftp)就可以在该目录下上传文件了。
注:
比如ftp的默认目录是/粗犷的耳机/ftp 想把/mnt/WinSoft文件夹,映射到/粗犷的耳机/ftp目录中
先在/粗犷的耳机/ftp目录中建一个目录
#mkdir /粗犷的耳机/ftp/WinSoft
然后执行mount命令
#mount --bind /mnt/WinSoft /粗犷的耳机/ftp/WinSoft
这样就OK了,还可以通过ln的方式处理。
Linux及Windows下访问ftp服务只需使用“ftp IP地址”命令即可:
[root@ftkylin ~]# service vsftpd restart
Shutting down vsftpd: [ OK ]
Starting vsftpd for vsftpd: [ OK ]
[root@ftkylin ~]# ftp 172.19.1.52
Connected to 172.19.1.52 (172.19.1.52).
220 (vsFTPd 2.2.0)
Name (172.19.1.52:root): anonymous
331 Please specify the password.
Password:
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp>