数日前、「コンピュータ」コンテキストメニューの「フォーマット」をクリックして、誤って外付けハードドライブのパーティションをフォーマットしました。 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
グループ所有)に設定することをお勧めします。問題を解決します。