|
|
51CTO旗下网站
|
|
移动端

Linux如何限制指定账户不能SSH只能SFTP在指定目录

由于某台服务器需要对指定用户进行限制,只允许访问指定目录,这个需求在很多场景应该是比较常见的,下面介绍一种解决方案。

作者:波波说运维来源:今日头条|2019-11-26 08:40

概述

由于某台服务器需要对指定用户进行限制,只允许访问指定目录,这个需求在很多场景应该是比较常见的,下面介绍一种解决方案。

以下限制了sftp用户组只能sftp 连接上去至指定目录(/projects/tms_prod),ssh 连接就提示只接受sftp 连接。

方案具体流程如下:

1. 创建用户及目录:

  1. mkdir -p /projects/ 
  2. groupadd sftp # 新建组 
  3. useradd -g sftp -s /bin/false tms -d /projects/tms_prod # 新建用户 
  4. passwd tms 
  5. chown root:sftp /projects/ # 修改主目录所属用户和组 
  6. chmod 755 /projects/ # 主目录授权 
  7.  
  8. mkdir -p /projects/tms_prod # 为用户建立子目录 
  9. chown tms:sftp /projects/tms_prod # 修改子目录所属用户和组 
  10. chmod 755 /projects/tms_prod # 子目录授权 

linux如何限制指定账户不能SSH只能SFTP在指定目录

2. 配置sshd_config

  1. Subsystem sftp internal-sftp #指定使用sftp服务使用系统自带的internal-sftp 
  2. #Match User tms 
  3. Match Group sftp 
  4.  ChrootDirectory /projects/ 
  5.  X11Forwarding no #禁止X11转发 
  6.  AllowTcpForwarding no # 禁止tcp转发 
  7.  ForceCommand internal-sftp #指定sftp命令,不能ssh连接 

linux如何限制指定账户不能SSH只能SFTP在指定目录

注意:

  • 由ChrootDirectory指定的目录开始一直往上到系统根目录为止的目录拥有者都只能是root
  • 由ChrootDirectory指定的目录开始一直往上到系统根目录为止都不可以具有群组写入权限

3. 重启ssh服务:

service sshd restart

4. 测试验证

linux如何限制指定账户不能SSH只能SFTP在指定目录

补充:

1. Subsystem sftp /usr/lib/openssh/sftp-server 更为 internal-sftp,这两者有什么区别呢?

简单的说默认sftp 进程由单独的二进制文件:/usr/lib/openssh/sftp-server启动,而internal-sftp 则无需外部二进制文件额外启动一个进程,整合在sshd进程内了。

internal-sftp相较于 /usr/lib/openssh/sftp-server 优点在于:

  • 性能好,无需额外进程了嘛;
  • 安全性好,无需用户登录shell,且可使用ChrootDirectory 限制sftp行为活动的目录;
  • sftp-server 的存在主要是向后兼容。

2. ChrootDirectory directory

一般出现问题会在ChrootDirectory directory上,这个地方的目录不能直接配置到目标目录,需要配置到他的上一级;即给 /A/B/C的C目录做chroot,要对C能读写,所以C目录不能做ROOT目录,对B做chroot。

【编辑推荐】

  1. Linux less命令详解(9个实用案例演示)
  2. Linux下你还知道这些特殊文件?
  3. Zorin OS 15 Lite发布:好看的轻量级Linux
  4. 一篇文章了解Linux操作系统的权限管理
  5. 10个高效Linux技巧及Vim命令对比
【责任编辑:赵宁宁 TEL:(010)68476606】

点赞 0
分享:
大家都在看
猜你喜欢

订阅专栏+更多

骨干网与数据中心建设案例

骨干网与数据中心建设案例

高级网工必会
共20章 | 捷哥CCIE

394人订阅学习

中间件安全防护攻略

中间件安全防护攻略

4类安全防护
共4章 | hack_man

142人订阅学习

CentOS 8 全新学习术

CentOS 8 全新学习术

CentOS 8 正式发布
共16章 | UbuntuServer

288人订阅学习

视频课程+更多

小白轻松学MySQL大数据调优

小白轻松学MySQL大数据调优

讲师:齐毅25256人学习过

强哥带你精通zabbix监控

强哥带你精通zabbix监控

讲师:周玉强21263人学习过

Docker快速入门视频课程(通俗易懂)

Docker快速入门视频课程(通俗易懂)

讲师:汤小洋181144人学习过

读 书 +更多

非常网管——网络工程案例

本书面向企业网络应用需求,详细介绍了Windows网络互联解决方案、中小企业共享上网解决方案、基于ISA Server 2006的代理服务器与防火墙解决...

订阅51CTO邮刊

点击这里查看样刊

订阅51CTO邮刊

51CTO服务号

51CTO官微