2-4-搭建FTP服务器实现文件共享

1、  此服务器的概述:名字,功能,特点,端口号
2、  安装
3、  配置文件的位置
4、  服务启动关闭脚本,查看端口
5、  此服务的使用方法
6、  修改配置文件,实战举例
7、  排错(从下到上,从内到外)
 
本节所讲内容:
1.     VSFTP服务器概述
2.     安装配置VSFTP
3.     实战:匿名访问VSFTP
4.     实战:用户名密码方式访问VSFTP
5.     实战:ftp虚拟帐号方式访问VSFTP
 
FTP服务端:xuegod63.cn   IP:192.168.1.63
FTP客户端:xuegod64.cn   IP:192.168.1.64
 
FTP服务概述:
FTP服务器(FileTransfer Protocol Server)是在互联网上提供文件存储和访问服务的计算机,它们依照FTP协议提供服务。
FTP(FileTransfer Protocol: 文件传输协议)作用: Internet 上用来传送文件的协议
常见FTP服务器:
windows:Serv-U FTPServer
Linux:ProFTPD:(Professional FTP daemon)一个Unix平台上或是类Unix平台上(如Linux, FreeBSD等)的FTP服务器程序。
 
今天的主角:vsftp
VSFTP是一个基于GPL发布的类Unix系统上使用的FTP服务器软件,它的全称是Very Secure FTP 从此名称可以看出来,编制者的初衷是代码的安全。
特点:
它是一个安全、高速、稳定的FTP服务器;
 
模式:C/S 模式
 
端口:
  1. [root@xuegod63 ~]# vim /etc/services



 

20 (传数据)   21 (传指令)
fsp(File Service Protocol): 文件服务协议。
 
工作流程(原理):
##面试经常会遇到这样问题,大家需要注意
这里的主动和被动,是相对于的FTP server端来判断的
如果server 去连接client 开放的端口,说明是主动的,相反,如果client去连接server开放的端口,则是被动的。
 
安装vsftp服务器端、客户端
[root@xuegod63~]# rpm -ivh /mnt/Packages/vsftpd-2.2.2-6.el6_0.1.x86_64.rpm
yum -y install vsftpd
 
安装客户端:
  1. [root@xuegod64 ~]# yum install -y lftp
 
lftp
注:从RHEL6开始,系统镜像中默认没有ftp客户端命令。取而代之的是lftp命令
Linux客户端:
lftp 是一个功能强大的下载工具,它支持访问文件的协议: ftp, ftps, http, https,hftp, fish.(其中ftps和https需要在编译的时候包含openssl库)。llftp的界面非常好一个shell: 有命令补全,历史记录,允许多个后台任务执行等功能,使用起来非常方便。它还有书签、排队、镜像、断点续传、多进程下载等功能。
 
