如何限制使用SFTP功能“转义到本地shell”?

如何限制使用SFTP功能“转义到本地shell”?

为了使文件服务器的访问受到限制,我设置了以下配置:

在文件服务器上(Debian Wheezy)

  • data-reader在名为 的组中创建一个没有 home、没有 shell 的用户data
  • 创建一个 root 拥有的目录,以及一个可由 group 访问的/somewhere/share/子目录。/somewhere/share/data/data
  • 添加以下配置/etc/sshd_config
    Match group data
        ChrootDirectory /somewhere/share
        ForcedCommand internal-sftp
        X11Forwarding no
        AllowTcpForwarding no
    

这样,data-reader只能使用SFTP读取目录中的文件/somewhere/share/data。好的。

在客户端(另一个 Debian)

用于sftp data-reader@<server_ip>连接到服务器。从 SFTP 控制台,我可以使用或/somewhere/share/data等 SFTP 命令进行只读访问,但我看不到其他路径。好的 !这就是我想要的。lsget

列出了这个很好的命令help

!    Escape to local shell

如果我跑

!ls / 

/我实际上可以看到服务器上的所有文件!我可以看到任何文件的内容。但我不希望这样,我希望用户无法退出他的目录。

有没有办法限制这个“转义”命令的访问?

感谢您的帮助。

答案1

转义到本地 shell 意味着——用户现在在客户端上有一个 shell,不是在服务器上。触摸两个系统上 /tmp 中的文件(名称不同!)以查看差异。

相关内容