麒麟操作系统如何限制用户使用SFTP时仅能访问指定目录

一、问题背景

在不同客户环境我们可能会遇到用户提出下面问题:如何限制用户使用 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

<think>好的,用户想在麒麟操作系统上安装和配置vsftpd FTP服务器。我需要一步步指导他们怎么做。首先,安装vsftpd。根据引用[1],解压vsftpd-3.0.3.tar.gz用的是tar命令,但通常安装可能通过包管理器更简单。麒麟基于Ubuntu或CentOS,所以应该用apt或者yum安装。比如用sudo apt install vsftpd,或者sudo yum install vsftpd。 接下来是配置。主配置文件是/etc/vsftpd.conf。需要编辑这个文件,启用本地用户登录,设置权限。可能需要修改anonymous_enable=NO,local_enable=YES,write_enable=YES。还要注意chroot_local_user是否启用,限制用户在家目录。如果用户上传有问题,可能需要调整local_umask,比如022让文件权限正确。 然后启动服务,用systemctl restart vsftpd和enable。防火墙要开放21端口,比如用ufw或者firewalld。还要考虑被动模式端口范围,配置pasv_min_port和pasv_max_port,并放行这些端口。 用户可能有安全考虑,比如限制SSH登录,根据引用[2],可以通过修改sshd_config的AllowUsers或DenyUsers来限制用户,但确保不影响FTP。同,vsftpd配置要正确,避免冲突。比如,如果用户需要SFTP,可能需要调整SSH设置,但vsftpd和SFTP是不同的服务。 测试部分,用ftp命令本地连接,或者FileZilla客户端。检查日志文件/var/log/vsftpd.log如果有问题。常见问题比如目录不可写,权限设置错误,或者防火墙阻挡。需要提醒用户检查这些点,并定期更新系统和软件,应用安全补丁。 用户可能还想知道如何添加FTP用户,是否需要创建系统用户,或者使用虚拟用户。根据需求,虚拟用户更安全,但配置复杂一些。这里可能需要分步骤说明,但用户问题主要是安装和基础配置,所以先覆盖基本内容,再在相关问题里提到高级配置。 最后生成相关问题,覆盖安全设置、用户权限、被动模式、虚拟用户、日志检查以及和SFTP的区别。确保用户有进一步学习的路径。</think>### 在 Kylin 麒麟操作系统中安装和配置 vsftpd 的步骤 #### 1. **安装 vsftpd** 通过包管理器直接安装: ```bash sudo apt update sudo apt install vsftpd # 适用于基于 Debian/Ubuntu 的麒麟系统 # 或 sudo yum install vsftpd # 适用于基于 CentOS/RHEL 的麒麟系统 ``` #### 2. **配置 vsftpd** 编辑配置文件 `/etc/vsftpd.conf`,按需修改以下参数: ```bash sudo nano /etc/vsftpd.conf ``` ```ini # 禁用匿名登录(提高安全性) anonymous_enable=NO # 允许本地用户登录 local_enable=YES # 允许文件写入 write_enable=YES # 限制用户访问其家目录(防越权) chroot_local_user=YES # 设置被动模式端口范围(可选) pasv_min_port=40000 pasv_max_port=40100 # 日志记录(便于排查问题) xferlog_enable=YES xferlog_file=/var/log/vsftpd.log ``` #### 3. **启动 vsftpd 服务** ```bash sudo systemctl restart vsftpd # 重启服务 sudo systemctl enable vsftpd # 设置开机自启 ``` #### 4. **防火墙配置** 开放 FTP 服务端口(21 号端口及被动模式端口范围): ```bash # 若使用 ufw(Debian/Ubuntu 系) sudo ufw allow 21/tcp sudo ufw allow 40000:40100/tcp # 若使用 firewalld(CentOS/RHEL 系) sudo firewall-cmd --permanent --add-port=21/tcp sudo firewall-cmd --permanent --add-port=40000-40100/tcp sudo firewall-cmd --reload ``` #### 5. **用户权限管理** - **创建专用 FTP 用户**(可选): ```bash sudo useradd -m ftpuser # 创建用户并生成家目录 sudo passwd ftpuser # 设置密码 ``` - **调整目录权限**: ```bash sudo chown ftpuser:ftpuser /home/ftpuser sudo chmod 755 /home/ftpuser ``` #### 6. **测试 FTP 服务** - 使用客户端工具(如 FileZilla)连接,输入服务器 IP、用户名和密码。 - 本地测试: ```bash ftp localhost # 输入用户名和密码验证 ``` #### 7. **安全加固(可选)** - 限制用户登录:编辑 `/etc/vsftpd.user_list`,添加允许或禁止的用户[^2]。 - 启用 SSL/TLS 加密:需配置 `ssl_enable=YES` 并指定证书路径。 ---
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

a123560mh

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值