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

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

概述

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

以下限制了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。

责任编辑:赵宁宁 来源: 今日头条
相关推荐

2017-03-17 11:30:04

LinuxSSH目录

2017-05-08 17:20:01

Linux指定目录读写权限

2014-08-27 11:22:46

LinuxSFTP

2017-05-10 15:16:29

Linux系统目录读写指定目录

2018-01-19 10:59:09

Linux安装卸载

2010-06-22 11:09:14

Linux At命令

2016-02-17 10:03:45

2018-09-30 10:18:44

Linux 文件系统目录

2019-03-14 14:30:48

SSHLinux特定目录

2016-09-22 12:25:42

2009-02-05 10:12:00

访问控制列表限制访问

2018-10-19 09:30:57

SSHSFTPLinux

2012-12-28 14:28:26

Android开发

2023-03-17 08:28:28

Golang切换目录

2023-04-12 15:37:31

Linux系统CPU

2018-06-01 10:37:26

Linux归档文件压缩文件

2013-01-28 17:17:53

SSH安全限制IP登录

2011-08-02 11:07:00

2019-10-09 16:50:48

SSHLinux远程系统

2023-12-27 08:27:03

Linuxldconfig命令
点赞
收藏

51CTO技术栈公众号