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+Tomcat实现负载均衡、动静分离的原理解析
Mar 31 Servers
Nginx访问日志及错误日志参数说明
Mar 31 Servers
Linux安装Nginx步骤详解
Mar 31 Servers
win10安装配置nginx的过程
Mar 31 Servers
制作能在nginx和IIS中使用的ssl证书
Jun 21 Servers
centos8安装nginx1.9.1的详细过程
Aug 02 Servers
Nginx实现会话保持的两种方式
Mar 18 Servers
Dashboard管理Kubernetes集群与API访问配置
Apr 01 Servers
鲲鹏 CentOS 7 安装Python3.7
May 11 Servers
Windows Server 修改远程桌面端口的实现
Jun 25 Servers
Windows server 2003卸载和安装IIS的图文教程
Jul 15 Servers
Nginx如何配置多个服务域名解析共用80端口详解
Sep 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
header导出Excel应用示例
2014/01/24 PHP
PHP面向对象教程之自定义类
2014/06/10 PHP
php批量添加数据与批量更新数据的实现方法
2014/12/16 PHP
php使用mysqli和pdo扩展,测试对比连接mysql数据库的效率完整示例
2019/05/09 PHP
PHP token验证生成原理实例分析
2019/06/05 PHP
Laravel开启跨域请求的方法
2019/10/13 PHP
javascritp实现input输入框相关限制用法
2007/06/29 Javascript
用js设置下拉框为只读的小技巧
2014/04/10 Javascript
jquery实现键盘左右翻页特效
2015/04/30 Javascript
KnockoutJs快速入门教程
2016/05/16 Javascript
AngularJS基础 ng-submit 指令简单示例
2016/08/03 Javascript
微信小程序 教程之模块化
2016/10/17 Javascript
jQuery倒计时代码(超简单)
2017/02/27 Javascript
bootstrap插件treeview实现全选父节点下所有子节点和反选功能
2017/07/21 Javascript
JavaScript中Dom操作实例详解
2019/07/08 Javascript
微信小程序开发之map地图组件定位并手动修改位置偏差
2019/08/17 Javascript
深入理解令牌认证机制(token)
2019/08/22 Javascript
vue 微信扫码登录(自定义样式)
2020/01/06 Javascript
用python写一个windows下的定时关机脚本(推荐)
2017/03/21 Python
Flask框架URL管理操作示例【基于@app.route】
2018/07/23 Python
Python基于scipy实现信号滤波功能
2019/05/08 Python
关于初始种子自动选取的区域生长实例(python+opencv)
2020/01/16 Python
使用python自动追踪你的快递(物流推送邮箱)
2020/03/17 Python
PyQt5中向单元格添加控件的方法示例
2020/03/24 Python
python实现Oracle查询分组的方法示例
2020/04/30 Python
完美解决keras 读取多个hdf5文件进行训练的问题
2020/07/01 Python
详解Python 最短匹配模式
2020/07/29 Python
美国在线购物频道:Shop LC
2019/04/21 全球购物
表彰先进集体通报
2014/01/12 职场文书
女方回门宴答谢词
2014/01/14 职场文书
关于爱情的广播稿
2014/01/16 职场文书
教师党员自我评价2015
2015/03/04 职场文书
2015国庆节宣传语
2015/07/14 职场文书
初二物理教学反思
2016/02/19 职场文书
2016年党员干部公开承诺书
2016/03/24 职场文书
Nginx 根据URL带的参数转发的实现
2021/04/01 Servers