文章目录
一、问题背景
在不同客户环境我们可能会遇到用户提出下面问题:如何限制用户使用 SFTP 时仅能访问指定目录?如何限制用户不离开SFTP 目录?本文的目的就是为这些应用场景提供配置参考建议。
例如:
openAI 的 GPT 大模型的发展历程。
二、配置方法
本示例效果如下:
指定用户仅能通过 SFTP 访问服务器,无法正常登录到操作系统环境中。
当指定用户是属于 sftpgrp 这个用户组的成员时,只能在特定目录下进行操作,无法随意访问服务器环境中的其他 目录内容。
(一)OpenSSH 服务配置
为了实现上述效果,我们需要对 OpenSSH 服务配置进行调整。在银河麒麟高级服务器操作系统 V10 中,OpenSSH 服务配置文件位于/etc/ssh/sshd_config,我们需要在配置文件中修改下面内容:
注释默认的 sftp 子系统配置:
#Subsystem sftp /usr/libexec/openssh/sftp-server -l INFO -f AUTH
添加全新的 sftp 配置:
Subsystem sftp internal-sftp
在配置文件末尾添加针对sftpgrp 用户组的特定规则:
Match Group sftpgrp
ForceCommand internal-sftp X11Forwarding no AllowTcpForwarding no PermitTTY no
ChrootDirectory /sftp/%u
我们通过 Match 参数指定了匹配的规则为用户组(Group), Group 后设置的内容对应到我们示例中提到的sftpgrp 用户组。通过ChrootDirectory 参数让满足条件的用户访问 SFTP 时,切换 SFTP 环境的家目录到/sftp 目录下,这里的%u