chroot에서 '/dev/null: Permission 거부됨' 문제를 반복적으로 수정

chroot에서 '/dev/null: Permission 거부됨' 문제를 반복적으로 수정

를 사용하여 외부 디스크에 루트를 지정했지만 sudo chroot /mnt/disk내가 수행하는 거의 모든 작업(로그인, 탭 완성, less파일 가져오기 등)에서 /dev/null: Permission denied명령이 작동하는 것처럼 보이더라도 를 언급하는 오류가 발생합니다.

/dev/null에는 올바른 권한(666)이 있고 file문자 장치라고 나와 있으므로 일반 파일로 덮어쓰거나 권한을 변경한 것과는 다릅니다.

이 문제를 해결하려면 어떻게 해야 합니까?

(의) 탭 완성 ls /u결과는 다음과 같습니다.

$ ls /ubash: /dev/null: Permission denied
bash: _upvars: `-a2': invalid number specifier
bash: /dev/null: Permission denied
bash: _upvars: `-a0': invalid number specifier

답변1

디스크는 다음과 같이 해석되는 nodev옵션을 사용하여 마운트될 수 있습니다 mount.

파일 시스템의 문자 또는 블록 특수 장치를 해석하지 마십시오.

이는 출력을 확인하여 확인할 수 있습니다.mount 밖의chroot:

$ mount
...
/dev/sda1 on /mnt/disk type ext4 (rw,nosuid,nodev,relatime,data=ordered,uhelper=udisks2)

(chroot 외부의 구성이 내부 프로그램의 동작에 영향을 미치기 때문에 이는 발견하기 특히 까다로운 문제입니다!)

옵션 없이 다시 마운트하는 것만큼 쉽게 문제를 해결할 수 있습니다 nodev. 다음 명령은 이를 수행합니다(chrooted 프로세스가 실행 중인 동안에도!). 아마도 제거하는 방법이 있을 수도 있습니다.단지nodev다른 모든 옵션도 제거하지 않고 옵션을 삭제합니다 .

sudo mount -o remount /dev/sda1 /mnt/disk

관련 정보