chroot
" "을(를) 실행할 때 오류가 발생하는 이유는 무엇입니까 bash: /root/.bashrc: Permission denied
?
학습 목적으로 테스트를 진행 했는데 chroot
실행하는 동안 다음 오류가 발생했습니다 /bin/bash
.
nlykkei@debian:~$ id
uid=1000(nlykkei) gid=1000(nlykkei) groups=1000(nlykkei),27(sudo)
nlykkei@debian:~$ sudo chroot --userspec nlykkei:root --groups sudo / /bin/bash
bash: /root/.bashrc: Permission denied
nlykkei@debian:/$ id
uid=1000(nlykkei) gid=0(root) groups=0(root),27(sudo)
s 대신 /bin/bash
루트에 액세스하려는 것 같나요 ?.bashrc
nlykkei
또한 다음 을 생성(복사)하여 NEWROOT
만들고 실행할 수 없습니다 .~
/bin/bash
~/bin/bash
nlykkei@debian:~$ ls -la ~/bin/bash
-rwxr-xr-x 1 nlykkei nlykkei 1168776 Sep 23 10:49 /home/nlykkei/bin/bash
nlykkei@debian:~$ sudo chroot --userspec nlykkei:root --groups sudo /home/nlykkei/ /bin/bash
chroot: failed to run command ‘/bin/bash’: No such file or directory
이러한 문제를 해결할 수 있는 방법이 있나요?
nlykkei@debian:~$ uname -a
Linux debian 4.19.0-5-amd64 #1 SMP Debian 4.19.37-5 (2019-06-19) x86_64 GNU/Linux
답변1
전달하는 --userspec
것은 chroot 환경에서 실행하는 것과 다릅니다 chroot
. su - user
즉, 홈 디렉토리는 여전히 루트, 즉 루트가 아닌 사용자에게 허용되지 않는 콘텐츠를 읽으려고 시도하는 /root
이유입니다 .bash
/root/.bashrc
두 번째 문제는 chroot 환경에 필요한 모든 공유 라이브러리를 포함하지 않아 발생할 수 있습니다. chroot
정보 파일 에서 :
"bash"와 같이 동적으로 링크된 실행 파일을 사용하려면 먼저 "ldd bash"를 실행하여 필요한 공유 개체가 무엇인지 확인하세요. 그런 다음 실제 바이너리를 복사하는 것 외에도 나열된 파일을 원하는 새 루트 디렉터리 아래의 원하는 위치에 복사합니다. 마지막으로 실행 파일에 다른 파일(예: 데이터, 상태, 장치 파일)이 필요한 경우 해당 파일도 제자리에 복사하세요.