Я установил 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
ноC:/cygwin/bin /bin ntfs binary 0 0
даже это не внесло никаких изменений в мою команду подключения SSH. - Я пробовал добавлять путь при создании 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 предоставляет dll, которая переназначает вызовы Linux и POSIX на вызовы Windows API. Такие инструменты, как chroot, зависят от наличия надлежащего пользовательского пространства Linux и не очень хорошо отображаются при использовании workaorunds, таких как cygwin - хотя, если вы действительно хотите это сделать, это возможно, см.здесьдля того, что может потребоваться.
Вместо этого я бы рекомендовал использоватьнастоящее пользовательское пространство Linuxвместе с более новымПодсистема Windows для Linux. Это обеспечивает настоящий Linux-совместимый интерфейс ядра, поддерживаемый Microsoft, вместе с настоящим пользовательским пространством Linux, которое вы получите в обычной системе Linux. Все упомянутые вами инструменты должны прекрасно работать в этой настройке, chroot и все такое.