저는 임베디드 Linux 시스템(커널은 5.10.24)을 개발 중입니다.
커널에서 sysfs를 비활성화하려고 시도했지만 다른 것들이 sysfs에 의존한다는 것을 발견하여 커널 빌드에서 sysfs를 활성화해야 했습니다.
/sys
이제 아래 파일과 디렉터리를 숨기 거나 목록을 비활성화 하고 싶습니다 /sys/
. 아래와 같이 설치방법을
변경하였습니다 ./etc/fstab
/sys
sysfs /sys sysfs ro,noexec 0 0
ls -l /
다음을 표시합니다 .
dr-xr-xr-x 13 root root 0 Jan 1 2020 sys
여전히 를 통해 목록을 얻을 수 있습니다 ls -l /sys
.
그렇다면 sysfs를 쓰기 전용으로 마운트하는 방법이 있습니까(내용을 나열할 수 없음 /sys
)?
답변1
sysfs
일반 Linux 도구를 사용하여 쓰기 전용으로 만드는 옵션이 표시되지 않습니다 .
특정 프로세스의 콘텐츠를 제한하는 것으로 충분하다면 sysfs
다음 두 가지 옵션이 표시됩니다.
번들 설치
/sys-limited
이와 같은 mount --bind ...
앱을 만드는 데 필요한 모든 것 /sys
. 그런 다음 해당 프로세스를 별도의 설치 네임스페이스(모든 프로세스에 대해 동일할 수 있음)에 넣은 다음 그 안에서 작업할 수 있습니다 mount --bind /sys-limited /sys
.
퓨즈
더 많은 작업(얼마나 변경해야 하는지에 따라 다름 /sys
)이 있지만 더 유연합니다. 자체 FUSE 모듈을 작성하면 물론 쓰기 전용 액세스를 제공하거나 허용 목록에 추가한 항목만 표시할 수도 있습니다. 그런 다음 마운트 /sys-limited
하고 위에서 언급한 네임스페이스 분리를 수행합니다.