配置文件位置:
2.vsftpd 相关文档
/var/ftp/pub/                                   #默认的共享目录
/var/ftp/                                    #默认情况下匿名用户的根目录
/etc/vsftpd/vsftpd.conf        #vsftpd核心配置文件
/etc/vsftpd/ftpusers              #用户指定哪些用户不能访问ftp服务器,黑名单
/etc/vsftpd/user_list               #用户指定哪些用户能访问ftp服务器,白名单
vim  /etc/vsftpd/user_list
# 如果userlist_deny=YES(默认),绝不允许在这个文件中的用户登录ftp,甚至不提示输入密码
#prompt 提示
/etc/vsftpd/vsftpd_conf_migrate.sh        #是vsftpd 操作的一些变量和设置脚本
vsftpd的核心文件参数解释
/etc/vsftpd/vsftpd.conf这就是vsftpd的核心配置文件
anonymous_enable=YES/no是否允许匿名用户登录
anon_upload_enable=yes/no是否允许匿名上传文件
local_enable= YES/no 是否允许本地用户登录
write_enable= YES/no 是否允许本地用户上传
guest_enable=yes/no 是否允许虚拟用户登录;
local_mask=022 设置本地用户的文件生成掩码为022,默认值为077
dirmessage_enable=YES 设置切换到目录时显示.message隐含文件的内容
xferlog_enable= YES 激活上传和下载日志
connect_from_port_20=YES启用FTP数据端口连接
pam_service_name=vsftpd设置PAM认证服务的配置文件名称, 该文件存放在/etc/pam.d目录下
userlist_enable= YES 允许vsftpd.user_list文件中的用户访问服务器
userlist_deny= YES 拒绝vsftpd.user_list文件中的用户访问服务器
listen= YES/no 是否使用独占启动方式(这一项比较重要)
tcp_wrappers= YES/no 是否使用tcp_wrappers作为主机访问控制方式
anon_other_write_enable=YES 允许匿名用户重命名和删除
ftpd_banner=welcometo ftp service 设置连接服务器后的欢迎信息
idle_session_timeout=60限制远程的客户机连接后,所建立的控制连接,在多长时间没有做任何的操作就会中断(秒)
data_connection_timeout=120设置客户机在进行数据传输时,设置空闲的数据中断时间
accept_timeout=60 设置在多长时间后自动建立连接
connect_timeout=60 设置数据连接的最大激活时间,多长时间断开,为别人所使用;
max_clients=200 指明服务器总的客户并发连接数为200
max_per_ip=3 指明每个客户机的最大连接数为3
local_max_rate=50000(50kbytes/sec)
anon_max_rate=30000 设置本地用户和匿名用户的最大传输速率限制
pasv_min_port=端口
pasv-max-prot=端口号定义最大与最小端口,为0表示任意端口;为客户端连接指明端口;
listen_address=IP地址设置ftp服务来监听的地址,客户端可以用哪个地址来连接;
listen_port=端口号设置FTP工作的端口号,默认的为21
chroot_local_user=YES设置所有的本地用户可以chroot
chroot_local_user=NO 设置指定用户能够chroot
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd.chroot_list(只有/etc/vsftpd.chroot_list中的指定的用户才能执行 )
local_root=path 无论哪个用户都能登录的用户,定义登录帐号的主目录, 若没有指定,则每一个用户则进入到个人用户主目录;
chroot_local_user=yes/no是否锁定本地系统帐号用户主目录(所有);锁定后,用户只能访问用户的主目录/home/user,不能利用cd命令向上转;只能向下;
chroot_list_enable=yes/no锁定指定文件中用户的主目录(部分),文件:/chroot_list_file=path 中指定;
userlist_enable=YES/NO是否加载用户列表文件;
userlist_deny=YES 表示上面所加载的用户是否允许拒绝登录;
userlist_file=/etc/vsftpd.user_list列表文件
启动服务
  1. [root@xuegod63 ~]# service vsftpd restart
  2. [root@xuegod63 ~]#chkconfig vsftpd on
  3. ##注意关闭iptables 和selinux
  4. [root@xuegod63 ~]# netstat -antup | grep ftp
  5. tcp        0      0 0.0.0.0:21                  0.0.0.0:*                   LISTEN      11725/vsftpd
 
互动: 为什么看不到20端口?。
因为没有数据通信。
 
此服务的使用方法
Linux
  1. [root@xuegod63 vuserconfig]# rpm -vih /mnt/Packages/lftp-4.0.9-1.el6.x86_64.rpm
  2. [root@xuegod63 vsftpd]# lftp 192.168.1.63
 
windows
通过浏览器访问或 打开文件夹,在地址栏输入地址:ftp://192.168.1.63/
修改配置文件,实战举例
 
例1:公司技术部准备搭建一台功能简单的FTP 服务器,允许所有员工上传和下载文件,并允许创建用
户自己的目录。
分析:
允许所有员工上传和下载文件需要设置成允许匿名用户登录并且需要将允许匿名用户上传功能
 
先备份配置文件
  1. [root@xuegod63 vsftpd]# cp vsftpd.conf  vsftpd.conf.bak
修改配置文件
  1. [root@xuegod63 ~]# vim /etc/vsftpd/vsftpd.conf
anonymous_enable=YES            #允许匿名用户访问
anon_upload_enable=YES           #允许匿名用户上传文件
anon_mkdir_write_enable=YES      #允许匿名创建目录
 
