文档章节

用ChrootDirectory限制SFTP登录的用户只能访问指定目录且不能进行ssh登录

eechen
 eechen
发布于 2015/12/14 20:58
字数 414
阅读 2813
收藏 3

创建不能ssh登录的用户sftpuser1,密码用于sftp登录:
sudo adduser sftpuser1 --home /sftp/sftpuser1 --shell /bin/false
sudo nano /etc/ssh/sshd_config (执行man sshd_config查看配置说明)
Ubuntu/Debian上把Subsystem sftp /usr/lib/openssh/sftp-server
Redhat/CentOS上把Subsystem sftp /usr/libexec/openssh/sftp-server
修改为 Subsystem sftp internal-sftp
并加入:
Match User sftpuser1
    ChrootDirectory /sftp/sftpuser1
    ForceCommand internal-sftp
    AllowTcpForwarding no
    X11Forwarding no
注意ChrootDirectory设置的目录/sftp/sftpuser1的所有者必须是root,并且该目录的上级目录/sftp的所有者也必须是root.
而且只有所有者拥有写权限,/sftp/sftpuser1和/sftp的权限最大设置只能是755.
sudo chown root:root /sftp/sftpuser1
sudo service ssh reload

由于上面设置了目录的权限是755,
因此所有非root用户都无法在目录中写入文件.
我们需要在ChrootDirectory指定的目录下建立子目录比如data,重新设置属主和权限.
mkdir /sftp/sftpuser1/data
chown sftpuser1:sftpuser1 /sftp/sftpuser1/data
chmod 755 /sftp/sftpuser1/data
这样就可以在读写data目录了.

配置好后,用户sftpuser1只能通过sftp访问指定目录,而且不能进行ssh登录:
sftp sftpuser1 @127.0.0.1 登录成功,执行 ls -lha / 可见根目录为 /sftp/sftpuser1, 执行cd ..可见无法进入上一层目录.
ssh sftpuser1 @127.0.0.1 提示:
Could not chdir to home directory /sftp/sftpuser1: No such file or directory
This service allows sftp connections only.
Connection to 127.0.0.1 closed.

把 AllowTcpForwarding no 改为 AllowTcpForwarding yes 表示允许用户进行端口转发, X11Forwarding 含义类似.
上面已经实现了端口转发和禁止登录,如果要禁止读写,执行 chmod 000 /sftp/sftpuser1

© 著作权归作者所有

eechen

eechen

粉丝 1023
博文 107
码字总数 55962
作品 1
深圳
私信 提问
加载中

评论(2)

晒太阳的小猪
晒太阳的小猪
这个要收藏
sftp服务限制用户登录家目录

sftp和ftp是两种协议是不同的,sftp是ssh内含的协议,只要sshd服务器启动了,它就可用,它本身不需要ftp服务器启动。 1.查看openssh软件版本,想sftp服务用户只能访问特定的文件目录,版本需要4...

乐晨
2013/01/06
16.8K
5
CentOS 7.4 配置sftp服务

服务搭建 CentOS自带 SSH 服务,直接配置即可 SFTP 配置 1.创建用户组 sftp groupadd sftp 2.创建用户 useradd -g sftp -s /sbin/nologin -d /home/sftp/ftpuser1 ftpuser1 -g 加入到sftp组 ...

瑞克-rick
2018/01/06
0
0
配置linux用户实现禁止ssh登陆但可用sftp登录

构想和目标 最近有个这样的诉求:基于对线上服务器的保密和安全,不希望开发人员直接登录线上服务器,因为登录服务器的权限太多难以管控,如直接修改代码、系统配置,并且也直接连上mysql。因...

898009427
2018/07/25
0
0
ssh/sftp配置和权限设置

导读 基于 ssh 的 sftp 服务相比 ftp 有更好的安全性(非明文帐号密码传输)和方便的权限管理(限制用户的活动目录)。 1、开通 sftp 帐号,使用户只能 sftp 操作文件, 而不能 ssh 到服务器...

问题终结者
01/26
21
0
linux下ssh/sftp配置和权限设置

基于 ssh 的 sftp 服务相比 ftp 有更好的安全性(非明文帐号密码传输)和方便的权限管理(限制用户的活动目录)。 1、开通 sftp 帐号,使用户只能 sftp 操作文件, 而不能 ssh 到服务器 2、限...

big_cat
2016/11/08
6.6K
0

没有更多内容

加载失败,请刷新页面

加载更多

家庭作业——苗钰婷

2 编写一个程序,发出一声警报,然后打印下面的文本: Startled by the sudden sound, Sally shouted, "By the Great Pumpkin, what was that! #include<stdio.h>int main(){......

OSC_Okruuv
21分钟前
4
0
经典系统设计面试题解析:如何设计TinyURL(一)

原文链接: https://www.educative.io/courses/grokking-the-system-design-interview/m2ygV4E81AR 编者注:本文以一道经典的系统设计面试题:《如何设计TinyURL》的参考答案和解析为例,帮助...

APEMESH
22分钟前
2
0
2.面向对象设计原则(7条)

开闭原则 开闭原则的含义是:当应用的需求改变时,在不修改软件实体的源代码或者二进制代码的前提下,可以扩展模块的功能,使其满足新的需求。 实现方法 可以通过“抽象约束、封装变化”来实...

Eappo_Geng
24分钟前
4
0
8086汇编基础 debug P命令 一步完成loop循环

    IDE : Masm for Windows 集成实验环境 2015     OS : Windows 10 x64 typesetting : Markdown    blog : my.oschina.net/zhichengjiu    gitee : gitee.com/zhichengjiu   ......

志成就
28分钟前
3
0
使用nodeJS实现前端项目自动化之项目构建和文件合并

本文转载于:专业的前端网站➜使用nodeJS实现前端项目自动化之项目构建和文件合并 前面的话   一般地,我们使用构建工具来完成项目的自动化操作。本文主要介绍如何使用nodeJS来实现简单的项...

前端老手
42分钟前
5
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部