특정 USB 드라이브를 읽기 전용으로 마운트하는 방법

특정 USB 드라이브를 읽기 전용으로 마운트하는 방법

특정 USB 드라이브를 읽기 전용으로 마운트해야 합니다. 모든 드라이브가 아니라 보관된 데이터가 포함된 드라이브만 마운트해야 합니다. 우발적이거나 악의적인 변경을 방지하고 싶습니다.

이에 대해 많은 글이 작성되었으며 udev가능해 보이지만 내 규칙은 시행되지 않는 것 같습니다. 나는 배웠다USB 드라이브를 읽기 전용으로 마운트하는 udev 규칙을 어떻게 생성합니까?- 나는 gvfs가 없으며 다른 답변은 도움이 되지 않았습니다.

이것은 내 /etc/udev/rules.d/25-usb-read-only.rules파일입니다. 테스트를 위해 볼륨 이름이 SCRATCH인 드라이브를 사용했습니다. 드라이브는 /dev/sda에 마운트되지만 항상 쓰기가 가능합니다.

#SUBSYSTEM=="usb", ACTION=="add", ENV{ID_FS_LABEL}=="SCRATCH", ENV{UDISKS_MOUNT_OPTIONS}="ro"
SUBSYSTEM=="usb", ACTION=="add", ENV{ID_FS_LABEL}=="SCRATCH", MODE="0550"
#SUBSYSTEMS=="usb", ACTION=="add", ENV{ID_FS_USAGE}=="filesystem", ENV{ID_FS_LABEL}=="SCRATCH", ENV{UDISKS_MOUNT_OPTIONS}="ro"
# The RUN here just to test the rule is executed
#KERNEL=="sd*", SUBSYSTEMS=="usb", ACTION=="add", ENV{ID_FS_USAGE}=="filesystem", ENV{ID_FS_LABEL}=="SCRATCH", RUN+="/home/test-udev.sh"

주석 처리된 줄은 이전에 실패한 시도입니다. 시험 사이사이에 그 일이 생각났어요 sudo udevadm control --reload.

RUN 명령도 실패합니다. 이 스크립트는 디버그 파일에만 쓰고 명령줄에서 실행될 때만 작동합니다.

디버깅을 활성화하고 확인했습니다 /var/log/syslog. 테스트 단 몇 초 만에 수만 줄을 확인했습니다. 나는 유용한 것을 찾을 수 없습니다.

내 시스템은 Linux Mint 21.1 Cinnamon이지만 위의 모든 내용은 bash에서 가져온 것입니다.

어떤 도움이라도 대단히 감사하겠습니다.

답변1

원래의 (사전 systemd) 구현은 udev너무 강력한 것으로 판명되었습니다. 경쟁 조건과 기타 보안 문제가 발생했습니다. 결과적으로 최신 버전은 systemd-udevd이전 버전보다 더 제한적이며 이전 버전과 동일한 기능을 모두 수행할 수 없습니다. old 를 사용하여 이동식 디스크를 마운트하는 방법에 대한 많은 정보가 있지만 udev현재 권장 사항은 다음과 같습니다.넌 그렇게 하면 안 돼, udevd새 릴리스에 구현된 샌드박싱 및 기타 보안 제한으로 인해 실제로는 점점 더 어렵거나 비실용적이 되었습니다.

현재의 이해는 기본적으로 udev이렇습니다.기초적인적시에 적절한 소유권과 권한을 가진 장치 노드를 생성하고 관리하는 것이 임무이며,선택적으로다른 서비스에서 사용할 수 있도록 장치 노드에 일부 추가 메타데이터를 제공하세요. 기본 작업을 손상시킬 수 있는 다른 것은 피해야 합니다. 따라서 udev장기 실행 프로세스를 시작하게 하는 모든 동작은 올바른 것입니다.

파일 시스템을 마운트하는 데 시간이 오래 걸릴 수 있으며, 특히 파일 시스템이 크거나 손상된 경우에는 직접 수행하기보다는 udevd다른 서비스에 맡겨야 합니다 .udisks2

Mint 21.1의 버전이 2.9.0 이상이면 더 나은 곳이 될 것입니다 udisks2(패키지 이름은 아마도 현재 버전 이전에 다른 구현이 있었기 때문일 것입니다 ).libudisks2-0udisks/etc/udisks2/mount_options.conf

다음을 수행할 수 있습니다.

[/dev/disk/by-label/SCRATCH]
defaults=ro
# removed "rw" from the global default list of allowed mount options
allow=exec,noexec,nodev,nosuid,atime,noatime,nodiratime,ro,sync,dirsync,noload

이 문서에는 mount_options.conf특정 USB 저장 장치를 장치 일련 번호별로 일치시키는 샘플 udev 규칙을 포함하여 많은 예가 포함되어 있습니다. 이는 원하는 파일 시스템 레이블을 사용하는 것보다 더 안전합니다. http://storagged.org/doc/udisks2-api/latest/mount_options.html

일반적으로 이동식 미디어 장치는 TAG+="uaccess"로컬로 로그인한 사용자에게 장치에 대한 쓰기 액세스를 제공하는 udev 규칙을 가져옵니다. 이는 이동식 미디어 장치에서 파일 시스템 레이블을 변경하는 데 필요한 모든 권한을 자동으로 갖게 됨을 의미합니다. 이는 악의적인 변경을 방지하기 위해 파일 시스템 레이블을 사용하는 제안된 전략이 쉽게 해결될 수 있지만 안전하지 않음을 의미합니다.

관련 정보