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中break与last的区别详析
Mar 31 Servers
Nginx + consul + upsync 完成动态负载均衡的方法详解
Mar 31 Servers
Nginx 过滤静态资源文件的访问日志的实现
Mar 31 Servers
为Centos安装指定版本的Docker
Apr 01 Servers
Windows Server 2012 修改远程默认端口3389的方法
Apr 28 Servers
聊聊配置 Nginx 访问与错误日志的问题
May 25 Servers
教你如何用cmd快速登录服务器
Jun 10 Servers
openEuler 搭建java开发环境的详细过程
Jun 10 Servers
Apache Kafka 分区重分配的实现原理解析
Jul 15 Servers
码云(gitee)通过git自动同步到阿里云服务器
Dec 24 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
利用discuz自带通行证整合dedecms的方法以及文件下载
2007/03/06 PHP
使用迭代器 遍历文件信息的详解
2013/06/08 PHP
详谈php静态方法及普通方法的区别
2016/10/04 PHP
PHP实现权限管理功能示例
2017/09/22 PHP
PHP区块查询实现方法分析
2018/05/12 PHP
javascript 二进制运算技巧解析
2012/11/27 Javascript
JavaScript匿名函数与委托使用示例
2014/07/22 Javascript
基于NodeJS的前后端分离的思考与实践(四)安全问题解决方案
2014/09/26 NodeJs
Javascript学习笔记之函数篇(四):arguments 对象
2014/11/23 Javascript
JavaScript 里的类数组对象
2015/04/08 Javascript
jquery 动态合并单元格的实现方法
2016/08/26 Javascript
AngularJs Understanding the Model Component
2016/09/02 Javascript
浅析Javascript的自动分号插入(ASI)机制
2016/09/29 Javascript
javascript replace()第二个参数为函数时的参数用法
2016/12/26 Javascript
AngularJS ng-repeat指令中使用track by子语句解决重复数据遍历错误问题
2017/01/21 Javascript
JS实现汉字与Unicode码相互转换的方法详解
2017/04/28 Javascript
使用淘宝镜像cnpm安装Vue.js的图文教程
2018/05/17 Javascript
Vue form表单动态添加组件实战案例
2019/09/02 Javascript
Vue实现导航栏的显示开关控制
2019/11/01 Javascript
vue-cli创建的项目中的gitHooks原理解析
2020/02/14 Javascript
微信小程序实现带放大效果的轮播图
2020/05/26 Javascript
Python中的自定义函数学习笔记
2014/09/23 Python
在Python中使用全局日志时需要注意的问题
2015/05/06 Python
Python实现 多进程导入CSV数据到 MySQL
2017/02/26 Python
python smtplib发送带附件邮件小程序
2018/05/22 Python
Pandas缺失值2种处理方式代码实例
2020/06/13 Python
英国人最爱的饰品网站:Accessorize
2016/08/22 全球购物
澳大利亚网上书店:QBD
2021/01/09 全球购物
大学新生欢迎词
2014/01/10 职场文书
学雷锋先进个人事迹
2014/05/26 职场文书
文明城市创建标语
2014/06/16 职场文书
坚守艰苦奋斗精神坚决反对享乐主义整改措施
2014/09/17 职场文书
毕业实习感受与体会
2015/05/26 职场文书
JavaScript高级程序设计之变量与作用域
2021/11/17 Javascript
nginx内存池源码解析
2021/11/20 Servers
Grafana可视化监控系统结合SpringBoot使用
2022/04/19 Redis