vsftpd 编译安装流程

目录

  • vsftpd 编译安装流程
    • 1、下载源码包并上传致服务器解压
    • 2、进入源码目录后编译源码文件
    • 3、将对应文件安装到指定位置
    • 4、准备 vsftpd 的运行环境
    • 5、启动 vsftpd 服务进行测试
    • 6、编译安装说明

vsftpd 编译安装流程

1、下载源码包并上传致服务器解压

  • 源码包下载地址:https://security.appspot.com/vsftpd.html#download

  • 官方指令手册:https://security.appspot.com/vsftpd/vsftpd_conf.html
    在这里插入图片描述

2、进入源码目录后编译源码文件

源码包里面提供了MakeFile文件,直接执行make即可编译源码,编译安装后,会在源码生成一个名为vsftpd的可执行二进制文件

在这里插入图片描述
在这里插入图片描述

3、将对应文件安装到指定位置

需要将可执行文件vsftpd、配置文件vsftpd.conf、以及帮助文件vsftpd.conf.x放在服务器的对应路径下,然后设置PATH变量即可。

安装vsftpd就是将编译好的可执行文件、帮助文件以及配置文件拷贝到服务器对应目录即可,有两种方式实现vsftpd的安装。

  • 方式一:直接执行 make install,这样会默认按照MakeFile文件中指定的路径,将相关文件进行拷贝到对应路径。

  • 方式二:手动 cp 文件,将 vsftpd 、vsftpd.conf.5、 vsftpd.8三个文件拷贝到对应位置。

在这里插入图片描述

例如:手动安装vsftpd

sudo cp vsftpd /usr/local/sbin/
sudo cp vsftpd.conf.5 /usr/local/man/man5/
sudo cp vsftpd.8 /usr/local/man/man8/

4、准备 vsftpd 的运行环境

(1)创建匿名用户vsftpd 的匿名模式下需要存在nobodyftp两个用户,所以这两个用户不存在的话需要手动创建。

# 创建 FTP 用户
sudo mkdir -p /var/ftp && sudo chown root:root /var/ftp

# 匿名模式下,vsftpd是在禁锢模式(chroot)下运行,即匿名用户`ftp`和`annymouse`不能对`/var/ftp`目录具有写权限。
sudo chmod -w /var/ftp
sudo useradd -d /var/ftp -s /sbin/nologin ftp

# 创建nobody用户
sudo useradd -r -s /usr/sbin/nologin nobody

(2)创建特定目录/usr/share/empty/ 目录用于 chroot 操作,确保匿名用户不能访问系统的其他部分。

sudo mkdir -p /usr/share/empty/

(3)创建 service 文件:如果是使用systemd做为init进程的操作系统,可以将vsftpd交给systemdservice的形式托管。

例如:

# /lib/systemd/system/vsftpd.service
[Unit]
Description=vsftpd FTP server
After=network.target

[Service]
Type=simple
ExecStart=/usr/local/sbin/vsftpd /etc/vsftpd.conf
ExecReload=/bin/kill -HUP $MAINPID
ExecStartPre=-/bin/mkdir -p /var/run/vsftpd/empty

[Install]
WantedBy=multi-user.target

(4)拷贝配置文件:即使是使用 make install 这种方式来安装vsftpd,配置文件也不会默认拷贝,需要手动将vsftpd.conf文件拷贝到/etc目录下,因为vsftpd进程启动时默认会读取/etc/vsftpd.conf这个配置文件。

如果需要存放到其他路径下,则运行vsftpd进程的时候需要指定配置文件的路径。格式为vsftpd /path/vsftpd.conf

5、启动 vsftpd 服务进行测试

将vsftpd交给systemd托管时候,需要让vsftpd以独立服务的形式运行(默认就是,一些老版本不是),所以需要在配置文件中加入listen=YES 配置项,从而以独立服务形式运行。

在这里插入图片描述

6、编译安装说明

1、如果使用 make install 进行安装,默认的安装位置是:

