![使用 open-ssh 的用户的简单监狱](https://linux22.com/image/26087/%E4%BD%BF%E7%94%A8%20open-ssh%20%E7%9A%84%E7%94%A8%E6%88%B7%E7%9A%84%E7%AE%80%E5%8D%95%E7%9B%91%E7%8B%B1.png)
可能的重复:
将 SSH/SCP/SFTP 用户限制到某个目录
我可以使用简单的 open-ssh 配置将用户限制在他们的 /home/%u 目录中吗?我根据在互联网上找到的内容执行了以下操作停止服务器到 sshd_config 文件附加了以下内容
Match group sftpusers
ChrootDirectory /home/%u
X11Forwarding no
AllowTcpForwarding no
启动服务器
仅供参考,我已将用户添加到 sftpusers 组
我的用户仍然可以访问我的系统上的整个文件结构
安装了 open-ssh 的 Ubuntu Server 12.04 LTS
答案1
您还需要使用Subsystem sftp internal-sftp
.禁止所有其他转发,并且ForceCommand internal-sftp
。
另外,正如 sshd_config 手册页中所述,要 chroot 的目录必须由 root 所有并且任何人都不可写,这可能不是您的/home/%u
.
也许,你会想要:
sudo mkdir -p /jail/home
sudo mount --bind /home /jail/home
并有
ChrootDirectory /jail
或者要将用户限制在他们自己的目录中,您需要为每个用户进行绑定安装:
cd /home
for u in */ do
sudo mkdir -p "/jail/$u/home/$u"
sudo mount --bind "$u" "/jail/$u/home/$u"
done
并且有
ChrootDirectory /jail/%u