yum search ftp ##与ftp相关的软件包
/var/ftp ##ftp服务器的默认发布目录
rpm -qc vsftpd ##查看vsftp的配置文件名称
更详细的状态码:点击这里
getenforce ##查看selinux状态:enforcing为开启,disable关闭 vim /etc/sysconfig/selinux ##修改selinux配置文件 reboot
yum install vsftpd lftp -y systemctl start vsftpd systemctl enable vsftpd systemctl status vsftpd
firewall-cmd --list-all ##查看火墙相关的服务 firewall-cmd --permanent --add-service=ftp ##火墙永久允许FTP服务 firewall-cmd --reload ##重载火墙设置,使其生效
anonymous_enable=YES/NO ##匿名用户是否可以登录
write_enable=YES/NO ##登录用户是否可写,实验效果?
vim /etc/vsftpd/vsftpd.conf 修改内容:write_enable=YES anon_upload_enable=YES systemctl restart vsftpd ##完成之后重启服务
方法一: chmod 775 /var/ftp/pub chgrp ftp /var/ftp/pub 方法二: setfacl -m u:ftp:rwx /var/ftp/pub getfacl /var/ftp/pub
再次测试,发现生效。
anon_root=/westos
anon_umask=022
anon_mkdir_write_enable=YES
anon_world_readable_only=NO ##匿名用户只读为NO,表示不只是读,可以下载get
anon_other_write_enable=YES ##匿名用户其他写功能,删除、重命名(mv)
chown_uploads=YES ##修改用户是否可以上传 chown_username=student ##修改用户身份为student chown_upload_mode=0644 ##修改用户上传的文件权限
anon_max_rate=102400 #单位是字节(bytes)
测试:
max_clients=2 #最多两个客户端同时访问ftp服务器
local_enable=YES/NO ##本地用户是否可以登录 write_enable=YES/NO ##本地用户写权限限制
local_root=/dir
local_umask=077
chroot_local_user=YES #所有用户被锁定到自己的家目录中
对比图
chmod ugo-w /home/* ##用户家目录去除写权限后才可以浏览自己的家目录,可能跟chroot_local_user冲突
chroot_local_user=NO ##黑名单 chroot_list_enable=YES chroot_list_file=/etc/vsftpd/chroot_list
在/etc/vsftpd/chroot_list 写入黑名单用户即可。
chroot_local_user=YES ##白名单 chroot_list_enable=YES chroot_list_file=/etc/vsftpd/chroot_list
vim /etc/vsftpd/ftpusers ##用户黑名单 vim /etc/vsftpd/user_list ##用户临时黑名单
vim /etc/vsftp/vsftpd.conf 写入:userlist_deny=NO ##让黑名单变为白名单 vim /etc/vsftpd/user_list ##参数设定,文件变成用户白名单,只在名单中出现的用户才可以登录ftp
vim /etc/vsftpd/loginFile ##文件名随意,但需要一定可读性
db_load -T -t hash -f /etc/vsftpd/loginFile /etc/vsftpd/loginFile.db ##哈希加密
vim /etc/pam.d/loginFile ##在认证目录下创建一个文件,此文件就是下面需要用的认证文件 文件内容: auth required pam_userdb.so db=/etc/vsftpd/loginFile ##使用认证程序为pam,加密文件为loginFile account required pam_userdb.so db=/etc/vsftpd/loginFile ##用程序来看一个这个文件里是否存在此账户
vim /etc/vsftpd/vsftpd.conf 写入: pam_service_name=loginFile ##写上面生成的认证文件,这样默认系统用户不能登录 guest_enable=YES ##开启虚拟用户的功能
mkdir -p /var/ftpuserdir/westos{1..3} ##递归的创建目录 vim /etc/vsftpd/vsftpd.conf 写入并重启服务: local_root=/var/ftpuserdir/$USER user_sub_token=$USER
mkdir /var/ftpuserdir/westos{1..3}/pub touch /var/ftpuserdir/westos1/file1 touch /var/ftpuserdir/westos2/file2 touch /var/ftpuserdir/westos3/file3
注意:$ USER用来表示用户身份,例如:kiosk用户的家目录是/home/kiosk,student用户的家目录是/home/student,所以我们在vsftpd.conf配置文件中将用户家目录修改为/var/ftpdir/$USER。 图
mkdir /var/ftpuserdir/user{1..3}/pub touch /var/ftpuserdir/user1/file1 touch /var/ftpuserdir/user2/file2 touch /var/ftpuserdir/user3/file3
方法一: chmod 775 /var/ftpuserdir/westos*/pub chgrp ftp /var/ftpuserdir/westos*/pub 方法二: setfacl -m u:ftp:rwx /var/ftpuserdir/westos*/pub getfacl /var/ftpuserdor/westos*/pub
mkdir -p /etc/vsftpd/user_config vim /etc/vsftpd/user_config/user1 写入相关参数: anon_upload_enable=YES
图
vim /etc/vsftpd/vsftpd.conf 写入: user_config_dir=/etc/vsftpd/user_config ##指定用户配置文件目录