我可以只使用 OpenSSH 配置将我的用户限制在他们的 /home/%u 目录中吗?根据我在 Internet 上找到的说明,我停止了 SSH 服务器并将以下内容附加到sshd_config文件中:
Match group sftpusers
ChrootDirectory /home/%u
X11Forwarding no
AllowTcpForwarding no
Run Code Online (Sandbox Code Playgroud)
然后我再次启动了 SSH 服务器。
仅供参考,我已将用户添加到sftpusers组中
我的用户仍然可以浏览 iecd /并且能够使用 cat 命令cat /usr/bin/test.sh在我的系统上的整个文件结构中列出文件内容 ( )
我正在运行 Ubuntu Server 12.04 LTS。
首先,我建议使用ChrootDirectory %h而不是/home/%u, 作为%h扩展到用户的家,即使它不是/home/$USER。
现在到您的实际问题:您需要强制internal-sftp作为要运行的命令。以下配置对我来说很好用,也应该适合你:
Match group sftp
ForceCommand internal-sftp
ChrootDirectory %h
X11Forwarding no
AllowTcpForwarding no
Run Code Online (Sandbox Code Playgroud)
如上所述,用户的家应该是root-owners 并拥有 755权限:
drwxr-xr-x 22 root root 4.0K Nov 24 2011 /home/testuser
Run Code Online (Sandbox Code Playgroud)