这里主要是说vsftp的配置:基础的可以参考Linux中VSFTP的配置

  转自:https://www.jb51.net/article/103904.htm

修改配置文件

 配置文件/etc/vsftpd/vsftpd.conf

anonymous_enable=NO    # 不允许匿名访问,禁用匿名登录
chroot_local_user=YES # 启用限定用户在其主目录下
use_localtime=YES # 使用本地时(自行添加)
chroot_list_enable=YES
local_enable=YES # 允许使用本地帐户进行FTP用户登录验证
allow_writeable_chroot=YES # 如果启用了限定用户在其主目录下需要添加这个配置,解决报错 OOPS: vsftpd: refusing to run with writable root inside chroot()
xferlog_enable=YES # 启用上传和下载的日志功能,默认开启。
local_umask= # 设置本地用户默认文件掩码022
# FTP上本地的文件权限,默认是077,不过vsftpd安装后的配置文件里默认是022

虚拟用户高级参数

•当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时,虚拟用户只能下载、删除和重命名文件,无其他权限。

匿名登录

$ ftp 192.168.188.114

Connected to 192.168.188.114.
(vsFTPd 3.0.)
Name (192.168.188.114:kennywang): ftp
Please specify the password.
Password:
Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> ls
Entering Extended Passive Mode (||||).
Here comes the directory listing.
-rw-r--r-- Jan : README.md
drwxr-xr-x Nov : pub
Directory send OK.

多用户配置

多用户配置需要自己手工添加配置,下面内容到vsftpd.conf末尾

#
# use_localtime=YES # 使用本地时(自行添加)
listen_port=
chroot_local_user=YES # 启用限定用户在其主目录下
idle_session_timeout= data_connection_timeout= # 数据连接超时时间
guest_enable=YES # 设定启用虚拟用户功能
guest_username=ftpuser # 指定虚拟用户的宿主用户 ftpuser(就是我们后面会新建这个用户)
# guest_username=www
# 如果ftp目录是指向网站根目录,用来上传网站程序,
# 可以指定虚拟用户的宿主用户为nginx运行账户www,可以避免很多权限设置问题 user_config_dir=/etc/vsftpd/vuser_conf # 虚拟用户配置文件目录
virtual_use_local_privs=YES # NO时,虚拟用户和匿名用户有相同的权限,默认是NO pasv_min_port= # 被动模式最小端口号10060
pasv_max_port= # 被动模式最大端口号10090 accept_timeout=
connect_timeout=

创建宿主用户

新建系统用户ftpuser,用户目录为/home/vsftpd, 用户登录终端设为/bin/false(即使之不能登录系统)

# 方法一
# 创建用户 ftpuser 指定 `/home/vsftpd` 目录
useradd -g root -M -d /home/vsftpd -s /sbin/nologin ftpuser # 设置用户 ftpuser 的密码
passwd ftpuser
# 把 /home/vsftpd 的所有权给ftpuser.root
chown -R ftpuser.root /home/vsftpd # 方法二
useradd ftpuser -d /home/vsftpd -s /bin/false
chown ftpuser:ftpuser /home/vsftpd -R # 如果虚拟用户的宿主用户为www,需要这样设置
# www目录是你应用的目录
chown www:www /home/www -R

删除用户 userdel ftpuser

touch /etc/vsftpd/vuser_passwd
# 编辑虚拟用户名单文件:(
# 第一行账号,第二行密码,注意:不能使用root做用户名,系统保留)
vi /etc/vsftpd/vuser_passwd
# 编辑内容,下面是 vuser_passwd 内容
wcj hss #保存退出

  生成虚拟用户数据文件

db_load -T -t hash -f /etc/vsftpd/vuser_passwd /etc/vsftpd/vuser_passwd.db
chmod /etc/vsftpd/vuser_passwd.db

  创建用户配置

mkdir /etc/vsftpd/vuser_conf # 建立虚拟用户个人vsftp的配置文件
cd /etc/vsftpd/vuser_conf # 进入目录
touch hss wcj # 这里创建两个虚拟用户配置文件

  每一个文件配置文件都差不多,只是参数local_root不一样。

local_root=/home/vsftpd/hss  # 用户 hss 配置目录,这个地方不一样
write_enable=YES # 允许本地用户对FTP服务器文件具有写权限
anon_world_readable_only=NO
anon_upload_enable=YES # 允许匿名用户上传文件(须将全局的write_enable=YES,默认YES)
anon_mkdir_write_enable=YES # 允许匿名用户创建目录
anon_other_write_enable=YES # 允许匿名用户删除和重命名权限(自行添加)

创建用户目录

  每个用户目录文件夹是有root用户创建的,也就是上面local_root配置目录,其权限应设置为755。因为权限的问题在该文件夹内无法直接上传文件。而如果设置为777则无法访问,这是由于vsftpd的安全性设置。解决上传问题的方法是在local_root文件夹内新建一个upload的文件夹,权限设置为777,可将文件上传到该文件夹。

mkdir -p /home/vsftpd/hss   # 每个用户对于一个目录,创建两个目录“hss”、“wcj”

# 下面是目录结构
/home/vsftpd
├── hss
│ ├── filename.md
│ └── upload
└── wcj
└── filename.md # 赋予其权限
chmod -R /var/vsftpd/hss/upload/ # 在/var/ftp下新建一个目录来实现匿名用户上传
mkdir /var/ftp/upload

vsftpd中几种用户的区分:

