cygwin:chroot jail-无法运行任何命令

cygwin:chroot jail-无法运行任何命令

我已经安装了 CygwinApache、PHP、Mercurial、MYSQL、OpenSSH、PYTHON

我已将 sshd_config 更新为 chroot jail,以访问用户定义的文件夹

例子:

匹配组 sftp_users

Chroot目录 /home/%u

SSH / SFTP 按照我的要求正常工作。

连接到 SSH 后,我得到了 bash。如果我想运行任何命令,例如'dir, hg, mysql, whatever“我只需得到command not found

我谷歌搜索了好几天,尝试了以下步骤

  1. 将所有文件复制到C:/cygwin/bin'C:/cygwin/home/username/bin' 并且类似地dev,etc,lib,sbin,tmp,usr,var- 这实际上给了我不同的错误,例如error while loading shared libraries
  2. 我尝试更新,fstab即使C:/cygwin/bin /bin ntfs binary 0 0这样也没有对我的 SSH 连接命令产生任何影响
  3. 我尝试在建立 SSH 连接时添加路径,plink.exe ssh -pw xxx username@hostname -v C:/cygwin/bin/python并且我也尝试过plink.exe ssh -pw xxx username@hostname -v ../bin/python
  4. 如果我更改sshd_config为其默认值,该命令会以某种方式工作,但我得到的有线输出类似于下图 plink SSH 连接后命令提示符响应-wired

帮助我,这可以挽救我的生命。

答案1

Cygwin 提供了一个 dll,可将 Linux 和 POSIX 调用重新映射到 Windows API 调用。chroot 等工具依赖于拥有适当的 Linux 用户空间,并且在使用 cygwin 等工作区时无法很好地映射 - 虽然如果您确实想这样做,这是可能的,请参阅这里以满足可能需要的要求。

我建议使用真正的 Linux 用户空间以及较新的适用于 Linux 的 Windows 子系统。这提供了 Microsoft 支持的真正 Linux 兼容内核接口,以及您在普通 Linux 系统上可以获得的真正 Linux 用户空间。您提到的所有工具都应该在该设置中正常工作,包括 chroot 等。

相关内容