web-dev-qa-db-fra.com

Autoriser les utilisateurs non-administrateurs à monter des lecteurs via Nautilus

Je veux donner le privilège de montage aux utilisateurs non-administrateurs pour monter les disques via Nautilus. Je ne veux pas qu'ils donnent d'autres privilèges d'administrateur. Je ne veux pas non plus utiliser la méthode setuid.

Comment puis-je atteindre cet objectif? J'utilise Ubuntu 12.04.

7
Anwar

J'ai résolu ce problème en changeant la politique par défaut. Il y a trois façons d'y parvenir:

En donnant le privilège à un groupe

  1. Créez d'abord un groupe mounter en utilisant cette commande:

     Sudo addgroup mounter
    
  2. Ajoutez ensuite les utilisateurs non-administrateurs à ce groupe. Par exemple, j'ajoute l'utilisateur non-administrateur normal à ce groupe.

     Sudo adduser normal mounter
    
  3. Ouvrez ensuite le fichier de stratégie avec les privilèges d'administrateur.

     gksu gedit /var/lib/polkit-1/localauthority/10-vendor.d/com.ubuntu.desktop.pkla 
    
  4. En haut du fichier, il y a une section comme celle-ci:

    [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
    

    Ajoutez unix-group:mounter; après Identity=unix-group:admin;unix-group:Sudo; à la première ligne de la section. La section modifiée ressemblera à ceci

    [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   
    

C'est ça. Désormais, les utilisateurs non administrateurs peuvent monter les lecteurs sans requérir mot de passe administrateur. Ils doivent seulement être ajoutés au groupe mounter. Remarque: pour ajouter un utilisateur novice au groupe mounter, exécutez la commande suivante: Sudo adduser novice mounter.

En donnant le privilège à un utilisateur spécifique

Si vous ne souhaitez pas créer un autre groupe, vous pouvez simplement ajouter leur nom d'utilisateur (nom d'utilisateur) dans ce fichier.

  1. Ouvrez le fichier de stratégie avec les privilèges d'administrateur. Vous pouvez taper cette commande dans un terminal ou dans l'invite du tableau de bord en appuyant sur Alt-F2.

     gksu gedit /var/lib/polkit-1/localauthority/10-vendor.d/com.ubuntu.desktop.pkla 
    
  2. Ajoutez ensuite unix-user:<login-name> à la ligne Identity de la section [Mounting, checking, etc. of internal drives]. N'oubliez pas d'utiliser le nom de connexion de l'utilisateur, pas le littéral. . Par exemple, si vous voulez donner à l'utilisateur tester ce privilège, la ligne ressemblera à celle ci-dessous

    [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. Enregistrez le fichier et quittez gedit.

En donnant le privilège à tous les utilisateurs

Les deux méthodes ci-dessus ne fonctionneront pas pour l'utilisateur de devin par défaut sous Ubuntu. En effet, l’utilisateur invité est créé dynamiquement lors de la connexion et est supprimé après la déconnexion.

Pour contourner ce problème, vous pouvez accorder ce privilège à tous les utilisateurs.

  1. Ouvrez le fichier de stratégie avec les privilèges d'administrateur. Vous pouvez taper cette commande dans un terminal ou dans l'invite du tableau de bord en appuyant sur Alt-F2.

     gksu gedit /var/lib/polkit-1/localauthority/10-vendor.d/com.ubuntu.desktop.pkla 
    
  2. Ajoutez ensuite unix-user:* à la ligne Identity de la section [Mounting, checking, etc. of internal drives]. Après modification, la section ressemblera à celle ci-dessous:

    [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. Enregistrez le fichier et quittez gedit.


MISES À JOUR

  1. Testé en 14.04. Cela fonctionne comme il est décrit dans la réponse
9
Anwar