一,FTP搭建准备
1.1 准备一台虚拟机作为ftp的server端,指定一个目录是共享目录,客户端连接到服务器可以直接在共享目录中进行下载和上传
服务端要安装vsftpd命令,客户端要安装ftp命令,客户端使用ftp命令来进行登陆的
1.2 FTP三种用户类型
(1)匿名用户
共享的文件为/var/ftp/pub目录,并且这个目录要把他的属主改为ftp
安装完vsftpd自然就有/etc/vsftpd/vsftpd.conf:ftp配置文件
1 27 anon_upload_enable=YES #开启匿名用户上传权限 2 28 anon_umask=022 #手动添加匿名用户的其他写入权限 3 32 anon_mkdir_write_enable=YES #开启匿名用户新建目录的权限 4 33 anon_other_write_enable=YES #手动添加匿名用户的其他写入权限(删除重命名)
(2).本地用户
共享的目录为账号自己的家目录
1 22 local_umask=077 修改本地用户默认权限掩码为077 2 96 chroot_local_user=YES 开启本地用户的家目录锁定
因为是ftp本地用户服务所以需要先创建一个普通用户和密码用客户端ftp登陆服务端输入yunjisuan账号和密码
1 useradd yunjisuan 2 passwd yunjisuan
(3) 虚拟用户
先查看系统是否有db_load命令,没有则需要安装ftp虚拟用户首先需要在/etc/vsftpd下创建密码文件
创建完密码文件需要弄db_load命令转换成数据文件,-T允许非程序使用该数据库 -t指定算法 hash -f代表加密,因为是密码,为了增加安全性需要给chmod 600 vusers.db权限
首先创建虚拟映射账号,因为指定了家目录所以给手动创建一个家目录并赋上755权限
手动建立此pam认证文件
修改配置文件
配置完重启服务,就可以用客户端进行ftp登陆,因为是指定创建的家目录,所以需要去/var/ftproot创建文件
ftp客户端登陆服务端,输入手动创建的虚拟账号密码,就可以看到刚才在服务端家目录创建的文件
用第二个账号登陆,也可以看到指定的服务端家目录文件
为了实现每个虚拟用户不同根目录,不同权限的管控,首先在/etc/vsftpd创建mkdir /vusers.dir目录,创建完进入目录touch 虚拟账号里的名字
vim手动打开/etc/vsftpd/vusers.dir/虚拟账号名
配置完手动mkdir -p /var/虚拟账号名,chown virtual /var/虚拟账号名:把账号属主换成virtual有读写权限
最后需要在/etc/vsftpd/vsftpd.conf手动填写123行内容
在客户端ftp登陆虚拟用户,文件正好是在服务端配置文件目录创建的文件