重启服务:
service vsftpd restart 
测试:  不能写
[root@xuegod63 ~]# chown ftp.ftp/var/ftp/pub/
然后测试,是可以新建文件夹了,但是不能重命名,不能删除!

[root@xuegod63 ~]# vim /etc/vsftpd/vsftpd.conf
anon_other_write_enable=YES   #默认没有,需要手动添加下这行
 
重启服务,即可重命名文件夹,
也可以删除文件夹了,但是不安全,均衡使用这个参数
 
注意,默认匿名用户家目录的权限是755,这个权限是不能改变的。切记!
 
下面我们来一步一步的实现,先修改目录权限,创建一个公司上传用的目录,叫xuegoddata,设置拥有者为ftp 用户所有,目录权限是755
  1. [root@xuegod63 vsftpd]# mkdir /var/ftp/xuegoddata
  2. [root@xuegod63 vsftpd]# chown ftp.ftp /var/ftp/xuegoddata/
  3. [root@xuegod63 vsftpd]# ll -d !$
  4. ll -d /var/ftp/xuegoddata/
  5. drwxr-xr-x 2 ftp root 4096 Mar  9 19:30 /var/ftp/xuegoddata/ 
 
然后重新启动服务
  1. [root@xuegod63 ~]# service vsftpd restart
  2. Shutting down vsftpd:                                      [  OK  ]
  3. Starting vsftpd for vsftpd:                                [  OK  ]
测试
匿名登录FTP
 

 现在我们匿名上传

 
现在匿名上传的文件是禁止删除滴~
这样匿名用户的上传就算成功了
注:工作中,匿名用户只是只读访问,写的权限也没有的。
 
例2:
公司内部现在有一台FTP 和WEB 服务器,FTP 的功能主要用于维护公司的网站内容,包括上传文
件、创建目录、更新网页等等。公司现有两个部门负责维护任务,他们分别适用team1 和team2
帐号进行管理。先要求仅允许team1 和team2 帐号登录FTP 服务器,但不能登录本地系统,并将
这两个帐号的根目录限制为/var/www/html,不能进入该目录以外的任何目录。
 
ftp 和www web服务器相结合。
www web服务器根目录: /var/www/html
只允许:team1和team2两用户可以上传。 vsftp禁止匿名。
 
分析:
将FTP 和WEB 服务器做在一起是企业经常采用的方法,这样方便实现对网站的维护,为了增强安
全性,首先需要使用仅允许本地用户访问,并禁止匿名用户登录。其次使用chroot 功能将team1
和team2 锁定在/var/www/html 目录下。如果需要删除文件则还需要注意本地权限
解决方案:
(1)建立维护网站内容的ftp 帐号team1 和team2 并禁止本地登录,然后设置其密码
  1. [root@xuegod63 ~]# useradd -s /sbin/nologin team1
  2. [root@xuegod63 ~]# useradd -s /sbin/nologin team2
  3. [root@xuegod63 ~]# echo "123456" | passwd --stdin team1
  4. Changing password for user team1.
  5. passwd: all authentication tokens updated successfully.
  6. [root@xuegod63 ~]# echo "123456" | passwd --stdin team2
  7. Changing password for user team2.
  8. passwd: all authentication tokens updated successfully.
 
2)配置vsftpd.conf 主配置文件并作相应修改
  1. [root@xuegod63 vsftpd]# cp vsftpd.conf.back vsftpd.conf    #恢复配置文件
  2. [root@xuegod63 vsftpd]# vim /etc/vsftpd/vsftpd.conf
anonymous_enable=NO      #禁止匿名用户登录
local_enable=YES             #允许本地用户登录
将team1和team2 锁定在/var/www/html 目录下
local_root=/var/www/html                #设置本地用户的根目录为/var/www/html
chroot_list_enable=YES                    #激chroot 功能
chroot_list_file=/etc/vsftpd/chroot_list    #设置锁定用户在根目录中的列表文件,此文件存放要锁定的用户名
为:
保存退出
(3)建立/etc/vsftpd/chroot_list 文件,添加team1 和team2 帐号
  1. [root@xuegod63 ~]# vim /etc/vsftpd/chroot_list      #写入以下内容,一行,一个用户名
  2. team1
  3. team2
 (5)重启vsftpd 服务使配置生效
  1. service vsftpd restart

 (6)修改本地权限

