모든 마운트 스타일 애플리케이션에 대해 다른 내부 HDD 파티션의 비밀번호로 마운트를 요구하는 방법(udev 사용)

모든 마운트 스타일 애플리케이션에 대해 다른 내부 HDD 파티션의 비밀번호로 마운트를 요구하는 방법(udev 사용)

비밀번호를 요구하지 않고 파티션 마운트를 방지하여 동일한 물리적 HDD(레이아웃: gpt)에 있는 다른 파일 시스템을 사용하는 다른 파티션에 대한 액세스를 차단하려고 합니다.

FSTAB은 비밀번호로 마운트 사용을 관리합니다. FSTAB에 없으면 비밀번호가 필요합니다.

Nautilus 및 udisks의 경우 udev에서 ENV{UDISKS_ 명령을 다음과 같이 설정하려고 했습니다.

KERNEL=="sda10", ENV{UDISKS_PRESENTATION_NOPOLICY}="1", ENV{UDISKS_SYSTEM_INTERNAL}="1"

다음을 사용하여 ENV가 추가되었는지 확인했습니다.

udevadm info --name="/dev/sda10" --query=all

그러나 이것이 (gksudo가 아닌) Nautilus 또는 udisks를 클릭하면 파티션 마운트를 중지하지 않는 것 같습니다.

시도할 때 비밀번호를 묻는 메시지를 표시하고 싶습니다. 여기에 지정된 대로:

http://manpages.ubuntu.com/manpages/precise/man7/udisks.7.html

설정하면 장치가 "시스템 내부"로 간주되는지 여부를 감지하는 일반적인 버스 유형 기반 감지가 무시됩니다. "0"은 "제거 가능"(즉, 자동 마운트에 적합하고 일반 사용자가 마운트할 수 있음)을 의미하고, 다른 값은 "시스템 내부"(즉, 자동 마운트가 없으며 관리자만 마운트할 수 있음)를 의미합니다.

미리 감사드립니다.

PS 대조적으로 이것을 사용하면

KERNEL=="sda10", ENV{UDISKS_PRESENTATION_HIDE}="1"

노틸러스가 장치 섹션에 파티션을 표시하는 것을 중지합니다. 숨겨도 udisk가 마운트되는 것을 막지는 못할 것입니다(시도해 보지 않았습니다).

답변1

해결책은 여기 Reddit에 있습니다:Ubuntu에서는 인증 없이 내부 블록 장치의 마운트를 어떻게 허용합니까?

참고: 저는 Ubuntu Bionic 패키지를 기반으로 하는 LTS 릴리스인 linuxmint-mate 19.1(tessa)과 18.3(Sylvia)을 모두 사용합니다. 우분투 자체에서는 테스트하지 않았습니다.

파일을 루트로 열고 /var/lib/polkit-1/localauthority/10-vendor.d/com.ubuntu.desktop.pkla줄을 변경하십시오.

Action=org.freedesktop.udisks.filesystem-*;org.freedesktop.udisks.drive-ata-smart*;org.freedesktop.udisks2.filesystem-mount-system;org.freedesktop.udisks2.encrypted-unlock-system;org.freedesktop.udisks2.filesystem-fstab;

이것에:

Action=org.freedesktop.udisks.filesystem-*;org.freedesktop.udisks.drive-ata-smart*;org.freedesktop.udisks2.encrypted-unlock-system;org.freedesktop.udisks2.filesystem-fstab;

보시다시피 다음 줄을 삭제하세요.

org.freedesktop.udisks2.filesystem-mount-system;

따라서 Caja에 파티션을 마운트하라는 요청이 있을 때마다 파티션을 마운트하기 위한 인증 요청 창이 열립니다.

재부팅하거나 사용자 세션을 종료할 필요도 없습니다.
그것은 나에게 완벽하게 작동합니다.

답변2

PolicyKit/polkit규칙을 직접 편집하는 것보다 규칙을 통해 이것이 가능해야 한다고 생각합니다 udev.

12.04에서는 기본적으로 마운트가 허용됩니다.

user@precise:~$ pkaction --verbose --action-id org.freedesktop.udisks.filesystem-mount
org.freedesktop.udisks.filesystem-mount:
  description:       Mount a device
  message:           Authentication is required to mount the device
  vendor:            The udisks Project
  vendor_url:        http://udisks.freedesktop.org/
  icon:              drive-removable-media
  implicit any:      no
  implicit inactive: no
  implicit active:   yes

man pklocalauthority이를 무시하고( 참조 ) 이 작업을 수행하려면 인증이 필요한 로컬 규칙을 생성할 수 있어야 합니다 . 예를 들어 다음을 포함하는 이름의 파일을 만듭니다 /etc/polkit-1/localauthority.conf.d/50-disable-automount.pkla.

[Disable automount]
Identity=unix-user:*
Action=org.freedesktop.udisks.filesystem-mount
ResultAny=auth_admin
ResultInactive=auth_admin
ResultActive=auth_admin

몇 가지 추가 세부 사항을 조사해야 할 수도 있습니다(예: org.freedesktop.udisks.filesystem-mount-system-internalUSB 스틱이 아닌 로컬 하드 디스크에만 적용되는 것과 같은 보다 구체적인 작업이 있으며 최근 입력한 비밀번호로 충분한지 여부에 따라 auth_admin또는 중 하나를 선택할 수 있습니다). auth_admin_keep.

나는 Policykit의 의미 중 일부를 완전히 확신하지 못하고 문서가 약간 부족한 것 같아서 약간의 플레이가 필요할 수도 있지만 이것이 올바른 방법이라고 생각합니다. 보다여기Ubuntu의 작업에 대한 기본 정책 키트 권한입니다.

관련 정보