准备前的工作
安装前请确保服务器环境干净,如之前安装过该软件,先删除后再进行下一步操作。
#检测服务器中是否有残留Vsftpd
rpm -qa | grep vsftpd
#存在进行删除
yum remove vsftpd
1.开始安装
yum install -y vsftpd
出现下图代表安装完成!
软件默认安装在 /etc/vsftpd目录下
/etc/vsftpd/vsftpd.conf | 主配置文件,核心配置文件 |
---|---|
/etc/vsftpd/ftpusers | 黑名单 |
/etc/vsftpd/user_list | 白名单 |
2.配置本地用户登录
本地用户登录就是指使用Linux操作系统中的用户账号和密码登录ftp服务器,vsftp安装后默只支持匿名ftp登录,用户如果试图使用Linux操作系统中的账号登录服务器,将会被vsftpd拒绝
#创建用户组admin
groupadd admin
#创建用户pandi指定用户组为admin (二选一)
useradd pandi -d /home/ftp -g admin
#创建不可用于操作系统的用户pandi (二选一)
useradd -g admin -d /home/ftp -s /sbin/nologin pandi
#给这个用户设置密码
passwd pandi
#设置目录权限(根据个人需要配置)
chmod 777 /home/ftp
-
密码需要输入两次,输入完密码用户创建完成!
-
在这里需要注意上面的二选一,长度短的为可以用创建的用户进行linux系统登录,长度为不可以进行系统登录根据需求选择。
-
后面权限配置分为本地用户和虚拟用户,如果我们需要使用本地用户进行权限控制就需要配置可用于系统登录的做法,如使用虚拟账户则创建一个不可用于系统登录的账户是可以的。
-
除了本地用户和虚拟用户权限,还有匿名用户访问的方式,这种方式不安全,也最为简单,这里不做讲解。
3.修改配置文件
#是否允许匿名登录FTP服务器
anonymous_enable=NO
#是否允许本地用户
local_enable=YES
#是否允许本地用户对FTP服务器文件具有写权限
write_enable=YES
#设置本地用户的文件掩码为缺省022 文件默认权限为755
local_umask=022
#是否激活目录欢迎信息功能
dirmessage_enable=YES
#是否启动系统维护记录服务器上传和下载情况的日志文件
xferlog_enable=YES
#如果启用此选项,传输日志文件将以标准xferlog的格式书写
xferlog_std_format=YES
xferlog_file=/var/log/vsftpd.log
#开启主动模式
#port_enable=YES
#开启主动模式需设置 主动和被动模式只能二选一
#connect_from_port_20=YES
#vsftpd将以独立模式运行,由vsftpd自己监听和处理连接请求
listen=YES
#设定是否支持IPV6
listen_ipv6=NO
#启用虚拟用户
guest_enable=YES
#虚拟用户映系统用户pandi
guest_username=pandi
#虚拟用户和本地用户权限相同
#virtual_use_local_privs=YES
#设置PAM认证服务的配置文件名称,该文件存放在/etc/pam.d/目录下
pam_service_name=vsftpd
#设置虚拟用户配置文件的保存目录
user_config_dir=/etc/vsftpd/vsftpd_user_conf
#user_list文件中的用户是否启用
#userlist_enable=NO
#NO表示usre_list文件用于设置只允许登录的用户账号 yes表示禁止这些用户
#userlist_deny=NO
#表明服务器使用tcp_wrappers作为主机访问控制方式
tcp_wrappers=YES
#是否启动限制用户的名单 YES为启用 NO禁用(包括注释掉也为禁用)
#chroot_list_enable=NO
#是否将所有用户限制在主目录
chroot_local_user=YES
#是否限制在主目录下的用户名单
#chroot_list_file=/etc/vsftpd/chroot_list
#打开限制用户根目录写权限 否则报500
allow_writeable_chroot=YES
#被动模式公网IP地址
pasv_address=XX.XX.XX.XX
#是否开启被动模式
pasv_enable=YES
#被动模式随机端口最小
pasv_min_port=30000
#被动模式随机端口最大
pasv_max_port=50000
#本地用户登录后的家目录
local_root=/home/ftp/
#配置后可解决一些奇怪的错误
seccomp_sandbox=NO
4.启动项目即可
在此之前需要在云服务器上放开安全组规则
20/21 0.0.0.0
30000/50000 0.0.0.0
客户端和服务器端确保防火墙的关闭或者防火墙的放行
systemctl start vsftpd.service
开始测试,可以使用windows文件管理器测试,或者使用命令行,浏览器的话现在几乎所有主流浏览器均不支持FTP协议,如有特殊需求需要使用浏览器访问,需要安装IE浏览器进行测试。
5.本地用户权限设置
本地用户的权限设置需要利用系统中的权限设置来进行用户分组管理
假设有这么一个需求A、B 、C 三个用户为管理员用户对FTP拥有读写执行权限 D、E、F为普通用户只有读的权利
第一步创建A、B 、C 三个用户指定其分组为admin
第二步创建D、E、F 三个用户指定其分组为customer
第三步将/home/ftp目录所有者更改为A\B\C用户中任意一人 权限改为775
参考命令:
#创建分组
groupadd customer
#创建用户指定分组 C为用户名 指定家目录为ftp
useradd -d /home/ftp -g customer C
#给用户设置密码
passwd C
#设置文件夹权限 所有权为A用户和admin组
chown -R A:admin /home/ftp
chmod -R 775 /home/ftp
#查看所有用户组
cat /etc/group
6.虚拟用户权限设置
修改配置文件,必须添加
#虚拟用户映系统用户root 根据需要自己创建必须真实存在的系统用户
guest_username=root
#启用虚拟用户
guest_enable=YES
#认证文件名称
pam_service_name=vsftpd
1.创建虚拟用户,需要多少添加多少
vim /etc/vsftpd/logins.txt
test #奇数行为用户名
root789 #偶数行为密码
test2
root789
2.生成.db认证文件
db_load -T -t hash -f logins.txt /etc/vsftpd/vsftpd_login.db
3.生成的认证文件的权限应设置为只对root用户可读可写,即600
chmod 600 /etc/vsftpd/vsftpd_login.db
4.建立虚拟用户所需的PAM配置文件和pam_service_name=vsftpd对应
vim /etc/pam.d/vsftpd
5.加入如下配置
这块需要注意 上面的配置必须写在最上面,否则将导致本地用户和虚拟用户只有一方可以登录,踩过的坑切记。
auth sufficient pam_userdb.so db=/etc/vsftpd/vsftpd_login
account sufficient pam_userdb.so db=/etc/vsftpd/vsftpd_login
6.重启测试
systemctl restart vsftpd.service
7.权限配置讲解
当virtual_use_local_privs=YES时,虚拟用户和本地用户有相同的权限;
当virtual_use_local_privs=NO时,虚拟用户和匿名用户有相同的权限,默认是NO。
1.设置主配置文件
在vsftpd.conf配置文件中添加user_config_dir配置项,并设置用户配置文件的保存目录
user_config_dir=/etc/vsftpd/vsftpd_user_conf
在上面的配置实例中,设置在/etc/vsftpd/vsftpd_user_conf目录中保存虚拟用户的配置文件
2.建立用户配置文件目录
mkdir /etc/vsftpd_user_conf
3.为虚拟用户建立单独的配置文件
在vsftpd_user_conf目录中可以为每个虚拟用户建立独立的配置文件,配置文件名称和用户名相同。
命令参数 | 权限类型 |
---|---|
anon_world_readable_only=NO | 表示用户可以浏览FTP目录和下载文件 |
anon_upload_enable=YES | 表示用户可以上传文件 |
anon_mkdir_write_enable=YES | 表示用户具有建立和删除目录的权利 |
anon_other_write_enable=YES | 表示用户具有文件改名和删除文件的权限 |
至此vsftpd安装配置彻底完成,可以测试权限等相关配置了文章来源:https://www.toymoban.com/news/detail-488408.html
在网上搜了一篇解释权限的很不错,可以参考:文章来源地址https://www.toymoban.com/news/detail-488408.html
- 权限控制:virtual_use_local_privs参数
当virtual_use_local_privs=YES时,虚拟用户和本地用户有相同的权限;
当virtual_use_local_privs=NO时,虚拟用户和匿名用户有相同的权限,默认是NO; 也就是对自己的新根目录什么权限都没有。
2. 当virtual_use_local_privs=YES,write_enable=YES时,虚拟用户具有写权限(上传、下载、删除、重命名)。
3. 当virtual_use_local_privs=NO,write_enable=YES,anon_world_readable_only=YES,anon_upload_enable=YES时,虚拟用户不能浏览目录,只能上传文件,无其他权限。
4. 当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时,虚拟用户只能下载、删除和重命名文件,无其他权限。
到了这里,关于阿里云LINUX安装vsftpd完整指南(不浪费时间,干货满满)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!