文章目录
系统版本: Red Hat Enterprise Linux Server release 7.2 (Maipo)
ftp版本: vsftpd-3.0.2-10.el7.x86_64
创建virftp用户用于验证用户登录的场景
useradd -m virftp #创建用户
passwd virftp #配置密码
vsftpd.conf配置
[root@CSDN /etc/vsftpd]#cat vsftpd.conf|grep -v "^#"
anonymous_enable=YES #允许匿名登录,NO禁止匿名登录
local_enable=YES #允许Web页面使用用户登录,NO不允许Web页面使用用户登录(只能使用匿名用户登录,如果允许匿名登录的话)
write_enable=YES
local_umask=022
dirmessage_enable=YES
xferlog_enable=YES
connect_from_port_20=YES
xferlog_std_format=YES
listen=NO
listen_ipv6=YES
pam_service_name=vsftpd
userlist_enable=YES
tcp_wrappers=YES
local_root=/home/virftp/ #本地用户登录ftp时的根目录
anon_root=/ftpboot/ #匿名用户登录ftp时的根目录
anon_upload_enable=YES #允许匿名用户上传文件
anon_mkdir_write_enable=YES #允许匿名用户创建文件夹
[root@CSDN /etc/vsftpd]#
anon_upload_enable参数需要write_enable=YES时才有效;而且匿名用户需要将目录权限中others一级配置为可读写,但是本地验证发现将/ftpboot/配置为757或者777的时候启动ftp是不允许匿名访问的,ftp服务本地就对权限有限制,当将/ftpboot/配置为755时可以匿名访问但是目录权限不够即使配置了anon_upload_enable=YES和anon_mkdir_write_enable=YES匿名用户也是无法上传文件的,此时可以先启动服务后再修改/ftpboot/权限就可以达到匿名用户可以上传文件的操作。当然安全考虑不建议开启匿名用户登录的。
启动与验证
分别在/home/virftp/和/ftpboot/目录创建ftp_user.txt和anon.txt文件并启动ftp服务进行验证
[root@CSDN /ftpboot]#touch /home/virftp/ftp_user.txt
[root@CSDN /ftpboot]#touch /ftpboot/anon.txt
[root@CSDN /ftpboot]#service vsftpd start
Redirecting to /bin/systemctl start vsftpd.service
[root@CSDN /ftpboot]#service vsftpd status
Redirecting to /bin/systemctl status vsftpd.service
● vsftpd.service - Vsftpd ftp daemon
Loaded: loaded (/usr/lib/systemd/system/vsftpd.service; disabled; vendor preset: disabled)
Active: active (running) since Sun 2020-12-06 17:00:43 CST; 4min 18s ago
Process: 12266 ExecStart=/usr/sbin/vsftpd /etc/vsftpd/vsftpd.conf (code=exited, status=0/SUCCESS)
Main PID: 12267 (vsftpd)
CGroup: /system.slice/vsftpd.service
├─12267 /usr/sbin/vsftpd /etc/vsftpd/vsftpd.conf
├─12268 /usr/sbin/vsftpd /etc/vsftpd/vsftpd.conf
└─12270 /usr/sbin/vsftpd /etc/vsftpd/vsftpd.conf
Dec 06 17:00:42 localhost.localdomain systemd[1]: Starting Vsftpd ftp daemon...
Dec 06 17:00:43 localhost.localdomain systemd[1]: Started Vsftpd ftp daemon.
Dec 06 17:04:52 localhost.localdomain systemd[1]: Started Vsftpd ftp daemon.
[root@CSDN /ftpboot]#
验证用户登录(包括Web页面和文件资源管理器两种方式登录)
1.在url中直接输入用户密码
ftp://username:passwd@192.168.37.129
注:local_enable=NO时Web页面无法使用此方式登录
2.通过登录页面输入用户密码,注意当允许匿名用户登录时一下链接默认会使用匿名用户登录
ftp://192.168.37.129/
如上,当使用ie登录ftp时能看到其他目录,但原本的配置是想只能看到/home/virftp/目录下的文件。规避方案是将目录配置到根下,比如/virftp,这样就不会出现上面的现象
3.验证匿名登录(anonymous_enable=YES)
ftp://192.168.37.129/