chroot 내부에서 chroot 외부 디렉토리에 액세스하는 방법은 무엇입니까?

chroot 내부에서 chroot 외부 디렉토리에 액세스하는 방법은 무엇입니까?

자신의 홈 디렉터리로 루트를 이동한 사용자가 있는데 그 사람도 관리할 수 있기를 바랍니다 /var/www. 그래서 다음을 수행했습니다.

root@server:/home/username# ln -s /var/www www
root@server:/home/username# cd www
root@server:/home/username/www# chown username:username *

그러나 /wwwFileZilla로 열려고 하면 "해당 파일이나 디렉터리가 없습니다"라는 메시지가 반환됩니다. 링크된 디렉토리는 볼 수 있지만 접근할 수는 없습니다. 내가 뭘 잘못했나요?

답변1

심볼릭 링크는 기본적으로 다른 파일에 대한 포인터일 뿐이며 해당 파일이 있는 파일을 찾기 때문에 chroot 외부의 항목을 가리킬 수 없습니다.이름( /var/www, chroot에는 존재하지 않습니다). 반면에 하드 링크는 inode에 대한 포인터입니다. 따라서 이를 수행하려면 하드 링크를 생략하여 사용해야 합니다 -s. 그러나 여러 가지 .이유 ..(주로 이러한 파일 시스템이방향성 비순환 그래프).

아마도 가장 좋은 방법은 바인드 마운트를 사용하는 것입니다. 이 시도:

mount --bind /var/www /home/username/www

관련 정보