SFTP: 감옥에 갇힌(chrooted) 디렉터리의 파일 심볼릭 링크

SFTP: 감옥에 갇힌(chrooted) 디렉터리의 파일 심볼릭 링크

신뢰할 수 있는 소수의 사람들이 일부 파일에 액세스/편집/생성할 수 있도록 sftp를 설정하려고 합니다. 사용자를 홈 디렉토리(/home/name)에 가두었지만 문제가 발생했습니다. VPS는 게임 서버, 웹호스트 등이기도 하기 때문에 VPS의 다른 부분에도 액세스할 수 있기를 원하며, 감옥에 갇힌 디렉터리 외부의 파일을 완전히 제어할 수 있기를 바랍니다.

원하는 디렉토리에 대한 심볼릭 링크(ln -s)를 만들어 보았지만 예상대로 작동하지 않습니다. 나는 액세스 권한을 부여하고 싶은 파일에 대해 (cp -rl)을 시도했고 성공했습니다. 그들은 자신의 디렉토리에 있는 파일을 편집할 수 있고 감옥 외부에 저장된 파일을 변경할 수 있습니다. 하지만 새 파일을 만들 수는 없습니다(할 수는 있지만 감옥 외부에서는 업데이트되지 않습니다). 나는 아마도 이 일을 "올바른 방법"으로 하고 있지 않다는 것을 알고 있습니다. 그러나 내가 원하는 것을 하려면 어떻게 해야 합니까?

답변1

Symlink는 순전히 기호적입니다. 경로만 포함하므로 Symlink를 열면 OS는 경로를 읽고 대신 사용합니다. chroot 환경에서 링크(특히 절대 경로가 있는 링크)는 일반적으로 일반 환경에서 가리키는 것과 동일한 위치를 가리키지 않습니다.

서버 OS가 Linux인 경우 가장 좋은 방법은 chroot 디렉터리 내부 어딘가에 전체 디렉터리를 바인드 마운트하는 것입니다. 이것을 사용할 때 이것은 디렉토리의 복사본이 아니라는 점을 기억하는 것이 중요합니다. 여기에서 삭제된 모든 항목은 다른 디렉토리에서 제거됩니다(사용자가 mv파일 또는 을 사용할 수 있는 경우 중요 rm -rf). 이것을하기 위해:

mount --bind /some/directory /somewhere/else

디렉터리의 파일은 실제 파일이어야 합니다. 여기의 Symlink에는 처음에 파일에 연결하려고 할 때와 동일한 문제가 있을 수 있습니다.

관련 정보