Linux下搭建SFTP服务器的命令详解


Posted in Servers onJune 25, 2022

1、创建用户并设置密码

useradd -s /bin/false sftpuser
passwd sftpuser
# 若需要多个sftp用户
新建sftp的用户组:
groupadd sftp
useradd -g sftp -m sftpuser1
useradd -g sftp -m sftpuser2
passwd	sftpuser1
passwd	sftpuser2
usermod -g sftp sftpuser

2、配置ssh和权限

首先关闭SElinux

vim  /etc/sysconfig/selinux

找到并修改这行为
SELINUX=disabled
tips:SELINUX默认是开启的,这样重启sshd会提示权限不够,设置为disabled需要重启生效

3.打开/etc/ssh/sshd_config文件

vi /etc/ssh/sshd_config
# 修改端口
Port 9222
#注释掉下面这行
#Subsystem sftp /usr/libexec/openssh/sftp-server
# Subsystem     sftp    /usr/lib/ssh/sftp-server
Subsystem sftp internal-sftp
Match user  sftpuser
        ChrootDirectory  /data/sftp   #设定属于用户组sftp的用户访问的根文件夹如设置    /data/sftp   作为sftpuser        的sftp根目录
        ForceCommand internal-sftp #指定sftp命令,强制执行内部sftp,并忽略任何    ~/.ssh/rc文件中的命令
        X11Forwarding no   #这两行,如果不希望该用户能使用端口转发的话就加    上,否则删掉
        AllowTcpForwarding no

4.重启网络

#重启sshd
systemctl restart sshd
或
systemctl restart sshd.service
#查询sshd启动状态
systemctl status sshd.service

5、权限赋予

修改sftp-users用户组用户目录权限
因为使用了ChrootDirectory /data/sftp 作为sftpuser的sftp根目录,现在来修改权限
ChrootDirectory设置的目录权限及其所有的上级文件夹权限,属主和属组必须是root;
ChrootDirectory设置的目录权限及其所有的上级文件夹权限,只有属主能拥有写权限,也就是说权限最大设置只能是755
由于/data/sftpuser 是root创建的,权限755,如果sftpuser直接sftp过去是没有权限写入,因此,需要/data/sftp下创建新目录并给与qhlh权限
创建文件夹:

mkdir -p /data/sftp/upload
mkdir -p /data/sftp/download
chown -R sftpuser:users /data/sftp/upload
chmod -R root:root /data/sftp/download
chown -R sftpuser:root upload/

实现需求,同一个账号下载和上传目录分开,且download目录只能读取不能写入,upload可以上传下载。

到此这篇关于Linux下搭建SFTP服务器的文章就介绍到这了,更多相关Linux SFTP服务器内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!


Tags in this post...

Servers 相关文章推荐
Nginx的反向代理实例详解
Mar 31 Servers
Nginx配置80端口访问8080及项目名地址方法解析
Mar 31 Servers
详解nginx进程锁的实现
Jun 14 Servers
了解Kubernetes中的Service和Endpoint
Apr 01 Servers
使用Docker容器部署rocketmq单机的全过程
Apr 03 Servers
nginx实现多geoserver服务的负载均衡
May 15 Servers
docker 制作mysql镜像并自动安装
May 20 Servers
Windows server 2012 NTP时间同步的实现
Jun 25 Servers
Python安装及建立虚拟环境的完整步骤
Jun 25 Servers
nginx七层负载均衡配置详解
Jul 15 Servers
Nginx如何限制IP访问只允许特定域名访问
Jul 23 Servers
Nginx安装配置详解
win sever 2022如何占用操作主机角色
Jun 25 #Servers
Docker与K8s关系介绍不会Docker也可以使用K8s
Windows Server 修改远程桌面端口的实现
Windows server 2012 NTP时间同步的实现
windows server 2016 域环境搭建的方法步骤(图文)
Windows server 2022创建创建林、域树、子域的步骤
You might like
require(),include(),require_once()和include_once()的异同
2007/01/02 PHP
PHP 计算代码执行耗时的代码修正网上普遍错误
2011/05/14 PHP
详谈PHP编码转换问题
2015/07/28 PHP
PHP实现数据分页显示的简单实例
2016/05/26 PHP
jQuery下的几个你可能没用过的功能
2010/08/29 Javascript
仿谷歌主页js动画效果实现代码
2013/07/14 Javascript
jquery事件与函数的使用介绍
2013/09/29 Javascript
AngularJS基础 ng-value 指令简单示例
2016/08/03 Javascript
Three.js学习之Lamber材质和Phong材质
2016/08/04 Javascript
详解Jquery的事件操作和文档操作
2016/12/19 Javascript
javascript表达式和运算符详解
2017/02/07 Javascript
微信小程序 动态绑定数据及动态事件处理
2017/03/14 Javascript
d3.js入门教程之数据绑定详解
2017/04/28 Javascript
vue子组件使用自定义事件向父组件传递数据
2017/05/27 Javascript
解决vue的 v-for 循环中图片加载路径问题
2018/09/03 Javascript
在vue-cli的组件模板里使用font-awesome的两种方法
2018/09/28 Javascript
微信小程序搭建自己的Https服务器
2019/05/02 Javascript
Node.js fs模块(文件模块)创建、删除目录(文件)读取写入文件流的方法
2019/09/03 Javascript
[08:08]DOTA2-DPC中国联赛2月28日Recap集锦
2021/03/11 DOTA
Python中的异常处理简明介绍
2015/04/13 Python
python列表操作之extend和append的区别实例分析
2015/07/28 Python
Python抓取手机号归属地信息示例代码
2016/11/28 Python
python实现杨辉三角思路
2017/07/14 Python
解决Python 中英文混输格式对齐的问题
2018/07/16 Python
python实现弹跳小球
2019/05/13 Python
Python爬虫之Selenium实现键盘事件
2020/12/04 Python
Python Process创建进程的2种方法详解
2021/01/25 Python
CSS3 3D立方体效果示例-transform也不过如此
2016/12/05 HTML / CSS
aden + anais英国官网:美国婴儿贴身用品品牌
2019/09/08 全球购物
高中毕业生自我鉴定
2013/11/03 职场文书
会计专业自我鉴定范文
2013/12/29 职场文书
领导班子民主生活会整改措施(工商局)
2014/09/21 职场文书
销售员岗位职责范本
2015/04/11 职场文书
2016年优秀少先队辅导员事迹材料
2016/02/26 职场文书
入党转正申请自我鉴定
2019/06/25 职场文书
Spring Boot 使用 Spring-Retry 进行重试框架
2022/04/24 Java/Android