install:
        if [ -x /usr/local/sbin ]; then \
                $(INSTALL) -m 755 vsftpd /usr/local/sbin/vsftpd; \
        else \
                $(INSTALL) -m 755 vsftpd /usr/sbin/vsftpd; fi
        if [ -x /usr/local/man ]; then \
                $(INSTALL) -m 644 vsftpd.8 /usr/local/man/man8/vsftpd.8; \
                $(INSTALL) -m 644 vsftpd.conf.5 /usr/local/man/man5/vsftpd.conf.5; \
        elif [ -x /usr/share/man ]; then \
                $(INSTALL) -m 644 vsftpd.8 /usr/share/man/man8/vsftpd.8; \
                $(INSTALL) -m 644 vsftpd.conf.5 /usr/share/man/man5/vsftpd.conf.5; \
        else \
                $(INSTALL) -m 644 vsftpd.8 /usr/man/man8/vsftpd.8; \
                $(INSTALL) -m 644 vsftpd.conf.5 /usr/man/man5/vsftpd.conf.5; fi
        if [ -x /etc/xinetd.d ]; then \
                $(INSTALL) -m 644 xinetd.d/vsftpd /etc/xinetd.d/vsftpd; fi

2、编译安装 vsftpd 的时候,没有提供类似于 PREFIX 这种选项来指定安装位置,如果要自定义安装位置,只需要在源代码编译完成后,将二进制文件vsftpd、man帮助文件vsftpd.con.x 和 配置文件vsftpd.conf 拷贝到自定义的位置,然后设置PATH变量就行了。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/969036.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【Android开发】华为手机安装包安装失败“应用是非正式版发布版本,当前设备不支持安装”问题解决

问题描述 我们将Debug版本的安装包发送到手机上安装,会发现华为手机有如下情况 解决办法 在文件gradle.properties中粘贴代码: android.injected.testOnlyfalse 最后点击“Sync now”,等待重新加载gradle资源即可 后面我们重新编译Debug安装…

计算机网络-八股-学习摘要

一:HTTP的基本概念 全称: 超文本传输协议 从三个方面介绍HTTP协议 1,超文本:我们先来理解「文本」,在互联网早期的时候只是简单的字符文字,但现在「文本」的涵义已经可以扩展为图片、视频、压缩包等&am…

八大排序——归并排序

目录 1.基本思想 2.动态图 3.分解的时候我们可以使用递归的方式进行 代码解释 1. main 方法 2. mergeSort 方法 3. merge 方法 示例运行过程 初始数组 每轮排序后的数组 代码总结 合并两个有序序列 1.基本思想 归并排序就是递归得将原始数组递归对半分隔&#xff0c…

C++ Primer 跳转语句

欢迎阅读我的 【CPrimer】专栏 专栏简介:本专栏主要面向C初学者,解释C的一些基本概念和基础语言特性,涉及C标准库的用法,面向对象特性,泛型特性高级用法。通过使用标准库中定义的抽象设施,使你更加适应高级…

Elasticsearch:15 年来致力于索引一切,找到重要内容

