一、安装ftp服务
1.挂载镜像,设备状态全选,在选择iso镜像文件
桌面出现光盘图标为挂载成功
在终端打开输入以下命令
mount /dev/sr0 /mnt
出现下图为成功
2.配置yum源(方便解决依赖关系) 输入以下命令
cd /etc/yum.repos.d
rm -rf *
vim 1.repo
1.repo的内容
[name]
baseurl=file:///mnt
enable=1
gpgcheck=0
3.安装vsftpd(服务器)和ftp(客户端)
yum install vsftpd* -y
yum install ftp -y
4.重启ftp服务
systemctl restart vsftpd
5.登录,用户名为ftp,密码为空
ftp 127.0.0.1
安装时可能出现进程已锁定,在睡眠中
有以下两种解决方法
(1)删除
rm -rf /var/run/yum.pid
(2)删进程,ps查看进程,找到对应的进行号,进程需要杀两次
kill -9 pid号
ps
kill -9 pid号
二、ftp的配置文件
配置文件位置:/etc/vsftpd/vsftpd.conf
anonymous_enable=YES #是否开启匿名用户允许访问
local_enable=YES #是否允许本地用户登录FTP
write_enable=YES #是否允许本地用户写入,开启允许上传的
anon_upload_enable=YES #是否允许匿名用户上传
anon_mkdir_write_enable=YES #是否允许匿名用户写入
anon_other_write_enable=YES #是否允许其他用户写入
chroot_local_user=YES #是否开启锁定目录,不能切换到其他目录
chroot_list_enable=YES #是否开启锁定目录的用户列表,和上面的只能开一个(冲突)
chroot_list_file=/etc/user.txt #用户锁定目录列表文件的位置
pam_service_name=vsftpd #设置PAM的名称
userlist_enable=YES #设置用户已列表,允许或是禁止
tcp_wrappers=YES #控制主机访问,检查/etc/hosts.allow hosts.deny的配置达到防火墙作用
anon_root=/c #虚拟用户家目录
local_root=/d #本地,虚拟用户家目录
三、ftp的三种用户模式
ftp的三种用户模式分为匿名用户,本地用户,虚拟用户
安装ftp服务端默认情况
(1)允许匿名用户访问 匿名登录目录为/var/ftp 不能切到换其他目录,pwd命名查看的目录是/,这个目录是/var/ftp,不是linux 根目录/,只有读和下载,文件能否写,是要看权限的,要看两层门,最外面的一层门是配置文件的权限,第二层是文件本身的权限
目录为锁死状态
(2)本地用户 登录的目录为自己的家目录 可以切换到其他目录,是不安全的,只有读和下载自己的,自己的家目录是锁不上的,就是还可以切换目录
目录未锁死
当开启selinux和防火墙时给予文件夹/var/ftp 777是不能写的,配置文件加上也不能创建目录,当关闭setenforce就不能登录不上,所以说有一个/var/ftp/pub目录,把这个文件给予权限
anon local需要新建家目录,pam文件相对路劲文件位置需要改ETC/pam.d/vir新建目录
登录时目录使用的是本地的家目录
在配置权限时就是匿名了
1.匿名用户模式(默认)
文件可写可上传
(1)修改配置文件
修改配置文件时需要注意有的地方就不能直接添加,要用原来的
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES
(3)修改文件夹的权限
chown -Rf ftp /var/ftp/pub/
(2)重启服务,关闭防火墙和sexlinux
systemctl restart vsftpd
systemctl stop firewalld
setenforce 0
(3)验证
2.本地用户模式
查看是否local_enable开启
(1)新建用户
useradd z3
passwd z3
(2)验证
3.虚拟用户模式
虚拟用户是禁止登陆操作系统的,是假的用户,但借助的是本地用户,只是创建用户时创建的是禁止登陆的用户,虚拟用户(假用户)没有登录目录,需要指定登录上来的目录,权限用的是虚拟用户的权限
(1)创建用户登陆的文件,奇数行账户名、偶数行是密码,添加几个用户
touch /var/ftpuser.txt
(2)用于转化普通文本为vsftpd识别的数据库文件
db_load -T -t hash -f /var/ftpuser.txt /etc/vsftpd/ftpuser.db
(3)新建一个用户virt,指定用户家目录/xuni(不能先创建),且禁止登录
useradd -d /xuni -s /sbin/nologin virt
(4)更改文件夹权限
chmod -Rf 755 /xuni
(5)修改认证的文件,不能使用原有的,不成功
vim /etc/pam.d/vir
auth required pam_userdb.so db=/etc/vsftpd/ftpuser
account required pam_userdb.so db=/etc/vsftpd/ftpuser
(6)修改vsftpd配置文件,在最后添加(直接覆盖),不知为什么改容易出现重启失败
pam_service_name=vir
userlist_enable=YES
tcp_wrappers=YES
guest_enable=YES
guest_username=virt
allow_writeable_chroot=YES
pam_service_name=vir #指定PAM认证文件,相对路径(/etc/pam.d)
userlist_enable=YES
tcp_wrappers=YES
guest_enable=YES #开启虚拟用户
guest_username=virt #指定虚拟用户账号
allow_writeable_chroot=YES #如果用户被限制只能在其家目录,允许用户可以对家目录写入数据
(7)重启服务,关闭防火墙
systemctl restart vsftpd
systemctl stop firewalld
setenforce 0
(8)验证
不同的虚拟用户想要设置登陆目录,用local_root设置
针对不同的虚拟用户设置不同的权限,在分别在下面的目录创/etc/vsftpd/virtual_user_dir建用户名子目录,写入对应的权限(用的是虚拟用户权限)
修改主配置文件
user_config_dir=/etc/vsftpd/virtual_user_dir