
Debian Wheezy 64비트에서 고객이 디렉터리에 파일을 배치할 수 있도록 새 사용자를 만듭니다. 사용자가 생성된 후 in /bin/bash
으로 대체하여 대화형 로그인을 제거합니다 . 그런 다음 그를 에 추가하여 그의 세션이 그의 홈 디렉터리로 루트되도록 합니다./bin/false
/etc/passwd
/etc/ftpchroot
그러나 사용자를 에 추가하자마자 /etc/ftpchroot
사용자가 로그인하면 어떤 파일도 볼 수 없습니다. 사용자는 루트가 지정되어 위쪽으로 이동할 수 없습니다. 그는 올바른 디렉토리에 저장된 파일을 업로드할 수 있으며 640 권한과 thatuser:thatusersgroup 소유권을 가지고 있습니다.
지금까지 내 생각:
/etc/ftpchroot
분명히 뭔가를 하고 있고, 해야 할 일을 하고 있는 것입니다.- 해당 컴퓨터에 생성된 모든 사용자에게 이 문제가 발생합니다(다른 새 사용자에게 두 번 시도).
- 디렉토리에 의존하지 않습니다. 그의 홈 디렉토리를 변경하고 그곳으로 루트를 변경해도 동일한 문제가 나타납니다.
이전에 이런 일을 꽤 여러 번 해봤고 이런 일을 겪어본 적이 없기 때문에 이상합니다. 안타깝게도 문제가 있는 문제 설명으로 인해 답변을 찾기가 어렵습니다.
편집 1: 지금 보고 있는 것입니다. ftpchroot에서 로그인하면 로그인이 성공적으로 완료될 때 메시지가 표시되지 않습니다. 단, ftpchroot 없이 로그인한 경우에는 /etc/motd
인증 완료 후 표시됩니다.
편집 2: inetutils-ftpd
. PAM 인증을 가져왔고 이를 구성한 후 언급된 문제 없이 동일한 사용자로 로그인하고 해당 사용자는 문제 없이 파일을 업로드하고 볼 수 있습니다.
답변1
chroot를 사용하는 경우 chroot 내에서 사용하려는 바이너리는 해당 chroot 내에 있어야 합니다. ftpchroot의 경우 이는 일반적으로 ftpd가 시스템 ls
의 에 의존하기보다는 자체 바이너리 내에서 기능을 가져야 함을 의미합니다 /bin/ls
. 그렇지 않으면 각 사용자는 자신만의 $HOME/bin/ls
.
따라서 해결책은 ls
내장된 ftp 데몬을 사용하는 것입니다(또는 --ls-included 또는 이 특정 ftp 데몬에 대한 적절한 옵션을 사용하여 다시 컴파일하는 것).