![cygwin: chroot 감옥 - 어떤 명령도 실행할 수 없습니다](https://rvso.com/image/726397/cygwin%3A%20chroot%20%EA%B0%90%EC%98%A5%20-%20%EC%96%B4%EB%96%A4%20%EB%AA%85%EB%A0%B9%EB%8F%84%20%EC%8B%A4%ED%96%89%ED%95%A0%20%EC%88%98%20%EC%97%86%EC%8A%B5%EB%8B%88%EB%8B%A4.png)
Cygwin을 설치했습니다아파치, PHP, 머큐리얼, MYSQL, OpenSSH, PYTHON
사용자 정의 폴더에 액세스하기 위해 chroot Jail로 sshd_config를 업데이트했습니다.
예:
일치 그룹 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
- SSH 연결 명령이 변경되지 않은 것처럼
fstab
업데이트 를 시도했습니다.C:/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 하위 시스템. 이는 일반 Linux 시스템에서 얻을 수 있는 실제 Linux 사용자 공간과 함께 Microsoft에서 지원하는 실제 Linux 호환 커널 인터페이스를 제공합니다. 당신이 언급한 도구는 모두 해당 설정, chroot 등에서 잘 작동해야 합니다.