debian 11搭建ftp

2023-11-10

配置本地用户

#创建用户
adduser user1
#编辑配置文件
vim /etc/vsftpd.conf | grep -v "#" 
listen=yes
local_enable=YES  #本地用户登陆限制
write_enable=YES   #本地用户写权限限制
local_umask=022   #本地用户上传文件权限




dirmessage_enable=YES  #默认
use_localtime=YES
xferlog_enable=YES
connect_from_port_20=YES
secure_chroot_dir=/var/run/vsftpd/empty
pam_service_name=vsftpd
rsa_cert_file=/etc/ssl/certs/ssl-cert-snakeoil.pem
rsa_private_key_file=/etc/ssl/private/ssl-cert-snakeoil.key
ssl_enable=NO

服务

#重启
systemctl restart vsftpd.service
#开启自动启动
systemctl enable vsftpd.service
#查看服务状态
systemctl status vsftpd.service
#本地用户设定
local_enable=YES|NO     ##本地用户登陆限制
write_enable=YES|NO     ##本地用户写权限限制

#本地用户家目录修改
local_root=/directory

#本地用户上传文件权限
local_umask=xxx

#限制本地用户浏览/目录 ;所有用户被锁定到自己的家目录中
chroot_local_user=YES
chmod u-w /home/*

#用户黑名单建立
chroot_local_user=NO
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list


#用户白名单建立
chroot_local_user=YES
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list


配置匿名用户

cat /etc/vsftpd.conf | grep -v "#"
listen=yes      #如果启用,vsftpd将以独立模式运行.这就意味着vsftpd不能由类inetd来启动.vsftpd应当直接执行. 由vsftpd自身监听和处理联接请求
anonymous_enable=YES  #用于控制是否允许匿名用户登录.如果激活,ftp和anonymous都将被视为匿名用户登录
anon_umask=022       #匿名用户上传文件权限
anon_upload_enable=YES    #匿名用户对目录有写权限
anon_mkdir_write_enable=YES   #匿名用户将允许在某些情况下创建目录
anon_other_write_enable=YES   #匿名用户将拥有除上载,和创建目录外更多的权限, 如删除和重命名




dirmessage_enable=YES  #下面是默认的
use_localtime=YES
xferlog_enable=YES
connect_from_port_20=YES
secure_chroot_dir=/var/run/vsftpd/empty
pam_service_name=vsftpd
rsa_cert_file=/etc/ssl/certs/ssl-cert-snakeoil.pem
rsa_private_key_file=/etc/ssl/private/ssl-cert-snakeoil.key
ssl_enable=NO

给权限和属组。

/srv/ftp 匿名用户的默认目录。

#创建一个匿名用户的目录
mkdir /srv/ftp/pub/
#给匿名用户权限
chown ftp:ftp /srv/ftp/pub

服务

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

配置虚拟用户

一、db生成虚拟用户数据库

#安装db数据库命令和vsftpd
aptitude install -y db5.3-util vsftpd
#编辑ftp用户登入名称和密码
mkdir /etc/vsftpd
cd /etc/vsftpd/
vim vuser   #偶数用户,奇数密码
user1
123456
user2
123456
#创建一个数据库文件
touch /etc/vsftpd/vuser.db
#db数据库
db5.3_load -T -t hash -f vuser vuser.db
chmod 600 /etc/vsftpd/ftpuser.db

二、/etc/pam.d/vsftpd 数据库用户认证信息

vim /etc/pam.d/vsftpd 
# Standard behaviour for ftpd(8).
#auth   required        pam_listfile.so item=user sense=deny file=/etc/ftpusers onerr=succeed
auth    sufficient      pam_userdb.so   db=/etc/vsftpd/vuser
account sufficient      pam_userdb.so   db=/etc/vsftpd/vuser

# Note: vsftpd handles anonymous logins on its own. Do not enable pam_ftp.so.

# Standard pam includes
@include common-account
@include common-session
@include common-auth
auth    required        pam_shells.so

三、修改主配置文件

vim /etc/vsftpd.conf
listen=YES
#listen_ipv6=YES
guest_enable=YES     #允许访客登录
guest_username=vuser   #访客用户映射到系统本地用户vuser
virtual_use_local_privs=YES   #指定虚拟用户的权限为本地用户权限
user_config_dir=/etc/vsftpd/user_config   #指定虚拟用户的配置文件路径为/etc/vsftpd/user_config

四、创建虚拟宿主用户

#创建在系统中不能登入的用户
useradd -m -d /home/vuser -s /bin/false vuser

五、创建虚拟用户的配置文件

mkdir /etc/vsftpd/user_config
touch /etc/vsftpd/user_config/vuser1
#编辑用户配置文件
vim /etc/vsftpd/user_config/vuser1
local_root=/home/vuser/user1   #指定虚拟用户的访问目录
anon_mkdir_write_enable=YES    
anon_other_write_enable=YES
anon_upload_enable=YES
write_enable=YES
anon_umask=022
#复制vuser1到vuser2
cp -p /etc/vsftpd/user_config/vuser1 /etc/vsftpd/user_config/vuser2
#编辑用户配置文件
vim /etc/vsftpd/user_config/vuser2
local_root=/home/vuser/user2
anon_mkdir_write_enable=YES    
anon_other_write_enable=YES
anon_upload_enable=YES
write_enable=YES
anon_umask=022

如果虚拟用户无法上传文件,需要检查虚拟用户宿主用户的访 /问权限。

六、创建虚拟用户访问目录

mkdir /home/vuser/user1
mkdir /home/vuser/user2

七、权限

chown vuser:vuser /home/vuser -R
chmod 777 /etc/vsftpd 

八、测试

#安装ftp
aptitude install -y ftp
ftp 10.10.70.101
Connected to 10.10.70.101.
220 (vsFTPd 3.0.3)
Name (10.10.70.101:root): user1   
331 Please specify the password.
Password:
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.ss
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

debian 11搭建ftp 的相关文章

  • numpy 未定义符号:PyFPE_jbuf

    我正在尝试使用一百万首歌曲数据集 为此我必须安装 python 表 numpy cython hdf5 numexpr 等 昨天我设法安装了我需要的所有内容 在使用 hdf5 遇到一些麻烦之后 我下载了预编译的二进制包并将它们保存在我的 b
  • 如何获取 linux 实用程序 tail 的源代码?

    这个命令确实非常有用 但是我可以在哪里获取源代码以查看内部发生的情况 thanks tail 实用程序是 Linux 上 coreutils 的一部分 源压缩包 ftp ftp gnu org gnu coreutils coreutils
  • 如何在我的 AWS EC2 实例上安装特定字体?

    我有一个在 AWS EC2 Amazon Linux Elastic Beanstalk 实例上运行的 Python 应用程序 该实例需要某些特定字体才能生成输出 并且想知道如何在部署或实例启动过程中安装它们 我的代码在本地计算机 OS X
  • InstaPy:“错误,无法确定 64 位 Linux 的正确文件名”

    有人知道如何解决或解决这个问题吗 来自控制台的堆栈跟踪 执行后报告错误 InstaPy Version 0 6 9 Workspace in use home zanettra InstaPy Error unable to determi
  • 构建 makefile 依赖/继承树

    如果我解释得不好或者问了一些明显的问题 我很抱歉 但我是 Linux 内核的新手 而且有点深入 我们有一个嵌入式 Linux 系统 它附带一个 文档非常糟糕的 SDK 其中包含数百个文件夹stuff 大多数文件夹包含rules make m
  • 在 LINUX 上使用 Python 连接到 OLAP 多维数据集

    我知道如何在 Windows 上使用 Python 连接到 MS OLAP 多维数据集 嗯 至少有一种方法 通常我使用 win32py 包并调用 COM 对象进行连接 import win32com client connection wi
  • 无法安装 WWW::Curl::Easy: SZBALINT/WWW-Curl-4.17.tar.gz : make NO

    我正在尝试在我的 Fedora 26 机器上安装 WWW Curl Easy gcc c I usr include D REENTRANT D GNU SOURCE O2 g pipe Wall Werror format securit
  • 如何不断刷新屏幕并实时更新[关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我想在linux上写一个C程序 不断刷新屏幕并实时更新 例如类似于top终端中的命令 谁能指出我正确的方向 为了保持它跨终端类型的可移
  • Linux shell 脚本:十六进制数字到二进制字符串

    我正在 shell 脚本中寻找一些简单的方法来将十六进制数字转换为 0 和 1 字符的序列 Example 5F gt 01011111 是否有任何命令或简单的方法来完成它 或者我应该为其编写一些开关 echo ibase 16 obase
  • 从多线程程序中调用 system()

    我们正在开发一个用 C 编写的多线程内存消耗应用程序 我们必须执行大量的 shellscript linux 命令 并获取返回码 读完之后article http www linuxprogrammingblog com threads a
  • 为什么 Linux 对目录使用 getdents() 而不是 read()?

    我浏览 K R C 时注意到 为了读取目录中的条目 他们使用了 while read dp gt fd char dirbuf sizeof dirbuf sizeof dirbuf code Where dirbuf是系统特定的目录结构
  • Composer 安装要求

    我正在尝试将 Composer 安装到 Laravel 项目中 当我做的时候sudo composer install在项目目录中它显示了两个错误 Problem 1 Installation request for simplesoftw
  • 有关 CMake 错误的问题:没有为目标提供源

    我正在尝试使用 cmake 和 eclipse 将 FreeRtos 添加到我的项目中 但出现错误 我运行的是 debian 10 我的 cmake 版本是 3 13 4 cmake 的文件可以在以下位置找到这个 git 仓库 https
  • 在 Linux 上的 Python 中使用受密码保护的 Excel 工作表

    问题很简单 我每周都会收到一堆受密码保护的 Excel 文件 我必须解析它们并使用 Python 将某些部分写入新文件 我得到了文件的密码 当在 Windows 上完成此操作时 处理起来很简单 我只需导入 win32com 并使用 clie
  • 为什么我不能将 sed 的输出重定向到文件

    我正在尝试运行以下命令 someprogram tee dev tty sed s 2 gt output file 但当我去查看时 该文件始终是空白的 如果我删除 gt output file从命令末尾 我可以看到 sed 的输出 没有任
  • 嵌入式Linux poll()不断返回

    我有一个特别的问题 当我知道没有什么可读时 民意调查不断返回 因此设置如下 我有 2 个文件描述符 它们构成fd设置民意调查监视 一种用于引脚从高到低的变化 GPIO 另一个用于代理输入 代理输入出现问题 处理的顺序是 启动main函数 然
  • Unix 命令列出包含字符串但*不*包含另一个字符串的文件

    如何递归查看包含一个字符串且不包含另一个字符串的文件列表 另外 我的意思是评估文件的文本 而不是文件名 结论 根据评论 我最终使用了 find name html exec grep lR base maps xargs grep L ba
  • 为什么我收到“无法进行二进制日志记录”的信息。在我的 MySQL 服务器上?

    当我今天启动 MySQL 服务器并尝试使用以下命令进行一些更改时用于 MySQL 的 Toad http www quest com toad for mysql 我收到此消息 MySQL 数据库错误 无法进行二进制日志记录 消息 交易级别
  • Elasticsearch 无法写入日志文件

    我想激活 elasticsearch 的日志 当我运行 elasticsearch 二进制文件时 我意识到我在日志记录方面遇到问题 无法加载配置 这是输出 sudo usr share elasticsearch bin elasticse
  • 创建 jar 文件 - 保留文件权限

    我想知道如何创建一个保留其内容的文件权限的 jar 文件 我将源代码和可执行文件打包在一个 jar 文件中 该文件将在使用前提取 人们应该能够通过运行批处理 shell 脚本文件立即运行示例和演示 然后他们应该能够修改源代码并重新编译所有内

随机推荐

  • linux下安装helm

    我这里使用的系统是centos7 6 Helm是一个kubernetes应用的包管理工具 用来管理charts 预先配置好的安装包资源 有点类似于Ubuntu的 apt 和CentOS中的 yum 方式一 使用官方提供的脚本一键安装 点击查
  • wallhaven.cc网站图片超清壁纸爬虫

    测试时间 2021 02 16 1 参考博客 2 python代码 1 参考博客 From 侵删 https blog csdn net qq 41849471 article details 89607706 2 python代码 图片保
  • python search用法,Python-re中search()函数的用法详解(查找ip)

    1 首先来看一下search 和find 的区别 import re s1 2221155 search 字符串第一次出现的位置 print re search 1 s1 print s1 find 1 它们的输出分别是 search 函数
  • 苹果系统itunes连iphone连不上服务器,itunes不识别iphone,iPhone连接不上iTunes怎么解决?连接不上iTunes怎么办?...

    今天一网友求助 itunes不识别iphone iPhone手机插上电脑后可以弹出设备 在电脑里面可以显示并能打开手机的相册 怎么样iphone也连不上iTunes 而换另外的一个iPhone连接又很正常 iPhone连接不上iTunes怎
  • 6-17 使用函数实现字符串部分复制 (20 分)

    6 17 使用函数实现字符串部分复制 20 分 本题要求编写函数 将输入字符串t中从第m个字符开始的全部字符复制到字符串s中 函数接口定义 void strmcpy char t int m char s 裁判测试程序样例 include
  • 使用JSONP解决跨域

    1 首先需要知道什么是跨域 浏览器从一个域名的网页去请求另一个域名的资源时 域名 端口 协议任一不同 都是跨域 出于浏览器的同源策略限制 同源策略 Sameoriginpolicy 是一种约定 它是浏览器最核心也最基本的安全功能 如果缺少了
  • c语言中auto、register、extern、static用法

    转载地址 http www 111cn net net c 38998 htm 四种存储类别说明符有两种存储期 自动存储期和静态存储期 auto和register对应自动存储期 具有自动存储期的变量在进入声明该变量的程序块是被建立 它在该程
  • 删除system/app下的apk

    要删除系统system app目录下的的APK 由于 system app目录默认是只读 所以 想要删除这些APK 必须首先获得system目录的删除权限 通过如下步骤删除system app下的apk文件 1 连接设备 如果是手机则需要打
  • Linux 基础笔记 权限与文件管理

    Linux 基础笔记 权限与文件管理 字符界面中退出登录可用哪种方法 exit 命令或 Ctrl D 组合键 pwd命令的功能是什么 显示当前目录的绝对路径 当前目录为 home 使用以下哪个命令后可进入 home Studd test目录
  • React中常见的TypeScript定义使用

    前言 在我学习typescript时 想在react中使用typescript写代码 从头开始的时候是懵逼的 因为官方文档并没有使用typescript的教程 多是自己在网上查 自己看定义摸索 所以今天把我用过的 总结归纳一下 希望能帮助到
  • MySQL查询合并结果去重_MySQL数据表合并去重的简单实现方法

    场景 爬取的数据生成数据表 结构与另一个主表相同 需要进行合并 去重 解决 直接举例 首先创建两个表pep pep2 其中pep是主表 CREATE TABLE IF NOT EXISTS pep pep2 id INT UNSIGNED
  • 「从零开始造 RPC 轮子系列」01 我为什么要去造一个轮子?

    目录 好日子 为什么你需要学习造轮子 投资自己 不要成为调包侠 通过造轮子你能学到什么 下一步计划 好日子 宣布一件事情 好日子 12月有个好日子 20211202 从左往右读 接着从右往左读你会发现居然是对称的 这是属于程序员的 浪漫 身
  • android系统网络管理,详解安全管家Android平台上网管理功能

    Android系统在这几年忽然兴起 并成为如今最受欢迎的智能手机操作系统 却始终没有能够很好地对自身的上网管理功能做出很好的优化 小编也和很多人一样 是Symbian转战Android的 而作为一名伪资深智能手机用户 当感受到Android
  • C语言的union联合体,可实现不同类型数据的转换

    结构体和共用体的区别在于 结构体的各个成员会占用不同的内存 互相之间没有影响 而共用体的所有成员占用同一段内存 修改一个成员会影响其余所有成员 结构体占用的内存大于等于所有成员占用的内存的总和 成员之间可能会存在缝隙 共用体占用的内存等于最
  • python pd pandas.cut 出现 NAN的问题

    原因 pandas cut 设置lebel的时候是 0 n 只包含n不包含0 解决方法 重新设置一个lebel 使其包含特殊的格式 产生问题的例子 源代码 d2 pd cut DaysList bins 0 1700 1800 1900 2
  • 最新AI系统ChatGPT源码+支持OpenAI全模型+国内AI模型+AI绘画

    一 SparkAI智能创作系统 SparkAi创作系统是基于国外很火的ChatGPT进行开发的Ai智能问答系统 本期针对源码系统整体测试下来非常完美 可以说SparkAi是目前国内一款的ChatGPT对接OpenAI软件系统 那么如何搭建部
  • Linux新手入门必须学会的相关知识

    Linux新手入门必须学会的相关知识 Linux基本知识 1 Linux基本介绍 Linux是什么 Linux的诞生过程 Linux内核与Linux内核发行版 常见的Linux发行版 2 Linux基础安全介绍 SSH登录方式介绍 SSH基
  • 嵌入式系统开发入门(一)

    1 开发工具概览 1 1硬件 1 1 1开发平台 基础系统 树莓派raspberry 选用4B版本 单片机系统 arduino 进阶系统 JETSON nano 1 1 2 配件 摄像头 开发板专用摄像头 树莓派 JETSON nano
  • python代码~满屏小练习

    完整代码如下 import tkinter as tk import random import threading import time def boom window tk Tk width window winfo screenwi
  • debian 11搭建ftp

    配置本地用户 创建用户 adduser user1 编辑配置文件 vim etc vsftpd conf grep v listen yes local enable YES 本地用户登陆限制 write enable YES 本地用户写权