linux 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用户,并设置一个密码:

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服务器,使用虚拟用户进行文件传输。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:linux ftp服务器 虚拟机做服务器如何实现 - Python技术站

(0)
上一篇 2023年5月24日
下一篇 2023年5月24日

相关文章

  • Linux系统扩容根目录磁盘空间的操作方法

    一、使用背景 Linux根目录磁盘空间不够用了,当修改了虚拟机模版增加磁盘大小或者插入了一块新硬盘,但是发现系统里的大小还是没改变。 产生的原因是没有给磁盘格式化,没有增加分区。 二、操作方法 1. 查看磁盘空间大小,使用df -h 命令,发现挂载根目录节点的/dev/mapper/ubuntu14–vg-root 只有28G容量。 1 2 3 4 5 6…

    Linux 2023年4月12日
    00
  • Linux Centos 启动mysql ERROR * The server quit without updating PID file (/usr/local/mysql/data/mysql.pid).

    做了一些尝试;比如kill -9 进程id  发现根本就杀不死。 查看ERROR.LOG 2015-12-07 18:50:08 29710 [ERROR] /usr/local/mysql/bin/mysqld: unknown variable ‘scripts/mysql_install_db –user=mysql’ 第一感觉;百度了下。大部分都是…

    Linux 2023年4月11日
    00
  • Linux文件属性之时间戳及文件名知识详解

    ls  -lhi    7、8、9三列是时间(默认是修改时间) modify    修改时间 —–mtime     一般是修改文件内容 change   改变时间—-ctime      文件的属性改变 access   访问时间—–atime     访问文件内容 显示全部时间    格式化显示时间属性:     第10列  文件名 不在…

    Linux 2023年4月11日
    00
  • linux su命令参数及用法详解(linux切换用户命令)

    linuxsu命令参数及用法详解(linux切换用户命令) 命令简介 Linux中,su命令是用来切换身份的命令,即可以切换到系统中其他用户的身份,也可以切换到超级用户(root)的身份。su命令的参数很多,使用方法也比较灵活,并且常常和其他命令配合使用,使得系统的管理更加简单方便。 命令语法 su [选项] [用户名] 命令参数 -: 代表切换到超级用户(…

    Linux 2023年5月14日
    00
  • [Linux] PHP程序员玩转Linux系列-Ubuntu配置SVN服务器并搭配域名

    在线上部署网站的时候,大部分人是使用ftp,这样的方式很不方便,现在我要在线上安装上SVN的服务器,直接使用svn部署网站。因为搜盘子的服务器是ubuntu,因此下面的步骤是基于ubuntu的。   安装subversion apt-get install subversion   创建仓库目录 svnadmin create /home/ubuntu/sv…

    Linux 2023年4月13日
    00
  • Linux查看物理CPU个数、核数、逻辑CPU个数

    CPU总核数 = 物理CPU个数 * 每颗物理CPU的核数 总逻辑CPU数 = 物理CPU个数 * 每颗物理CPU的核数 * 超线程数 查看CPU信息(型号) [root@AAA ~]# cat /proc/cpuinfo | grep name | cut -f2 -d: | uniq -c 24 Intel(R) Xeon(R) CPU E5-2630 …

    Linux 2023年4月11日
    00
  • Linux slappasswd命令

    Slappasswd是Linux中的密码生成器,主要用于生成基于LDAP的用户密码。它可以按照OpenLDAP的要求生成密码,包括添加Salt,支持编号哈希等。 以下是Slappasswd的使用方法: 生成密码 Slappasswd的最基本用法是生成一个密码。使用以下命令: slappasswd 该命令会显示一个随机生成的密码。例如: {SSHA}TVSnD…

    Linux 2023年3月28日
    00
  • VMware Workstation Pro 16搭建CentOS8虚拟机集群的图文教程

    VMware Workstation Pro 16搭建CentOS 8虚拟机集群的图文教程 本教程将为您详细介绍如何在VMware Workstation Pro 16中搭建CentOS 8虚拟机集群。以下是步骤: 第一步:安装VMware Workstation Pro 16 如果您还没有安装VMware Workstation Pro 16,请从官方网站…

    Linux 2023年5月14日
    00
合作推广
合作推广
分享本页
返回顶部