ubuntu搭建sftp服务

2023-09-18 11:38:04

安装OpenSSH服务器


Ubuntu通常已经预装了OpenSSH客户端,但如果您还没有OpenSSH服务器,请在终端中执行以下命令来安装:

sudo apt update
sudo apt install openssh-server

 

创建SFTP用户和组


创建一个新的用户组(例如 sftp_users),用于管理SFTP用户:

sudo groupadd sftp_users


创建一个新的SFTP用户(例如 sftpuser),并将其添加到新创建的组。同时设置该用户的密码:

sudo useradd -m sftpuser -g sftp_users
sudo passwd sftpuser



设置SFTP目录和权限

修改sftp_users用户组用户目录权限

因为使用了ChrootDirectory /data/sftp 作为sftp_users的sftp根目录,现在来修改权限

为sftp选择/新建一个工作目录,目录的所有上级目录属主必须为root,且不能为777的权限

  • 创建一个新目录,用作SFTP用户的根目录(例如 /mysftp):
sudo mkdir /root/mysftp

  • 为新创建的SFTP用户创建一个子目录,作为其个人目录:
sudo mkdir /root/mysftp/one


  • 更改SFTP根目录和个人目录的所有者和权限:

 例子:将档案 file1.txt 的拥有者设为 users,群体的使用者 jessie :

1

chown users:jessie file1.txt

例子:将目录下的所有档案与子目录的拥有者皆设为 users 群体的使用者 lamport :

1

chown -R lamport:users *

ChrootDirectory设置的目录权限及其所有的上级文件夹权限,属主和属组必须是root;

ChrootDirectory设置的目录权限及其所有的上级文件夹权限,只有属主能拥有写权限,也就是说权限最大设置只能是755

sudo chown root:root /root/mysftp
sudo chmod 755 /root/mysftp

 

 

chown sftpuser:sftp_users /root/mysftp/one/
chmod 700 /root/mysftp/one


配置OpenSSH以限制SFTP用户的访问


编辑 /etc/ssh/sshd_config 文件以限制SFTP用户对其根目录的访问:

sudo nano /etc/ssh/sshd_config

在文件末尾添加以下内容:

Match Group sftp_users #新建的用户组
ChrootDirectory /root/mysftp #新建的sftp根目录
ForceCommand internal-sftp #指定sftp命令,不能ssh连接
AllowTcpForwarding no #禁止tcp转发
X11Forwarding no #禁止X11转发

保存文件并退出编辑器。

重新启动OpenSSH服务器

sudo systemctl restart sshd

测试连接

使用sftp连接工具

 

 

更多推荐

怒刷LeetCode的第10天(Java版)

目录第一题题目来源题目内容解决方法方法一:两次拓扑排序第二题题目来源题目内容解决方法方法一:分治法方法二:优先队列(PriorityQueue)方法三:迭代第三题题目来源题目内容解决方法方法一:迭代方法二:递归方法三:双指针方法四:栈第一题题目来源2603.收集树中金币-力扣(LeetCode)题目内容解决方法方法一:

HashMap:Java中的高性能键值对存储

一、前言HashMap是Java中最常用的数据结构之一,用于存储键值对,提供了快速的数据检索和插入操作。本文将深入探讨HashMap的内部原理、用法、常见面试问题以及源码分析。二、HashMap的内部工作原理2.1哈希表HashMap的核心是哈希表,它是一个数组,用于存储键值对。哈希表的每个位置称为"桶",每个桶可以存

Http和Https

Http和Https1.URI和URLURI(UniformResourceIdentifier):统一资源标识符,标识资源,可以是相对路径也可以绝对路径表示。绝对路径:http://www.example.com/images/logo.png相对路径:/image/logo.pngURL(UniformResour

Java8实战-总结28

Java8实战-总结28用流收集数据收集器接口理解Collector接口声明的方法全部融合到一起用流收集数据收集器接口Collector接口包含了一系列方法,为实现具体的归约操作(即收集器)提供了范本。Collector接口中实现了许多收集器,例如toList或groupingBy。这也意味着,可以为Collector

MongoDB

1.安装dockerrun--restart=always-d--namemongo-v/home/206/mongodb/data:/data/db-p27017:27017mongo:4.0.62.建立数据库3.MongoDB使用基于SpringBoot使用3.1引用依赖包<!--SpringDataMongoDB

数据湖是什么?数据湖架构及应用(完)

数据湖架构数据湖架构主要描述了各组件以及组件之间的关系,说明了数据的存储、处理和访问过程。数据湖架构研究最初主要涉及到数据的划分、管理和使用方式,随着研究的进展数据湖的架构包含了更深层次的关键技术和方案。分区架构在初始的数据湖设计中,数据预处理扮演着极为关键的角色,其中最核心的架构为池架构与分区架构。池架构将数据根据不

【计算机网络】 TCP流量控制——滑动窗口和累积应答

文章目录累积应答TCP流量控制——滑动窗口累积应答我们前面所说的是我们每发送一个包对端就要回一个ack,那么这样效率太慢了,我们这里就有一个累积应答的机制,就是说我们客户端累积发送多个包,然后服务端再统一进行回复。TCP流量控制——滑动窗口那么我们累积应答时具体发送多少数据之后统一回复一个ack是由什么决定的呢,就是由

kubernetes

k8s是什么1以容器为中心的应用编排平台2.面向平台的平台:强大的扩展能力:构建其它的平台3、容器编排容器生命周期管理容器创建、运行、监控、终止为容器运行提供支撑:存储卷:卷编排网络:网络编排容器关系管理超亲密关系:运行一个整体,Kubernetes抽象出来的新概念Pod非超亲密关系:各自独立运行通过Service互相

肖sir_环境搭建之面试题(答案供参考)_003

课堂巩固练习(可以百度,查询)1、请简述dym的搭建、用到了哪些工具和流程介绍服务器系统:centos6;工具:jdk,MySQL,tomcat;流程:创建数据库,导入数据表–>安装jdk,解压tomcat–>将war代码包放到tomcat中解压—>进入解压的包里配置数据库连接—>进入浏览器打开前端及管理端参考:简化流

Linux系统100条命令:关于Ubuntu和 CentOS 7 相同功能的不同的终端操作命令

安装软件包:Ubuntu:apt-getinstallpackage_nameCentOS7:yuminstallpackage_name更新软件包列表:Ubuntu:apt-getupdateCentOS7:yumupdate卸载软件包:Ubuntu:apt-getremovepackage_nameCentOS7:

Vue学习笔记

本博客记录Vuev2.7.8的学习,参考文档目录Vue概述入门案例Vue指令v-bind和v-modelv-onv-if和v-showv-for综合案例生命周期Vue概述一个完整的html页面包括了视图和数据,数据是通过请求从后台获取的,那么意味着我们需要将后台获取到的数据呈现到页面上,很明显,这就需要我们使用DOM操

热文推荐