我可以只使用 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)