홈 웹사이트(SFTP)의 하위 디렉터리에 있는 Chroot

홈 웹사이트(SFTP)의 하위 디렉터리에 있는 Chroot

Debian apache2 서버에서 webstie 트리의 하위 디렉토리(웹사이트 홈 디렉토리:/home/website/public_html/, 특정 사용자에게만 액세스를 원함:/home/website/public_html/boutique/modules/sftpwkmmodules

따라서 기본 웹 사이트 사용자는 모든 트리(userweb)에 액세스할 수 있습니다.
하지만 사용자에 대한 액세스 권한이 필요합니다sfkm모듈트리 내부의 하위 디렉토리로 이동하면 작동하지 않습니다.
사용자를 만들었습니다sfkm모듈및 그룹sftpwkm모듈.
나는이 라인을 설정했습니다sshd_config파일:

Match group sftpwkmodules
    ChrootDirectory /home/website/public_html/boutique/modules/wkmanagesuppliers
     ForceCommand internal-sftp
     AllowTCPForwarding no
     X11Forwarding no

하지만 내가 연결하면SFTP이 사용자에게는 허용되지 않습니다. 로그에는 fatal에 대한 잘못된 소유권이 있는 것 같습니다.chroot 디렉토리 구성 요소 "/home/website/public_html/"에 대한 잘못된 소유권 또는 모드.
하지만 이 사용자가 하위 디렉터리에 액세스할 수 있도록 하기 위해 모든 트리의 소유권을 변경할 수는 없습니다. 작동하게 하는 방법이 있나요?

답변1

권한을 변경하기 전에 웹 서버에 최소한 파일 및 디렉터리에 대한 읽기 권한이 있어야 한다는 점을 고려하십시오. 또한 sfkmodules 사용자가 만든 모든 파일/디렉터리는 해당 사용자의 소유가 되며 umask에 따라 웹 서버에서 읽지 못할 수도 있습니다.

고려해야 할 해결책은 웹 루트 외부의 자신의 디렉터리에 있는 사용자를 루트로 지정하고 파일이 삭제될 때를 감지하고 해당 파일을 웹 루트로 이동하는 일종의 감시 장치를 마련하는 것입니다. 이렇게 하면 소유권과 권한을 제어할 수 있습니다.

PERL과 cron은 그러한 노력을 하는 여러분의 친구입니다.

답변2

그룹을 생성하고 액세스하려는 다른 사용자와 함께 필요한 사용자를 그룹에 추가하고 필요한 권한을 할당합니다. 이번에는 chroot를 사용하지 마십시오.

아래 명령은 CentOS용이지만 이해가 되실 것입니다.

sudo groupadd groupname  
sudo usermod -a -G groupname admin  
sudo usermod -a -G groupname user1  
sudo chown -R admin:groupname /home/website/public_html/boutique/modules/wkmanagesuppliers  

관련 정보