当前位置 : 主页 > 操作系统 > centos >

linux ftp服务器 虚拟机做服务器如何实现

来源:互联网 收集:自由互联 发布时间:2023-07-28
搭建一个Linux FTP服务器,可以使用很多种方法,但是在虚拟机上搭建比较方便,本文将介绍在虚拟机上搭建FTP服务器的方法。 确定虚拟机配置与系统 首先,你需要确定要在哪个虚拟机

搭建一个Linux FTP服务器,可以使用很多种方法,但是在虚拟机上搭建比较方便,本文将介绍在虚拟机上搭建FTP服务器的方法。

确定虚拟机配置与系统

首先,你需要确定要在哪个虚拟机上搭建FTP服务器,这里假设你将使用VMware Workstation,并已经安装好了Ubuntu 20.04 LTS操作系统。此外,你还需要确定你要给FTP服务器分配多少资源,例如内存、处理器和磁盘空间。

安装vsftpd

在Ubuntu 20.04 LTS上安装vsftpd很简单,只需要运行以下命令就可以:

sudo apt update
sudo apt install vsftpd
配置vsftpd

安装vsftpd之后,你需要对其进行配置。在Ubuntu 20.04 LTS上,vsftpd的配置文件位于/etc/vsftpd.conf。你可以使用文本编辑器(例如nano)打开文件并编辑它。

以下是一些常用配置项:

anonymous_enable=NO
local_enable=YES
chroot_local_user=YES
write_enable=YES
local_umask=022
dirmessage_enable=YES
xferlog_enable=YES
connect_from_port_20=YES
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd.chroot_list
pam_service_name=vsftpd
listen=NO
listen_ipv6=YES

解释一下这些选项的含义:

  • anonymous_enable=NO: 禁用匿名FTP登录
  • local_enable=YES: 允许用户通过FTP登录
  • chroot_local_user=YES: 将用户视为本地用户
  • write_enable=YES: 允许用户上传和下载文件
  • local_umask=022: 设置FTP上传的文件权限
  • dirmessage_enable=YES: 允许发送提示消息
  • xferlog_enable=YES: 将ftp上传下载记录到日志文件中
  • connect_from_port_20=YES: 启用从20号端口连接数据
创建FTP用户

在vsftpd的配置文件中,你可以将用户视为本地用户。所以在创建FTP用户之前,你需要先在Ubuntu上创建一个本地用户。

创建一个名为“ftpuser”的本地用户,使用以下命令:

sudo useradd -m ftpuser -s /bin/bash
sudo passwd ftpuser

设置ftpuser的密码,最好使用强密码。

接下来,你需要将ftpuser添加到vsftpd用户列表中。在/etc/vsftpd.user_list文件中添加ftpuser:

ftpuser
连接FTPS服务器

在虚拟机上运行vsftpd之后,你可以通过FTP客户端连接到FTP服务器。例如,使用FileZilla连接:

  • 打开FileZilla
  • 在“主机”字段中输入虚拟机的IP地址
  • 在“用户名”中输入ftpuser的用户名
  • 输入ftpuser的密码
  • 在端口字段中输入21
  • 单击“连接”
创建FTP虚拟用户(示例1)

有时候需要创建多个FTP用户,而这些用户都需要访问同一个ftp目录。为了方便管理,这些用户可以是FTP虚拟用户。

  1. 创建虚拟用户目录

FTP虚拟用户的所有文件都将存储在一个目录中。首先,你需要创建这个目录。使用以下命令创建名为“ftproot”的目录:

sudo mkdir /ftproot
  1. 创建虚拟用户并添加密码

使用以下命令创建虚拟用户并设置密码:

sudo useradd -d /ftproot/vuser1 -s /usr/sbin/nologin vuser1
sudo passwd vuser1

其中,-d /ftproot/vuser1指定vuser1的家目录,-s /usr/sbin/nologin指定vuser1的shell为一个无用的shill。

  1. 创建虚拟用户目录

使用以下命令创建vuser1的文件夹:

sudo mkdir /ftproot/vuser1
  1. 修改目录权限

使用以下命令修改vuser1的文件夹权限:

sudo chown vuser1:vuser1 /ftproot/vuser1
sudo chmod 700 /ftproot/vuser1
  1. 编辑vsftpd的虚拟用户配置文件

/etc/vsftpd.conf中添加以下内容:

virtual_use_local_privs=YES
guest_enable=YES
user_sub_token=$USER
local_root=/ftproot/$USER
chroot_local_user=YES
hide_ids=YES
创建FTP虚拟用户(示例2)

有时候你需要创建一个虚拟用户,他只能访问一个目录的子目录,而不能访问其他目录。下面我们以“sub1”目录和“sub2”目录为例,介绍如何创建这个虚拟用户:

  1. 创建虚拟用户目录

使用以下命令创建名为“ftproot”的目录,以存储虚拟用户:

sudo mkdir /ftproot
  1. 创建ftp用户并设置密码

使用以下命令创建一个ftp用户,并设置一个密码:

自由互联热门推荐:PDF电子发票识别软件,一键识别电子发票并导入到Excel中!10大顶级数据挖掘软件!人工智能的十大作用!

sudo useradd -d /ftproot -s /usr/sbin/nologin ftp
sudo passwd ftp

注意:你需要使用一个不同的用户名和密码来代替“ftp”和“password”的值。

  1. 创建子目录

使用以下命令创建“sub1”和“sub2”目录:

sudo mkdir /ftproot/sub1
sudo mkdir /ftproot/sub2
  1. 将子目录分配给虚拟用户

使用以下命令将“sub1”目录分配给虚拟用户:

sudo mkdir /ftproot/ftp/sub1

然后,使用以下命令将“sub2”目录分配给虚拟用户:

sudo mkdir /ftproot/ftp/sub2
  1. 配置vsftpd

现在,你需要编辑/etc/vsftpd.conf文件,以允许虚拟用户只能访问特定目录中的文件。

添加以下内容:

user_sub_token=$USER
local_root=/ftproot/ftp
chroot_local_user=YES
hide_ids=YES

这些设置将允许虚拟用户只能访问“/ftproot/ftp”目录中的文件,并将root放在该目录中。使用“hide_ids”命令将FTP用户的UID和GID隐藏,这样,虚拟用户将只能看到ftp的文件夹和他分配的目录。

这样,你就可以使用FTP客户端连接到FTP服务器,使用虚拟用户进行文件传输。

【本文转自:韩国服务器 https://www.68idc.cn 复制请保留原URL】
网友评论