![cygwin: chroot jail - コマンドを実行できません](https://rvso.com/image/726397/cygwin%3A%20chroot%20jail%20-%20%E3%82%B3%E3%83%9E%E3%83%B3%E3%83%89%E3%82%92%E5%AE%9F%E8%A1%8C%E3%81%A7%E3%81%8D%E3%81%BE%E3%81%9B%E3%82%93.png)
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
何日もグーグルで検索して以下の手順を試しました
- すべてのファイルを
C:/cygwin/bin
'C:/cygwin/home/username/bin' にコピーすると、次のようdev,etc,lib,sbin,tmp,usr,var
な異なるエラーが発生します。error while loading shared libraries
- アップデートを試みましたが、
fstab
SSHC:/cygwin/bin /bin ntfs binary 0 0
接続コマンドに変化はありませんでした - SSH接続中にパスを追加してみました
plink.exe ssh -pw xxx username@hostname -v C:/cygwin/bin/python
が、plink.exe ssh -pw xxx username@hostname -v ../bin/python
sshd_config
デフォルトに 変更すると、どういうわけかコマンドは機能しますが、下の画像のような有線出力が表示されます。
助けてください。私の命が救われるかもしれません。
答え1
Cygwin は Linux と POSIX の呼び出しを Windows API 呼び出しに再マップする dll を提供します。chroot のようなツールは適切な Linux ユーザー空間に依存しており、cygwin のようなワークアラウンドを使用する場合はうまくマップされません。ただし、本当にこれを実行したい場合は可能です。ここ何が必要になるかに応じて。
代わりに私がお勧めするのは実際の Linux ユーザー空間新しいLinux 用 Windows サブシステム. これにより、Microsoft がサポートする実際の Linux 互換カーネル インターフェイスと、通常の Linux システムで利用できる実際の Linux ユーザー空間が提供されます。あなたが言及したツールはすべて、chroot など、そのセットアップで適切に動作するはずです。