[root@xuegod63 ~]# ll -d /var/www/html/

  1. drwxr-xr-x. 2 root root 4096 Oct  6  2011 /var/www/html/
  2. [root@xuegod63 ~]# chmod -R o+w /var/www/html/
  3. [root@xuegod63 ~]# ll -d /var/www/html/
  4. drwxr-xrwx. 2 root root 4096 Oct  6  2011 /var/www/html/

(7)测试

 

测试:

windows  :windows+R  再运行cmd
C:Usersshen>ftp192.168.1.63
连接到 192.168.1.63。
220 (vsFTPd 2.2.2)
用户(192.168.1.63:(none)): team1
331 Please specify the password.
密码:123456
230 Login successful.
ftp> pwd
257 "/"
ftp> ls
200 PORT command successful. Consider using PASV.
150 Here comes the directory listing.
226 Directory send OK.
ftp>mkdir test
257 "/test"created
ftp> ls
200 PORT command successful. Consider using PASV.
150 Here comes the directory listing.
test
226 Directory send OK.
ftp: 收到 6 字节,用时 0.00秒 6.00千字节/秒。
测试删除:
ftp> rm -rf test
550 Remove directory operation failed.
ftp> rmdir test#删除时,不用能用rm命令,因为rm命令不是ftp上的命令。
250 Remove directory operation successful.
ftp> ls
200 PORT command successful. Consider using PASV.
150 Here comes the directory listing.
226 Directory send OK.
ftp>quit #退出
 
客户端用lftp登陆查看:
root@xuegod64 ~]# lftp 192.168.0.63 -uteam1,123456
lftp team1@192.168.0.63:~> ls
-rw-r--r--    1 0       0            1384 Jul 30 01:56passwd
 
 
FTP虚拟用户的使用
概述:通过虚拟用户能将ftp的用户和系统用户进行分离,这样即使黑客破解了ftp的账号和密码,也只是能访问ftp共享出来的内容,对服务器本身没有任何影响,能提高服务器的安全性。
 
企业环境
公司为了宣传最新的产品信息,计划搭建FTP 服务器,为客户提供相关文档的下载。对所有互
联网开放共享目录,允许下载产品信息,禁止上传。公司的合作单位能够使用FTP 服务器进行上
传和下载,但不可以删除数据。需要保证服务器的稳定性并做优化。
 
创建ftp虚拟帐号。允许客户使用ftp帐号下载文件。 但是,你们自己的合作伙伴帐号:vip可以上传一内部文件。
 
需求分析
根据企业的需求,对于不同用户进行不同的权限限制,FTP服务器需要实现用户的审核。需考虑
到服务器的安全性,所以关闭实体用户登录,使用虚拟帐号验证机制,并对不同虚拟帐号设置不
同的权限。为了保证服务器的性能,还需要根据用户的等级,限制客户端的连接数及下载速度。
 
1、创建用户数据库
(1)创建用户文本文件
先建立用户文本文件vsftpd_virtualuser.txt,添加两个虚拟帐号,非会员帐号nonevip及会员帐号
vip
  1. [root@xuegod63 vsftpd]# vim /etc/vsftpd/vusers.txt  #写入以下内容。格式一行用户一行密码。
  2. user    #用户
  3. 123456   #密码
  4. vip
  5. 123456
 
保存退出
 
(2)生成数据库
保存虚拟帐号和密码的文本文件无法被系统帐号直接调用。明文也不安全,我们需要使用db_load 命令生成db
数据库文件
安装:
  1. [root@xuegod63 vsftpd]# rpm -qf `which db_load `
  2. db4-utils-4.7.25-16.el6.x86_64
  3. # db_load -T -t hash -f /etc/vsftpd/vusers.txt  /etc/vsftpd/vusers.db
