1,安装FTP服务软件
[root@localhost ~]# mount /dev/sr0 /media/cdrom/mount: block device /dev/sr0 is write-protected, mounting read-only[root@localhost ~]# yum -y install vsftpd //ftp服务软件包2,准备匿名FTP访问目录
FTP其实就是在server端创建一个共享目录,client端连过来就可以从这个目录下载或上传数据
[root@localhost ~]# cd /var/ftp/ //yum安装的FTP默认就有ftp目录,没有的话需要创建[root@localhost ftp]# lspub //FTP下的pub目录就是共享目录[root@localhost ftp]# lltotal 4drwxr-xr-x. 2 root root 4096 Mar 1 2013 pub //因为需要程序用户往里写数据,所以必须把属主改成ftp这个程序用户[root@localhost ftp]# id ftpuid=14(ftp) gid=50(ftp) groups=50(ftp) //ftp这个程序用户默认有[root@localhost ftp]# chown ftp pub/ // 改目录的属主3,开放匿名用户配置并启动vsftpd服务 
打开配置文件 
匿名配置文件就好了,开启服务
[root@localhost vsftpd]# /etc/init.d/vsftpd startStarting vsftpd for vsftpd: [ OK ][root@localhost vsftpd]# ss -antup | grep vsftpd //开启服务需要过滤一下端口,有的时候显示开了,其实没开tcp LISTEN 0 32 *:21 *:* users:(("vsftpd",1081,3))




ftp的命令和Linux里的命令不一样需要自己看用help命令看






服务器端关闭Linux的selinux防火墙配 setenforce 0 表示关闭selinux防火墙

1,建立虚拟用户账号数据库
vsftpd 服务使用 Berkeley DB 格式的数据库文件来存放虚拟用户账号,使用 db_load 工具生成数据库文件。(若未安装,安装包在安装光盘 1 中,软件名为 db4-utils) 



注:db_load 命令
-T:允许非 Berkeley 的程序使用该数据库
-t:指定算法 (hash:哈希,散列)
-f:指定源文件
注意:生成的数据库文件必须为“.db”格式 
2,添加虚拟映射账号,为FTP根目录修改权限
[root@localhost vsftpd]# useradd -d /var/ftproot/ -s /sbin/nologin virtual //这是映射账号,所有虚拟账号链接过来都会成为这个账号,指定家目录[root@localhost vsftpd]# ll -d /var/ftproot/drwx------. 2 virtual virtual 4096 Nov 4 18:47 /var/ftproot/[root@localhost vsftpd]# chmod 755 /var/ftproot/ // 把家目录的权限修改了[root@localhost vsftpd]# ll -d /var/ftproot/drwxr-xr-x. 2 virtual virtual 4096 Nov 4 18:47 /var/ftproot/[root@localhost vsftpd]#3,添加PAM认证 

4,修改vsftp.conf配置文件,重启服务




5,实现每个虚拟用户不同根目录、不同权限的管控
(1)创建用户控制目录,并创建虚拟所对应的同名配置文件
修改 zhangsan 的配置文件,使其可以上传、建立目录、删除文件、重命名文件、最大传输速率 1 字节/秒、根目录为/var/zhangsan



修改 lisi 的配置文件,使其仅可以下载上传,不开放其他权限,不限制传输速率,根目录为/var/lisi 
wangwu 的配置文件不做修改,其权限为配置文件中的默认权限,根目录为/var/ftproot,仅可以下载,无法上传。
(2)修改 vsftpd.conf 主配置文件,重启服务

(3)客户端测试 


原文:https://www.cnblogs.com/fengdou/p/9903448.html