web-dev-qa-db-ja.com

管理者以外のユーザーがnautilusを介してドライブをマウントできるようにする

Nautilusを介してドライブをマウントするために、非管理者ユーザーにマウント特権を与えたいです。私は彼らに他の管理者権限を与えたくありません。また、setuidメソッドを使用したくありません。

どうすればこれを達成できますか? Ubuntu 12.04を使用しています。

7
Anwar

デフォルトのポリシーを変更することでこの問題を解決しました。これを実現するには、次の3つの方法があります。

グループに特権を与えることにより

  1. 最初に、次のコマンドを使用してグループmounterを作成します。

     Sudo addgroup mounter
    
  2. 次に、このグループに非管理者ユーザーを追加します。たとえば、管理者以外のユーザーnormalをこのグループに追加しています。

     Sudo adduser normal mounter
    
  3. 次に、管理者特権でポリシーファイルを開きます。

     gksu gedit /var/lib/polkit-1/localauthority/10-vendor.d/com.ubuntu.desktop.pkla 
    
  4. ファイルの先頭には、次のようなセクションがあります。

    [Mounting, checking, etc. of internal drives]
    Identity=unix-group:admin;unix-group:Sudo;
    Action=org.freedesktop.udisks.filesystem-*;org.freedesktop.udisks.drive-ata-smart*
    ResultActive=yes
    

    セクションの最初の行のunix-group:mounter;の後にIdentity=unix-group:admin;unix-group:Sudo;を追加します。変更されたセクションは次のようになります

    [Mounting, checking, etc. of internal drives]
    Identity=unix-group:admin;unix-group:Sudo;unix-group:mounter;
    Action=org.freedesktop.udisks.filesystem-*;org.freedesktop.udisks.drive-ata-smart*
    ResultActive=yes   
    

それでおしまい。これで、管理者以外のユーザーは管理者パスワードを必要とせずにドライブをマウントできます。それらはmounterグループに追加するだけです。ユーザーnoviceをグループmounterに追加するには、次のコマンドを実行してください:Sudo adduser novice mounter

特定のユーザーに特権を与えることにより

別のグループを作成したくない場合は、そのファイルにユーザー名(ログイン名)を追加するだけです。

  1. 管理者権限でポリシーファイルを開きます。ターミナルまたはダッシュプロンプトでこのコマンドを入力するには、 Alt-F2

     gksu gedit /var/lib/polkit-1/localauthority/10-vendor.d/com.ubuntu.desktop.pkla 
    
  2. 次に、unix-user:<login-name>セクションのIdentity行に[Mounting, checking, etc. of internal drives]を追加します。 リテラルの。ではなく、ユーザーのログイン名を使用することを忘れないでください。たとえば、ユーザーtesterにこの権限を付与する場合、行は次のようになります。

    [Mounting, checking, etc. of internal drives]
    Identity=unix-group:admin;unix-group:Sudo;unix-user:tester;
    Action=org.freedesktop.udisks.filesystem-*;org.freedesktop.udisks.drive-ata-smart*
    ResultActive=yes
    
  3. ファイルを保存して、geditを終了します。

すべてのユーザーに特権を与えることにより

上記の2つの方法は、Ubuntuのデフォルトの推測ユーザーには機能しません。ゲストユーザーはログイン時に動的に作成され、ログアウト後に削除されるためです。

これを回避するには、すべてのユーザーにこの権限を付与します。

  1. 管理者権限でポリシーファイルを開きます。ターミナルまたはダッシュプロンプトでこのコマンドを入力するには、 Alt-F2

     gksu gedit /var/lib/polkit-1/localauthority/10-vendor.d/com.ubuntu.desktop.pkla 
    
  2. 次に、unix-user:*セクションのIdentity行に[Mounting, checking, etc. of internal drives]を追加します。変更後、セクションは次のようになります。

    [Mounting, checking, etc. of internal drives]
    Identity=unix-group:admin;unix-group:Sudo;unix-user:*;
    Action=org.freedesktop.udisks.filesystem-*;org.freedesktop.udisks.drive-ata-smart*
    ResultActive=yes
    
  3. ファイルを保存して、geditを終了します。


更新

  1. 14.04でテスト済み。それは答えで説明されているように機能します
9
Anwar