作者:来自 Elastic Shay Banon 及 Philipp Krenn Elasticsearch 刚刚 15 岁了!回顾过去 15 年的索引和搜索,并展望未来 15 年的相关内容。 Elasticsearch 刚刚成立 15 周年。一切始于 2010 年 2 月的一篇公告博客文章(带有标志性的…

后稀缺社会的经济模型:当技术突破资源边界时的范式革命

文章目录 引言:走出马尔萨斯陷阱一、技术基础:构建后稀缺社会的四大支柱1.1 自动化生产系统:边际成本趋零的物理基础1.2 能源基础设施:聚变-光伏-储能的黄金三角二、经济模型转变:从稀缺范式到丰裕范式2.1 传统经济模型的失效2.2 新价值方程的涌现三、后稀缺经济的三层架构…

macOS部署DeepSeek-r1

好奇,跟着网友们的操作试了一下 网上方案很多,主要参考的是这篇 DeepSeek 接入 PyCharm,轻松助力编程_pycharm deepseek-CSDN博客 方案是:PyCharm CodeGPT插件 DeepSeek-r1:1.5b 假设已经安装好了PyCharm PyCharm: the Pyth…

记录-rtsp 链接中账号密码包含有@的导致解析失败

问题: 在使用librtsp开源库的时候发现,当输入的rtsp流包含有多个的时候 (比如账号密码中包含,rtsp://admin:Pssw0rd192.168.31.xxx/Streaming/Channels/101),会导致拉流失败。 问题处理: 一、这是因为librtsp中只对一个做了解析…

纪念日倒数日项目的实现-【纪念时刻-时光集】

纪念日/倒数日项目的实现## 一个练手的小项目,uniappnodemysql七牛云。 在如今快节奏的生活里,大家都忙忙碌碌,那些具有特殊意义的日子一不小心就容易被遗忘。今天,想给各位分享一个“纪念日”项目。 【纪念时刻-时光集】 一…

JDK 14,15,17的一些新特性(部分常用)

1:instanceof(后,使用不再需要墙转) 2:switch语句增强 1:支持lmbda,自动防击穿,有返回值 2:支持case多个值,复杂逻辑结果支持yield返回 3:字符串…

Linux学习笔记之进程

进程 进程的定义 进程是计算机中的程序关于某数据集合上的一次运行活动,是系统进行资源分配的基本单位,也是操作系统结构的基础。   例如当QQ程序运行的时候,计算机会先从磁盘读取QQ程序到内存,然后OS管理这个程序,…

泛型 类 接口 方法 通配符

泛型 泛型类 what: 类型参数化 why use&#xff1a; 1. 输出时候是object类型 而不是真正类型转化麻烦 import java.util.ArrayList; import java.util.List;public class ObjectExample {public static void main(String[] args) {List<Object> list new ArrayLi…

打穿内网三重奏-红日7

靶机下载地址&#xff1a; 漏洞详情 (qiyuanxuetang.net) 攻击链路&#xff1a; DMZ区IP段为192.168.11.1/24 第二层网络环境IP段为192.168.52.1/24 第三层网络环境IP段为192.168.93.1/24 这里DMZ和攻击者我用的是192.168.11.1 这个网段&#xff0c;其他不变 这里我加了两张…

windows 10安装sqlyog详细步骤

sqlyog下载链接&#xff1a; 链接: https://pan.baidu.com/s/1D_iRna8V90omfHsKHyeBtg 提取码: bqht 复制这段内容后打开百度网盘手机App&#xff0c;操作更方便哦 1. 下载完以后解压&#xff0c;双击SQLyog-12.0.9-0.x64 2. 如下图&#xff0c;选择Ok 3 . 如图&#xff0c;点…

OpenAI 放王炸,将发布整合多项技术的 GPT-5,并免费无限使用,该模型有哪些技术亮点

对于 ChatGPT 的免费用户&#xff0c;将可以无限制地访问 GPT-5&#xff0c;但仅限于标准的智能级别。该级别会设定滥用限制&#xff0c;以防止不当使用(意思就是你得付费嘛)。 OpenAI CEO Sam Altman 今天在 X 上透露了 GPT-4.5 和 GPT-5 的最新发展计划。 OpenAI 将发布代…

深度学习框架探秘|TensorFlow vs PyTorch:AI 框架的巅峰对决

在深度学习框架中&#xff0c;TensorFlow 和 PyTorch 无疑是两大明星框架。前面两篇文章我们分别介绍了 TensorFlow&#xff08;点击查看&#xff09; 和 PyTorch&#xff08;点击查看&#xff09;。它们引领着 AI 开发的潮流&#xff0c;吸引着无数开发者投身其中。但这两大框…

UEFI PI PEI(2. PEI Services and Table)

PEI Services 1. PEI Services Table介绍 PEI Foundation建立了一个名为PEI Services Table的系统表&#xff0c;该表对系统中的所有Pre-EFI初始化模块&#xff08;PEIMs&#xff09;可见。 PEI Foundation在系统初始化时所需要的功能、命令或其他能力&#xff0c;会被抽象然…

2025常用的SEO工具有哪些?

在互联网时代&#xff0c;如何让自己的网站或内容脱颖而出&#xff0c;成为许多企业和个人站长们最关注的问题。而在这个过程中&#xff0c;SEO&#xff08;搜索引擎优化&#xff09;作为一种有效的提升网站曝光度和吸引流量的手段&#xff0c;已经成为了网站运营的核心之一。对…

Winform自定义控件与案例 - 一款功能丰富的自定义文本按钮(TextButton)控件

深入解析:TextButton —— 一款功能丰富的自定义文本按钮控件 在 WinForms 开发中,标准的按钮控件虽然能够满足基本需求,但在现代 UI 设计中显得过于简单。为了提升用户体验和界面美观度,我们开发了 TextButton,一个基于 WWControlBase 的自定义文本按钮控件。它不仅支持…

安卓自我学习

纯粹三分钟热度, 这里 我百度查询资料, 按步骤创建了emtry 项目, 这里选择apk 12 , java 别问我kotlin, 啥都不会, …… 至于是叫小林学习,最初是在csdn 那里看到小林博主的文章, 激起一点点热度, 想学习一下 找了一圈 我先右上角选择 trouble ,, ,,看图1-1 图1-1 点运行…