私は読んでいます thismount
をrootとして実行する必要がある理由(いくつかの例外を除く)についての質問ですが、ドライブのマウントにrootが必要な場合(一般的に)、どうすればよいですか?グラフィカルファイルマネージャー(Nautilus、Thunarなど)はそれを行いますか? ヒューズ と関係がありますか?
グラフィカルワークステーションのコンソールで操作しているユーザーは、ルート認証や再起動などのパスワードを必要とせずに、いくつかのプログラムを実行できることに気づきました。このプロセスには、SUIDプログラムの巧妙な使用が含まれます/usr/sbin/userhelper
最初に設計されたものより広い文脈で適用されます。
グラフィカルユーザーは、中間エイリアスプログラムを実行します/usr/bin/consolehelper
これは、特定のPAM(Programmable Authentication Modules)構成に基づいてアクションを許可し、コマンドをSUIDプログラムに送信して、特権を使用してユーザープログラムを実行します。ユーザーに適切な権限がない場合、要求されたプログラムはユーザーのLinux環境で実行されます。
現在展開されているように、再起動に必要なPAM構成ファイルには、ユーザーがコンソールにログインするか、現在ルート環境で実行してパスワード要求を禁止するかのチェックが含まれています。
Udiskを使用します。 (ただし、ネットワークファイルシステムの場合はヒューズが使用されます)。実験には、udiskへのコマンドラインインターフェイスを利用できます。最近のバージョンでは、コマンドラインインターフェイスudisksctl
が付属しています。
udisksd
はrootとして実行され、ユーザーの要求を D-Bus を使用して受け入れます。
udisksd
使用 PolicyKit 許可するリクエストを決定するPolKit。一部には追加の特権が必要な場合があります。内蔵ドライブのフォーマット。これには、追加の認証手順が含まれる場合があります。これは、Windows UACプロンプト、またはコマンドラインのSudoと同様です。追加の認証がどのように調整されるのか正確にはわかりません。
D-Busを介した要求は、現在、要求を行うプロセスを識別するSCM_CREDENTIALSを使用してUnixソケットを使用して行われます。
決定に使用される要素の1つは、ユーザーがローカルにログインしているか、ネットワーク経由でログインしているか(ssh
など)です。この情報はsystemd-logind
によって提供されていると思います(pam-systemd
と共謀して)。
別の解決策はPolkitです... /usr/share/polkit-1/actions/org.freedesktop.UDisks2.policyを編集します
どこでも変更:
<defaults>
<allow_any>auth_admin</allow_any>
<allow_inactive>auth_admin</allow_inactive>
<allow_active>auth_admin_keep</allow_active>
</defaults>
...と:
<defaults>
<allow_any>yes</allow_any>
<allow_inactive>yes</allow_inactive>
<allow_active>yes</allow_active>
</defaults>
または、それ以外の場合は、ルールを作成します。編集または作成:/etc/polkit-1/rules.d/50-udisks.rules
polkit.addRule(function(action, subject) {
var YES = polkit.Result.YES;
var permission = {
// only required for udisks1:
"org.freedesktop.udisks.filesystem-mount": YES,
"org.freedesktop.udisks.filesystem-mount-system-internal": YES,
"org.freedesktop.udisks.luks-unlock": YES,
"org.freedesktop.udisks.drive-eject": YES,
"org.freedesktop.udisks.drive-detach": YES,
// only required for udisks2:
"org.freedesktop.udisks2.filesystem-mount": YES,
"org.freedesktop.udisks2.filesystem-mount-system": YES,
"org.freedesktop.udisks2.encrypted-unlock": YES,
"org.freedesktop.udisks2.eject-media": YES,
"org.freedesktop.udisks2.power-off-drive": YES,
// required for udisks2 if using udiskie from another seat (e.g. systemd):
"org.freedesktop.udisks2.filesystem-mount-other-seat": YES,
"org.freedesktop.udisks2.encrypted-unlock-other-seat": YES,
"org.freedesktop.udisks2.eject-media-other-seat": YES,
"org.freedesktop.udisks2.power-off-drive-other-seat": YES
};
if (subject.isInGroup("users")) {
return permission[action.id];
}
});
その後、再起動してください!