[root@localhost ~]# vim /etc/sysconfig/selinux ##实验前准备
##更改为SELINUX=disabled
[root@localhost ~]# reboot
Connection to 172.25.254.144 closed by remote host.
Connection to 172.25.254.144 closed.
[kiosk@foundation44 Desktop]$ ssh root@172.25.254.144 -X
root@172.25.254.144's password:
Last login: Sat Apr 22 21:49:33 2017 from 172.25.254.44
[root@localhost ~]# getenforce ##更改成功
Disabled
配置ip 同网段
[root@localhost ~]# vim /etc/yum.repos.d/rhel_dvd.repo ##更改yum源的指向
##### Created by cloud-init on Thu, 10 Jul 2014 22:19:11 +0000
[rhel_dvd]
gpgcheck = 0
enabled = 1
baseurl = http://172.25.254.250/rhel7
name = Remote classroom copy of dvd
[root@localhost ~]# yum search ftp ##搜索ftp
[root@localhost ~]# yum install vsftpd.x86_64 -y ##安装ftp服务
[root@localhost ~]# systemctl start firewalld
[root@localhost ~]# systemctl enable firewalld
[root@localhost ~]# firewall-cmd --list-all
public (default, active)
interfaces: eth0
sources:
services: dhcpv6-client ssh
ports:
masquerade: no
forward-ports:
icmp-blocks:
rich rules:
[root@localhost ~]# firewall-cmd --permanent --add-service=ftp ##把ftp允许通过火墙
success
[root@localhost ~]# firewall-cmd --reload
success
[root@localhost ~]# systemctl start vsftpd
首先测试是否可以登陆
[root@localhost ~]# vim /etc/vsftpd/vsftpd.conf
####更改三行数据YES OR NO 控制主机登陆#############
anonymous_enable=YES ##匿名用户管理
#
# Uncomment this to allow local users to log in.
# When SELinux is enforcing check for SE bool ftp_home_dir
local_enable=YES ##本地用户管理
#
# Uncomment this to enable any form of FTP write command.
write_enable=YES ##本地用户的修改权限
##############################
匿名用户的权限修改设置
匿名用户设定
anonymous_enable=YES|NO ##匿名用户登陆限制
匿名用户上传
vim /etc/vsftpd/vsftpd.conf
##########################
write_enable=YES
anon_upload_enable=YES
###########################
chgrp ftp /var/ftp/pub
chmod 775 /var/ftp/pub
##############################################
34 anon_mkdir_write_enable=YES ##创建目录权限
35 anon_other_write_enable=YES ##删除目录权限
36 anon_world_readable_only=NO ##下载可读权限
37 anon_umask=022 ##上传目录的权限设置
##################################################
###########################################
chown_username=redhat ##上传的所有文件 自动归属 用户 redhat
chown_upload_mode=0644 ##上传的文件目录权限
anon_max_rate=102400 ##上传的速率设置
############################################
#####################################################
#local_root=/redhat ##更改本地用户登陆 默认文件夹
#anon_root=/redhat ##更改匿名用户登陆 默认文件夹
max_clients=5 ##设置最多5个用户可以链接
######################################################
#################################################
chroot_local_user=YES ##所有用户被锁定到自己的家目录中
chmod u-w /home/*
###################################################
黑名单
vim /etc/vsftpd/ftpusers ##用户黑名单 用户只要在 就不能登陆
vim etc/vsftpd/user_list ##用户临时黑名单
白名单
给文件vim /etc/vsftpd/vsftpd.conf 加入
userlist deny=NO
etc/vsftpd/user_list 变为白名单
ftp虚拟用户的设定
[root@localhost vsftpd]# vim /etc/vsftpd/loginusers #### 建立用户信息目录
[root@localhost vsftpd]# db_load -T -t hash -f loginusers loginusers.db ###生成指定的数据文件
root@localhost pam.d]# vim ftpuser 在/etc/pam.d下建立 指定 用户信息存放地址
[root@localhost pam.d]# vim /etc/vsftpd/vsftpd.conf ##在此文件下指定
########################################
#pam_service_name=vsftpd
pam_service_name=ftpuser ##登陆时指定pam下的ftpuser文件的路径去验证
guest_enable=YES ##开启虚拟用户
guest_username=redhat ##所有虚拟用户使用的身份为系统的一个用户
local_root=/ftpdir/$USER
##指定用户目录独立设定
user_sub_token=$USERuserlist_enable=YES
########################################
[root@localhost pam.d]# systemctl restart vsftpd ##重启服务
建立指定的目录
[root@localhost ~]# mkdir /ftpdir/user{1..3} -p
[root@localhost ~]# mkdir /ftpdir/user{1..3}/upload
[root@localhost ~]# touch /ftpdir/user1/userfile1
[root@localhost ~]# touch /ftpdir/user2/userfile2
[root@localhost ~]# touch /ftpdir/user3/userfile3
[root@localhost ~]# systemctl restart vsftpd
测试: