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实现上游服务器动态自动上下线无需reload的实现方法
Mar 31 Servers
nginx配置ssl实现https的方法示例
Mar 31 Servers
Nginx服务器添加Systemd自定义服务过程解析
Mar 31 Servers
利用Nginx代理如何解决前端跨域问题详析
Apr 02 Servers
图文详解Nginx版本平滑升级方案
Sep 15 Servers
Nginx进程调度问题详解
Sep 25 Servers
nginx共享内存的机制详解
Mar 21 Servers
iSCSI服务器CHAP双向认证配置
Apr 01 Servers
在Windows Server 2012上安装 .NET Framework 3.5 所遇到的问题
Apr 29 Servers
tomcat下部署jenkins的方法
May 06 Servers
Docker容器harbor私有仓库部署和管理
Aug 05 Servers
nginx配置指令之server_name的具体使用
Aug 14 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
php中导出数据到excel时数字变为科学计数的解决方法
2013/02/03 PHP
Yii2框架控制器、路由、Url生成操作示例
2019/05/27 PHP
Laravel Eloquent分表方法并使用模型关联的实现
2019/11/25 PHP
js电信网通双线自动选择技巧
2008/11/18 Javascript
js实现幻灯片播放图片示例代码
2013/11/07 Javascript
js替代copy(示例代码)
2013/11/27 Javascript
jquery.mousewheel实现整屏翻屏效果
2015/08/30 Javascript
基于JavaScript实现百叶窗动画效果不只单纯flas可以实现
2016/02/29 Javascript
Bootstrap学习笔记之css组件(3)
2016/06/07 Javascript
js操作XML文件的实现方法兼容IE与FireFox
2016/06/25 Javascript
Vue.js组件tree实现无限级树形菜单
2016/12/02 Javascript
js实现打地鼠小游戏
2017/02/13 Javascript
使用jQuery的load方法设计动态加载及解决被加载页面js失效问题
2017/03/01 Javascript
JavaScript实现的选择排序算法实例分析
2017/04/14 Javascript
js实现前面自动补全位数的方法
2018/10/10 Javascript
微信小程序实现张图片合成为一张并下载
2019/07/16 Javascript
原生js实现可兼容PC和移动端的拖动滑块功能详解【测试可用】
2019/08/15 Javascript
JQuery实现ul中添加LI和删除指定的Li元素功能完整示例
2019/10/16 jQuery
从零使用TypeScript开发项目打包发布到npm
2020/02/14 Javascript
[00:20]DOTA2荣耀之路7:-ah fu-抢盾
2018/05/31 DOTA
Python求两个list的差集、交集与并集的方法
2014/11/01 Python
Python的__builtin__模块中的一些要点知识
2015/05/02 Python
Python中的左斜杠、右斜杠(正斜杠和反斜杠)
2016/08/30 Python
python实现上传下载文件功能
2020/11/19 Python
在Python函数中输入任意数量参数的实例
2019/07/16 Python
解决flask接口返回的内容中文乱码的问题
2020/04/03 Python
python3中for循环踩过的坑记录
2020/12/14 Python
OpenCV+Python3.5 简易手势识别的实现
2020/12/21 Python
python可视化分析的实现(matplotlib、seaborn、ggplot2)
2021/02/03 Python
Python使用pyenv实现多环境管理
2021/02/05 Python
Linux面试经常问的文件系统操作命令
2016/10/04 面试题
房产代理公证处委托书
2014/04/04 职场文书
防邪知识进家庭活动方案
2014/08/26 职场文书
项目投资意向书范本
2015/05/09 职场文书
2016年度师德标兵先进事迹材料
2016/02/26 职场文书
JavaWeb 入门篇:创建Web项目,Idea配置tomcat
2021/07/16 Java/Android