すべてのマウント スタイル アプリケーションで他の内部 HDD パーティションのマウントにパスワードを要求する方法 (udev を使用)

すべてのマウント スタイル アプリケーションで他の内部 HDD パーティションのマウントにパスワードを要求する方法 (udev を使用)

パスワードを要求せずにパーティションをマウントできないようにすることで、同じ物理 HDD (レイアウト: gpt) 上の異なるファイル システムを持つ他のパーティションへのアクセスをブロックしようとしています。

FSTAB はパスワード付きのマウントの使用を処理します。FSTAB にない場合は、パスワードが必要になります。

Nautilus と udisks の場合、次のような ENV{UDISKS_ コマンドを設定する udev を試していました。

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これとは対照的に

カーネル =="sda10", ENV{UDISKS_PRESENTATION_HIDE}="1"

Nautilus がデバイス セクションでパーティションを表示するのを止めます。ただし、非表示にしても udisks がそれをマウントするのを止めることはできないでしょう (試していません)。

答え1

解決策はRedditにあります:Ubuntu ではどのようにして認証なしで内部ブロック デバイスのマウントを許可するのでしょうか?

ところで、私は linuxmint-mate 19.1 (tessa) と 18.3 (Sylvia) を使用しています。どちらも Ubuntu Bionic パッケージに基づく LTS リリースです。Ubuntu 自体ではテストしていません。

ファイルをルートとして開き/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_adminauth_admin_keep

私はポリシーキットのセマンティクスの一部を完全には理解していませんし、ドキュメントも少し不足しているようですので、少し試してみる必要があるかもしれませんが、これが正しい方法だと思います。ここUbuntu でのアクションのデフォルトのポリシーキット権限。

関連情報