第一步:安装vsftpd
安装命令
yum install vsftpd -y
查看安装软件所在目录
whereis vsftpd
如果要卸载可以使用下面命令
rpm -e vsftpd
第二步:启动vsftpd 并添加对外端口21
启动
systemctl start vsftpd
设置开机启动
chkconfig vsftpd on
添加例外端口
firewall-cmd --permanent --add-port=21/tcp
重启防火墙
systemctl restart firewalld
查看所有开放端口命令
firewall-cmd --list-ports
第三步:创建ftp用户
创建ftp用户
useradd -d /data/web/images -g ftp -s /sbin/nologin webftp
删除可以使用
userdel webftp
参数选项:
-c comment 指定一段注释性描述。
-d 目录 指定用户主目录,如果此目录不存在,则同时使用-m选项,可以创建主目录。
-g 用户组 指定用户所属的用户组。
-G 用户组,用户组 指定用户所属的附加组。
-s Shell文件 指定用户的登录Shell。
登录shell是可以用户登录使用的,比如/bin/bash ,/bin/sh ,/bin/csh......一般 Linux默认的用户shell都是bash,也就是你可以登录进去写命令。
经典的/bin/nologin就是一个非登录shell,也就是说如果一个用户默认的是它,这个用户即使登录进linux也无法使用linux。
-u 用户号 指定用户的用户号,如果同时有-o选项,则可以重复使用其他用户的标识号
设置密码
passwd webftp
第四步:测试ftp(此时登录会发现一个问题,出现530错误)
解决:进入/etc/pam.d 目录 ,编辑 vi vsftpd 修改如下图,红色标记部分
保存,重启 vsftpd
systemctl restart vsftpd
如果登录出来无法远程访问文件夹问题,可以通过下面方法解决
修改目录权限
chmod 777 -R web
vsftpd 一般配置修改
anonymous_enable=NO #禁用匿名登录
chroot_local_user=YES
chroot_list_enable=NO
- 当chroot_list_enable=YES,chroot_local_user=YES时,在/etc/vsftpd.chroot_list文件中列出的用户,可以切换到其他目录;未在文件中列出的用户,不能切换到其他目录。
- 当chroot_list_enable=YES,chroot_local_user=NO时,在/etc/vsftpd.chroot_list文件中列出的用户,不能切换到其他目录;未在文件中列出的用户,可以切换到其他目录。
- 当chroot_list_enable=NO,chroot_local_user=YES时,所有的用户均不能切换到其他目录。
- 当chroot_list_enable=NO,chroot_local_user=NO时,所有的用户均可以切换到其他目录。
allow_writeable_chroot=YES # 允许 chroot 用户具备写权限
# 被动模式使用端口范围
pasv_min_port=30000
pasv_max_port=30100
防火墙例外中添加 vsftpd 被动模式使用端口范围,然后重启防火墙
完成!