ルート以外のユーザーがパーティションをフォーマットできないようにする

ルート以外のユーザーがパーティションをフォーマットできないようにする

数日前、「コンピュータ」コンテキストメニューの「フォーマット」をクリックして、誤って外付けハードドライブのパーティションをフォーマットしました。 root以外のユーザーがこれを行うのを防ぐ方法を知りたいです。同時にパーティションから読み書きできるようにするには、root以外のユーザーが必要です。

私はFedora 14を使用しています。

ありがとうございます。

答え1

〜のようにCNC 3bすでに指摘したように、これはPolicyKitによって制御されます。ディスクポリシーは次の場所にあり、/usr/share/polkit-1/actions/org.freedesktop.udisks.policy調整できます。
root権限で開き、次の行を検索するか<action id="org.freedesktop.udisks.change">、ブロック全体をコメントアウトするか<!-- [udisks.change-block] -->、「No」に設定して<allow_active>保存して終了します。

無効になっていることを確認してください。

$ pkaction --verbose --action-id org.freedesktop.udisks.change
No action with action id org.freedesktop.udisks.change

または以下を設定した場合no

...
implicit active:   no

いいですね。次に、コンテキストメニューまたはディスクユーティリティを介して非ルートユーザーとしてデバイスをフォーマットしようとすると、フォーマットを禁止するエラーメッセージが表示されます。この段階では、root 以外のユーザーもデバイスを読み書きできます。


それでもデバイスのフォーマットを許可しますが、より高いセキュリティレベルが必要な場合は、PolicyKitに毎回パスワードを要求することができます。
同じファイルを開き、同じセクションに移動して、次の「yes」を「auth_admin」に置き換えますallow_active

<allow_active>auth_admin</allow_active>

確認する:

$ pkaction --verbose --action-id org.freedesktop.udisks.change
...
implicit active:   auth_admin

素晴らしい!

メモ:Ubuntuでのみテストしてみましたが、FedoraでもPolicyKitを使用しているので、まず仮想ドライブでテストしてみてください。

答え2

これはポリシーの拡大の場合です。正直な端末でこれを行うと、次のことが起こります。

nc3b@aiur:~$ /sbin/mke2fs -jv /dev/sda1
mke2fs 1.41.3 (12-Oct-2008)
mke2fs: Permission denied while trying to determine filesystem size

gnomeまたは他のデバイスでこれを実行するときにスーパーユーザータスクを実行しようとすると、権限を高めるタスクを実行するデーモンがあります(通常はこれが権限のあるタスクであることを警告し、パスワードを要求します)。 FedoraはPolicyKitを使うと思いますが、これらのシステムは同様に機能します。

ほとんどの実際のリスクは、「このパスワードをキーリングに保存する」などの機能を提供し、再度警告しないことです。

sudo、[6] gksudoおよびkdesuは、管理者特権プログラムが呼び出されるたびにユーザーにパスワードの再入力を要求しません。代わりに、ユーザーに最初にパスワードを入力するように求められます。ユーザーが一定期間(sudoのデフォルト値は5分[6])に管理権限を使用しないと、ユーザーはパスワードを再入力するまで標準ユーザー権限に制限されます。

したがって、解決策は、パスワードを入力してもこれらの操作を実行する権限がないユーザーを使用することです。

答え3

Fedora が root 以外のユーザーがディスクをフォーマットできるようにすると、いくつかの深刻なセキュリティ問題が発生する可能性があります。最良の方法は次のとおりです。

chown root:root /dev/[sh]da[0-9]
chmod 0600 /dev/[sd]da[0-9]

その後、「パーティションで読み書きできるルート以外のユーザー」が必要で、ファイルシステムを読み書きすることを意味する場合は、マウントするだけです。

つまり、読み書きを実行するプログラムの権限を変更すると(おそらくプログラムを実行してsudo)、問題が解決する可能性があります。

それに加えて、パーティション構造はディスクのスーパーブロック(例:/ dev / sda - 数字なし)に格納されていると思うので、これをに設定し、0600パーティションをより許容可能なマスク(たとえば0660グループ所有)に設定することをお勧めします。問題を解決します。

関連情報