本地用户:用户在FTP服务器拥有账号,且该账号为本地用户的账号,可以通过自己的账号和口令进行授权登录,登录目录为自己的home目录$HOME

虚拟用户:用户在FTP服务器上拥有账号,但该账号只能用于文件传输服务。登录目录为某一特定的目录,通常可以上传和下载

匿名用户:用户在FTP服务器上没有账号,登录目录为/var/ftp

最后重启vsftpd服务器

服务运维

systemctl restart vsftpd.service # 重启服务
systemctl start vsftpd.service # 启动服务
systemctl status vsftpd.service # 服务状态查看

Linux安装配置vsftp搭建FTP的详细配置的更多相关文章

  1. 详解CentOS7安装配置vsftp搭建FTP

    安装配置vsftpd做FTP服务,我们的Web应用使用git管理进行迭代,公共文件软件存储使用开源网盘Seafile来管理,基本够用.想不到FTP的使用的场景,感觉它好像老去了,虽然现在基本没有用到这 ...

  2. linux下使用vsftp搭建FTP服务器:匿名登录,账号登录,SSL加密传输

    目录 一.关于FTP和VSFTP 二.ftp.sftp.vsftp.vsftpd的区别 三.项目一:搭建一台所有人都可以访问的通用FTP服务器 3.1 项目要求 3.2 项目思路分析 3.3 使用vs ...

  3. 在本机使用虚拟机安装一个linux系统,并搭建ftp服务器

    一.Linux基础使用:linux服务器环境搭建(FTP服务器), 在本机使用虚拟机安装一个linux系统,并搭建ftp服务器,要求能使用ftp服务将本机文件到保存linux虚拟机上 资料: VMwa ...

  4. Centos7搭建FTP服务详细过程

    Centos7搭建FTP服务详细过程https://blog.csdn.net/sinat_30802291/article/details/81706152

  5. Linux安装MariaDB(Mysql)和简单配置 mariadb

    Linux安装MariaDB(Mysql)和简单配置 1.安装MariaDB 安装命令 yum -y install mariadb mariadb-server 安装完成MariaDB,首先启动Ma ...

  6. 学习配置vsftp 进行ftp文件的传输

    一. FTP 说明 linux 系统下常用的FTP 是vsftp, 即Very Security File Transfer Protocol. 还有一个是proftp(Profession ftp) ...

  7. linux(centos6)搭建ftp服务器

    前提 ssh服务已经开启,关闭防火墙,主机和虚拟机能ping通 查看ssh和防火墙的状态 service sshd status service iptables status 开启ssh服务 ser ...

  8. 服务器linux centos 7.4 搭建ftp服务器

    此操作是在腾讯云服务器linux centos 7.4 完成搭建ftp服务器 vsftpd 的: 安装 vsftpd $ yum install vsftpd -y 启动 $ service vsft ...

  9. linux(centos6)搭建ftp服务器 -摘自网络

    前提 ssh服务已经开启,关闭防火墙,主机和虚拟机能ping通 查看ssh和防火墙的状态 service sshd status service iptables status 开启ssh服务 ser ...

随机推荐

  1. app自动化问题点整理

    1.配置SDK环境发现adb无法生效: 解决方案: 这个问题一般就是你的环境变量没有配置好,很多同学比较容易出现的点就是win10系统的环境变量配置: 一定要注意打开path添加:%ANDROID_H ...

  2. mybatis 批量更新 Parameter '__frch_item_0' not found. Available parameters are [list]

    一次在做批量更新数据的时候报错 Parameter '__frch_item_0' not found. Available parameters are [list] 记过反复查找,最后才发现是一个 ...

  3. 7.Ajax

    优先级 如果发送的是[普通数据] jQuery XMLHttpRequest iframe 如果发送的是[文件] iframe jQuery(FormData) XMLHttpRequest(Form ...

  4. WARNING: 'aclocal-1.14' is missing on your system.

    源码安装zabbix agent时进行到make install时报如下错误: WARNING: 'aclocal-1.14' is missing on your system. You shoul ...

  5. Python3练习

    Hello Python3 print("Hello Python!") #print("Hello, Python!"); '''a=1 b=2 c=a+b ...

  6. asp.net core系列 32 EF查询数据 必备知识(1)

    一.查询的工作原理 Entity Framework Core 使用语言集成查询 (LINQ) 来查询数据库中的数据. 通过 LINQ 可使用 C#(或你选择的其他 .NET 语言)基于派生上下文和实 ...

  7. 在.NET Core console application中使用User Secrets(用户机密)

    微软很坑地只在Microsoft.NET.Sdk.Web中提供了VS项目右键菜单的"管理用户机密"/"Manage User Secrets"菜单项,在使用Mi ...

  8. 在Mac电脑编译c51程序

    如果不是Seven问起来,我以为C51这种东西已经属于历史遗迹了.不过简单搜索了一下,发现c51老而弥坚,仍然茁壮的生长着.原因据说,一方面是有很大的用户群和既有的软硬件资源,另外一方面,的确在很多的 ...

  9. SpringBoot入门教程(七)整合themeleaf+bootstrap

    Thymeleaf是用于Web和独立环境的现代服务器端Java模板引擎.Thymeleaf的主要目标是将优雅的自然模板带到您的开发工作流程中—HTML能够在浏览器中正确显示,并且可以作为静态原型,从而 ...

  10. 带着萌新看springboot源码06

    这节来说个大家都比较熟悉的东西,就是servlet三大组件,servlet.filter.listener,再说说springboot的内置tomcat. 也许还会说一下tomcat的运行原理,还有, ...