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 相关文章推荐
扩展多台相同的Web服务器
Apr 01 Servers
Nginx下配置Https证书详细过程
Apr 01 Servers
Nginx进程管理和重载原理详解
Apr 22 Servers
nginx反向代理配置去除前缀案例教程
Jul 26 Servers
使用 Apache Dubbo 实现远程通信(微服务架构)
Feb 12 Servers
详解nginx安装过程并代理下载服务器文件
Feb 12 Servers
Nginx虚拟主机的配置步骤过程全解
Mar 31 Servers
Windows server 2012搭建FTP服务器
Apr 29 Servers
Ubuntu安装Mysql+启用远程连接的完整过程
Jun 21 Servers
git中cherry-pick命令的使用教程
Jun 25 Servers
阿里云服务器(windows)手动部署FTP站点详细教程
Aug 05 Servers
ubuntu端向日葵键盘输入卡顿问题及解决
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
PHP操作文件方法问答
2007/03/16 PHP
ThinkPHP之A方法实例讲解
2014/06/20 PHP
PHP中Enum(枚举)用法实例详解
2015/12/07 PHP
php基于curl实现的股票信息查询类实例
2016/11/11 PHP
jquery 指南/入门基础
2007/11/30 Javascript
javascript实现的距离现在多长时间后的一个格式化的日期
2009/10/29 Javascript
javascript关于继承的用法汇总
2014/12/20 Javascript
jQuery定义插件的方法
2015/12/18 Javascript
AngularJS中如何使用$http对MongoLab数据表进行增删改查
2016/01/23 Javascript
Javascript小技能总结(推荐)
2016/06/02 Javascript
js操作XML文件的实现方法兼容IE与FireFox
2016/06/25 Javascript
漂亮! js实现颜色渐变效果
2016/08/12 Javascript
JS制作图形验证码实现代码
2020/10/19 Javascript
jquery控制页面的展开和隐藏实现方法(推荐)
2016/10/15 Javascript
BootStrap Fileinput的使用教程
2016/12/30 Javascript
vue调用高德地图实例代码
2017/04/28 Javascript
Angular.js中angular-ui-router的简单实践
2017/07/18 Javascript
基于vue.js路由参数的实例讲解——简单易懂
2017/09/07 Javascript
JS和jQuery通过this获取html标签中的属性值(实例代码)
2017/09/11 jQuery
zTree节点文字过多的处理方法
2017/11/24 Javascript
详解JS模块导入导出
2017/12/20 Javascript
jQuery阻止事件冒泡实例分析
2018/07/03 jQuery
vue调试工具vue-devtools安装及使用方法
2018/11/07 Javascript
javaScript实现游戏倒计时功能
2018/11/17 Javascript
vue项目部署到nginx/tomcat服务器的实现
2019/08/26 Javascript
javascript实现点亮灯泡特效示例
2019/10/15 Javascript
[36:16]完美世界DOTA2联赛PWL S3 access vs Rebirth 第一场 12.19
2020/12/24 DOTA
python 第三方库的安装及pip的使用详解
2017/05/11 Python
pandas删除行删除列增加行增加列的实现
2019/07/06 Python
pytorch实现mnist分类的示例讲解
2020/01/10 Python
学年末自我鉴定
2014/01/21 职场文书
刑事上诉状(量刑过重)
2015/05/23 职场文书
HTML速写之Emmet语法规则的实现
2021/04/07 HTML / CSS
SpringCloud Alibaba项目实战之nacos-server服务搭建过程
2021/06/21 Java/Android
java协程框架quasar和kotlin中的协程对比分析
2022/02/24 Java/Android
Java 写一个简单的图书管理系统
2022/04/26 Java/Android