参数说明:
选项-T允许应用程序能够将文本文件转译载入进数据库
由于我们的虚拟用户信息,以文本文件存储的。为让Vsftpd应用程序能够通过来载入用户数据,必须要使用选项来转译成vsftpd可以读懂的内容。
-t hash使用hash码加密, 扩展介绍下,-t可以指定的数据类型有Btree、Hash、Queue和Recon数据库。
-f 指定包含用户名和密码文本文件。此文件格式要示:奇数行用户名、偶数行密码
 
  1. [root@xuegod63 vsftpd]# rm -rf /etc/vsftpd/vusers.txt   #为了安全,删除此文件。后期不再使用此文件。
(3)修改数据库文件访问权限
数据库文件中保存着虚拟帐号的密码信息,为了防止非法用户盗取哈,我们可以修改该文件的访
问权限。生成的认证文件的权限应设置为只对root 用户可读可写,即600
  1. [root@xuegod63 vsftpd]# chmod 644 /etc/vsftpd/vusers.db
  2. [root@xuegod63 vsftpd]# ll !$
2、配置PAM文件
为了使服务器能够使用数据库文件,对客户端进行身份验证,需要调用系统的PAM 模块.
PAM概述:
PAM(Plugable Authentication Module)为可插拔认证模块,不必重新安装应用系统,通过修
改指定的配置文件,调整对该程序的认证方式。PAM 模块配置文件路径为/etc/pam.d/目录,此
目录下保存着大量与认证有关的配置文件,并以服务名称命名。
修改vsftpd 对应的PAM 配置文件/etc/pam.d/vsftpd。将默认配置使用“#”全部注释,添加两行字段。
改:
为:
  1. [root@xuegod63 vsftpd]# cat /etc/pam.d/vsftpd
  2. ##%PAM-1.0
  3. #session    optional     pam_keyinit.so    force revoke
  4. #auth       required    pam_listfile.so item=user sense=deny file=/etc/vsftpd/ftpusers onerr=succeed
  5. #auth       required    pam_shells.so
  6. #auth       include       password-auth
  7. #account    include     password-auth
  8. #session    required     pam_loginuid.so
  9. #session    include       password-auth
  10. auth               required         /lib64/security/pam_userdb.so  db=/etc/vsftpd/vusers
  11. account  required         /lib64/security/pam_userdb.so  db=/etc/vsftpd/vusers
auth是对用户密码进行验证。
accout是对用户的权限进行验证。[@kao]
 
注意:这里的db=/etc/vsftpd/vsftpd_virtualuser
是pam文件的写法规范,不是真正指向db=/etc/vsftpd/vsftpd_virtualuser 这个文件,而是指向/etc/vsftpd/vsftpd_virtualuser.db这个文件,最后没有扩展名。
 
3、创建虚拟帐号对应的系统用户及ftp共享的目录
对于公共帐号和客户帐号,因为需要配置不同的权限,所以可以将两个帐号的目录进行隔离,控
制用户的文件访问。公共帐号user对应系统帐号ftpuser,并指定其主目录为/var/ftp/share,
而客户帐号vip 对应系统帐号ftpvip,指定主目录为/var/ftp/vip。
  1. [root@xuegod63 vsftpd]# useradd -d /var/ftp/share  -s  /sbin/nologin  ftpuser
  2. [root@xuegod63 vsftpd]# useradd -d /var/ftp/vip  -s  /sbin/nologin  ftpvip
  3. [root@xuegod63 vsftpd]# chmod -R 500 /var/ftp/share/  #修改权限
  4. [root@xuegod63 vsftpd]# chmod -R 700 /var/ftp/vip/ 
chmod -R 500 /var/ftp/share/ :公共帐号user只允许下载  那share 目录权限为rx 可读可执行。
chmod -R 700 /var/ftp/vip/ :客户帐号vip 允许上传和下载,所以对vip 目录权限设置为rwx,
可读可写可执行。
注:如果不设置可执行用户登录会提示不能更改目录错误。
 
4、建立配置文件
互动:如何设置多个虚拟帐号的不同权限? 以前都配置好服务后,对所有用户有效。现在需要对不同用户配置不同的权限。怎么办?
一个配置文件无法实现此功能,需要为每个虚拟帐号建立独立的配置文件,并根据需要进行相应的设置。
 
