cygwin:chroot 監獄 - 無法執行任何指令

cygwin:chroot 監獄 - 無法執行任何指令

我已經裝了 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”複製到“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 連線有線後的命令提示字元回應

幫助我,這可以挽救我的生命。

答案1

Cygwin 提供了一個 dll,可將 Linux 和 POSIX 呼叫重新對應到 Windows API 呼叫。像 chroot 這樣的工具依賴於擁有適當的 Linux 用戶空間,並且在使用像 cygwin 這樣的工作或函數時不能很好地映射 - 儘管如果你真的想這樣做,這是可能的,請參閱這裡可能需要什麼。

我建議使用真實的Linux用戶空間隨著較新的Linux 的 Windows 子系統。這提供了 Microsoft 支援的真正的 Linux 相容核心接口,以及您在普通 Linux 系統上獲得的真正的 Linux 用戶空間。您提到的工具在該設定、chroot 等中都應該可以很好地工作。

相關內容