一、首先,查看是否安装vsftpd
没有,则安装
yum -y install vsftpd
二、建立虚拟用户登陆管理ftp
vsftpd的用户分3种,都是可以登陆ftp的,一个是匿名用户,一个是本地用户和一个是虚拟用户。当我们要开放用户管理的时候,推荐使用虚拟用户。
(1)首先,看看vsftpd中我们需要作出怎样的配
Vi /etc/vsftpd/vsftpd.conf
为了支持虚拟用户的配置,在vsftpd.conf中我们需要更改以下配置项:
anonymous_enable=NO 设定不允许匿名访问
local_enable=YES 设定本地用户可以访问。
chroot_list_enable=YES 使用户不能离开主目录
xferlog_file=/var/log/vsftpd.log 设定vsftpd的服务日志保存路径。注意,该文件默认不存在。必须要手动touch出来
ascii_upload_enable=YES
ascii_download_enable=YES 设定支持ASCII模式的上传和下载功能。
pam_service_name=vsftpd PAM认证文件名。PAM将根据/etc/pam.d/vsftpd进行认证
guest_enable=YES 设定启用虚拟用户功能。
guest_username=ftp 指定虚拟用户的宿主用户。-默认已经有内置的ftp用户了(可换成其他本地账号)
user_config_dir=/etc/vsftpd/vuser_conf 设定虚拟用户个人vsftp的CentOS FTP服务文件存放路径。存放虚拟用户个性的CentOS FTP服务文件(配置文件名=虚拟用户名)
创建chroot list,将用户ftp加入其中:
touch /etc/vsftpd/chroot_list
echo ftp >> /etc/vsftpd/chroot_list
(2)进行认证:
首先,创建用户密码文本/etc/vsftpd/vuser_passwd.txt ,注意奇行是用户名,偶行是密码
命令:vi /etc/vsftpd/vuser_passwd.txt
其中wenan是高级账号,wenan_m是中级,wenan_l是低级,其余部门类似。
接着,.生成虚拟用户认证的db文件
db_load -T -t hash -f /etc/vsftpd/vuser_passwd.txt /etc/vsftpd/vuser_passwd.db
如果没安装Berkeley DB工具,运行命令安装
随后,编辑认证文件/etc/pam.d/vsftpd,全部注释掉原来语句
再增加以下两句
auth required pam_userdb.so db=/etc/vsftpd/vuser_passwd
account required pam_userdb.so db=/etc/vsftpd/vuser_passwd
最后,创建虚拟用户个性FTP服务文件(以wenan高级账号为例)
mkdir /etc/vsftpd/vuser_conf/
vi /etc/vsftpd/vuser_conf/wenan(注:文件名等于vuser_passwd.txt里面的账户名,否则下面设置无效)
内容如下:
local_root=/var/www/wenan 虚拟用户(文案部门对应)的根目录
write_enable=YES 可写
anon_umask=022 掩码
anon_world_readable_only=NO
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES
以上是高级账号的配置,其他权限根据需要可自行修改
------------------------------------------------------------------------------------------------
(3)Ps用户权限控制的一些配置
当virtual_use_local_privs=YES时,虚拟用户和本地用户有相同的权限;
当virtual_use_local_privs=NO时,虚拟用户和匿名用户有相同的权限,默认是NO。
当virtual_use_local_privs=YES,write_enable=YES时,虚拟用户具有写权限(上传、下载、删除、重命名)。
当virtual_use_local_privs=NO,write_enable=YES,anon_world_readable_only=YES,
anon_upload_enable=YES时,虚拟用户不能浏览目录,只能上传文件,无其他权限。
当virtual_use_local_privs=NO,write_enable=YES,anon_world_readable_only=NO,
anon_upload_enable=NO时,虚拟用户只能下载文件,无其他权限。
当virtual_use_local_privs=NO,write_enable=YES,anon_world_readable_only=NO,
anon_upload_enable=YES时,虚拟用户只能上传和下载文件,无其他权限。
当virtual_use_local_privs=NO,write_enable=YES,anon_world_readable_only=NO,
anon_mkdir_write_enable=YES时,虚拟用户只能下载文件和创建文件夹,无其他权限。
当virtual_use_local_privs=NO,write_enable=YES,anon_world_readable_only=NO,
anon_other_write_enable=YES时,虚拟用户只能下载、删除和重命名文件,无其他权限。
三、启动vsftp
service vsftpd start 开启命令
service vsftpd restart 重启
service vsftpd stop 停止
(注意,启动前记得关门selinux或者解除selinux阻止)
解除selinux阻止
setsebool -P ftpd_disable_trans 1
查看selinux状态
/usr/sbin/sestatus -v
关闭SELinux:
1、临时关闭(不用重启机器):
setenforce 0 ##设置SELinux 成为permissive模式
##setenforce 1 设置SELinux 成为enforcing模式
2、修改配置文件需要重启机器:
修改/etc/selinux/config 文件
将SELINUX=enforcing改为SELINUX=disabled
最后,访问成功