(1)修改vsftpd.conf 主配置文件
配置主配置文件/etc/vsftpd/vsftpd.conf添加虚拟帐号的共同设置并添加user_config_dir 字
段,定义虚拟帐号的配置文件目录。
开始配置:
  1. [root@xuegod63 vsftpd]# cp vsftpd.conf.back vsftpd.conf
禁用匿名用户登录并启用本地用户登录设置
  1. [root@xuegod63 vsftpd]# vim vsftpd.conf
anonymous_enable=NO        #不允许匿名登陆
local_enable=YES               #允许本地用户登录
chroot_local_user=YES          #限制本地用户在家目录中,NO 则不限制
pam_service_name=vsftpd      #指定PAM文件名,配置vsftpd 使用的PAM 模块为vsftpd
user_config_dir=/etc/vsftpd/vuserconfig    #设置虚拟帐号的主目录为/vuserconfig
max_clients=300                            #设置FTP 服务器最大接入客户端数为300 个
max_per_ip=10                              #设置每个IP 地址最大连接数为10 个
 
 
(2)建立虚拟帐号配置文件
在user_config_dir 指定路径下,建立与虚拟帐号同名的配置文件并添加相应的配置字段
首先建立公共帐号ftp 的配置文件
  1. [root@xuegod63 ~]# grep vuserconfig /etc/vsftpd/vsftpd.conf   #查看要创建的目录名
  2. user_config_dir=/etc/vsftpd/vuserconfig
  3. [root@xuegod63 ~]# mkdir /etc/vsftpd/vuserconfig
配置普通虚拟用户相关权限
  1. [root@xuegod63 ~]# vim  /etc/vsftpd/vuserconfig/user
guest_enable=yes
guest_username=ftpuser
anon_world_readable_only=no
anon_max_rate=50000
 
配置VIP虚拟用户相关权限
  1. [root@xuegod63 ~]#vim  /etc/vsftpd/vuserconfig/vip
guest_enable=yes               #开启虚拟帐号登录
guest_username=ftpvip         #设置vip对应的系统帐号为ftpvip
anon_world_readable_only=no  #允许匿名用户浏览器整个服务器的文件系统
write_enable=yes                #允许在文件系统写入权限
anon_mkdir_write_enable=yes   #允许创建文件夹
anon_upload_enable=yes        #开启匿名帐号的上传功能
anon_max_rate=100000         #限定传输速度为100KB/s
 
注意:
vsftpd 对于文件传输速度限制并不是绝对锁定在一个数值上哈,而是在80%~120%之间变化
比如设置100KB/s 则实际是速度在80KB/s~120KB/s 之间变化
 
5、重启vsftpd 使配置生效
  1. [root@xuegod63 ~]# service vsftpd restart
6、测试
(1)公共帐号ftp 测试
在公共帐号测试前,我们先拷贝一些测试文件
  1. [root@xuegod63 vsftpd]#  cp /mnt/Packages/mysql-server-5.1.52-1.el6_0.1.x86_64.rpm /var/ftp/share/mysql.rpm       #共享的文件要大一些,方便后期测试下载速度。
  2. [root@xuegod63 ~]# cp /mnt/Packages/mysql-server-5.1.71-1.el6.x86_64.rpm /var/ftp/vip/mysql.rpm
  3. [root@xuegod63 vsftpd]# cp -r test /  /var/ftp/share/   #复制一个目录

这次在Linux下测试。

ftp客户端登陆命令
lftp ftpIP   -u  username,passwd
或:
lftp  ftpIP   -u username
 
使用公共帐号user,登录ftp 服务器
  1. [root@xuegod64 ~]# lftp 192.168.1.63 -u user,123456
  2. lftp ftp@192.168.1.63:~> ls
  3. -r--r--r--    1 0        0         8492640 Nov 10 13:49 produtinfo.xls

lftp ftp@192.168.1.63:/> get  mysql.rpm  #下载单个文件  。并测试限速50KB/s

 
lftp ftp@192.168.1.63:/> mget *.txt     #下载多个文件
lftp ftp@192.168.1.63:/> mirror grub/  #下载一个文件夹
lftp ftp@192.168.1.63:/> !ls grub   #!bash命令
 
测试 vip帐号
 
  1. [root@xuegod63 vsftpd]# lftp 192.168.1.63 -u vip
  2. Password:
  3. lftp vip@192.168.1.63:~> ls         
  4. lftp vip@192.168.1.63:/> !ls
  5. chroot_list       user_list    vsftpd_conf_migrate.sh
  6. ftpusers  vsftpd.conf      vsftpd_virtualuser.db
  7. grub                 vsftpd.conf.anon  vuserconfig
  8. productinfo.xls  vsftpd.conf.back
  9. lftp vip@192.168.1.63:/> put chroot_list   #测试上传
测试下载  lftp vip@10.10.10.63:/>get mysql.rpm  (100K/s 左右)
 例5:
允许:vip帐号 删除文件
 
  1. [root@xuegod63 vsftpd]# vim  vuserconfig/vip
 
guest_enable=yes
guest_username=ftpvip
anon_world_readable_only=no
write_enable=yes
anon_mkdir_write_enable=yes
anon_upload_enable=yes
anon_other_write_enable=YES  # 允许删除,重命名等
anon_max_rate=100000
 
如果要有删除、重命名权限 增加以下参数
virtual_use_local_privs=YES      #配置虚拟用户具有写权限(上传、下载、删除、重命名)
或者
anon_other_write_enable=yes                      #允许修改、重命名、删除文件
 
  1. [root@xuegod63 vsftpd]# service vsftpd restart
  2. [root@xuegod63 vsftpd]# lftp 192.168.1.63 -u vip
  3. Password:
  4. lftp vip@192.168.1.63:~> ls  
  5. lftp vip@192.168.1.63:/> rm -rf chroot_list
  6. rm ok, `chroot_list' removed
  7. lftp vip@192.168.1.63:/> ls
  8. -r--r--r--    1 0        0         8492640 Mar 09 14:21 a.zip
  1. [root@xuegod63 vuserconfig]# lftp 192.168.1.63 -u vip,123456
  2. 或:
  3. [root@xuegod63 vsftpd]# lftp 192.168.1.63 -u vip
  4. Password:
互动:你认为哪一种更好?为什么?
lftp [OPTS]
-u [,] 使用指定的用户名/口令进行验证
-p 
连接指定的端口
 
lftp 192.168.1.63  -u vip  后,可以执的命令:
下载单个文件和一组文件,断点续传用-c参数
lftp ................:/> get -c ls-lR.txt   #
下载单个文件
lftp ...............:/> mget *.txt   #
下载多个文件
lftp ................:/> mirror  dir   # 
镜像一个目录。下载一个目录时用。
 
查看命令帮助文件
lftp ................:/> help get
 
查看数据传输过程中,vsftp服务器端传输数据端口:
没有看20端口。
 
回顾配置文件参数:
anonymous_enable=YES          #启用匿名用户(anonymous、ftp)
local_enable=YES              #本地用户、启用
write_enable=YES              #本地用户、可写
#anon_upload_enable=YES       #匿名用户可写
#anon_mkdir_write_enable=YES  #匿名用户可以创建目录
#idle_session_timeout=600     #超时时间
#data_connection_timeout=120  #超时时间
listen=YES                    #是否监听
pam_service_name=vsftpd       #开启pam支持
userlist_enable=YES           #用户列表功能开启
tcp_wrappers=YES              #开始tcp_wrappers支持
 
黑白名单:
userlist_deny=NO    #黑名单变白名单
 
锁定用户访问的目录:
chroot_local_user=NO
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list   #写谁锁谁
 
chroot_local_user=YES
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list   #写谁不锁谁
 
其他功能:
匿名用户可以重命名和删除:
anon_other_write_enable=YES
bind IP(帮定监听IP):
listen_address=IP
 
local_max_rate=N
anon_max_rate=N
 
max_client=N
max_per_ip=N

 

 
原文地址:https://www.cnblogs.com/zhanghe9527/p/6855073.html