/proc가 마운트되지 않은 경우 chroot에서 실행 중인지 어떻게 알 수 있나요?

/proc가 마운트되지 않은 경우 chroot에서 실행 중인지 어떻게 알 수 있나요?

내가 스크립트의 일부에 있는지 알고 싶습니다. 그렇지 않은 경우 chroot설치가 허용되지 않습니다./procchroot에서 실행 중인지 어떻게 알 수 있나요?). 설치 chroot되지 않은 상태 인지 어떻게 알 수 있나요 /proc?

루트 액세스 권한이 있습니다. 이것은 Fedora에 있습니다. 이 솔루션은 사용되는 파일 시스템에 의존해서는 안 됩니다.

답변1

데비안 chroot는 특정 파일을 에 넣지만 이를 /etc위해서는 협력이 필요합니다.

그러나 그것이 정상적인 뿌리와 같다면 그것은 정상적인 뿌리와 같습니다. 따라서 차이점이 보이지 않으면 chroot에 있지 않다고 가정하십시오(어쨌든 동일합니다).

어려운 방법은 /루팅된 장치를 설치할 때 얻는 것과 동일한지 확인하는 것입니다. 하지만 이를 위해서는 루팅이 필요합니다. 다른 방법에는 /proc(또는 루트)이 필요합니다.

답변2

사용systemd-detect-virt -r. (루트여야 함)

답변3

다른 답변과 달리 이 답변은 루트 권한이 필요하지 않습니다. 달리기 unshare -U true. 성공하면 더 이상 chroot 상태가 아닙니다. 실패하고 이 표시되면 unshare: unshare failed: Operation not permitted실패한 것입니다. 이것은 작동합니다.commit 3151527ee007b73a0ebd296010f1c0454a919c7d: userns: 사용자가 chroot된 경우 생성을 허용하지 않습니다..

경고: unshare다른 여러 가지 이유로도 실패할 수 있습니다. 성공하면 chroot에 있지 않은 것이 확실하지만, 실패하면 chroot에 있을 가능성이 높습니다.

관련 정보