장치 파일을 조사하고 있는데 일부 마운트 지점에서 장치 파일 생성을 허용하지 않는 것을 발견했습니다( nodev
옵션이 설정된 경우). 내 mount
결과를 고려하면 다음과 같습니다.
sysfs on /sys type sysfs (rw,nosuid,nodev,noexec,relatime)
.....
debugfs on /sys/kernel/debug type debugfs (rw,relatime)
그 안에 장치 파일을 생성하려고 시도했지만 /sys/kernel/debug
(단순히 해당 옵션이 없었기 때문에 디렉토리를 선택함 nodev
) 작업이 허용되지 않았습니다. 그 이유를 이해하지 못합니다. 왜 수술이 불가능합니까?
답변1
/sys/kernel/debug
범용 파일 시스템이 아니기 때문에 쓸 수 없습니다 .debugfs
, 커널이 디버깅 정보를 사용자 공간으로 내보낼 수 있도록 하기 위해 존재합니다.
마운트 옵션의 차이는 마운트된 파일 시스템으로 인해 발생합니다. 귀하의 경우에는 systemd에 의해 설치되었다고 생각합니다. "핵심" 파일 시스템( /sys
등 /proc
)이 /dev
초기에 설치됩니다.src/core/mount-setup.c
( mount_table
세부 사항 참조) nodev
등은 다음을 /sys/kernel/debug
통해 설치됩니다.별도의 유닛,sys-kernel-debug.mount
, 설치 옵션을 지정하지 않습니다. 설치 옵션이 달라지는 특별한 이유가 있는지는 잘 모르겠습니다.
nodev
왜 중요한지 는 다음을 참조하세요./etc/fstab의 "nodev"가 왜 그렇게 중요한가요? 해킹을 위해 캐릭터 디바이스를 활용하는 방법은 무엇입니까?