cygwin: chroot jail - コマンドを実行できません

cygwin: chroot jail - コマンドを実行できません

CygwinをインストールしましたApache、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. アップデートを試みましたが、fstabSSHC:/cygwin/bin /bin ntfs binary 0 0接続コマンドに変化はありませんでした
  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 は Linux と POSIX の呼び出しを Windows API 呼び出しに再マップする dll を提供します。chroot のようなツールは適切な Linux ユーザー空間に依存しており、cygwin のようなワークアラウンドを使用する場合はうまくマップされません。ただし、本当にこれを実行したい場合は可能です。ここ何が必要になるかに応じて。

代わりに私がお勧めするのは実際の Linux ユーザー空間新しいLinux 用 Windows サブシステム. これにより、Microsoft がサポートする実際の Linux 互換カーネル インターフェイスと、通常の Linux システムで利用できる実際の Linux ユーザー空間が提供されます。あなたが言及したツールはすべて、chroot など、そのセットアップで適切に動作するはずです。

関連情報