Ermöglichen Sie Benutzern ohne Administratorrechte, Laufwerke über Nautilus bereitzustellen

7

Ich möchte den Nicht-Administrator-Benutzern das Mount-Privileg geben, die Laufwerke über Nautilus zu mounten. Ich möchte nicht, dass sie anderen Administratoren Privilegien gewähren. Ich möchte auch keine setuid-Methode verwenden.

Wie kann ich das erreichen? Ich benutze Ubuntu 12.04.

Anwar
quelle

Antworten:

9

Ich habe dieses Problem durch Ändern der Standardrichtlinie gelöst. Es gibt drei Möglichkeiten, dies zu erreichen:

Indem Sie einer Gruppe Privilegien geben

  1. Erstellen Sie zunächst eine Gruppe mountermit diesem Befehl:

     sudo addgroup mounter
    
  2. Fügen Sie dann die Nicht-Administrator-Benutzer zu dieser Gruppe hinzu. Zum Beispiel füge ich normaldieser Gruppe Benutzer hinzu, die keine Administratoren sind .

     sudo adduser normal mounter
    
  3. Öffnen Sie dann die Richtliniendatei mit Administratorrechten.

     gksu gedit /var/lib/polkit-1/localauthority/10-vendor.d/com.ubuntu.desktop.pkla 
    
  4. Am Anfang der Datei befindet sich ein Abschnitt wie der folgende:

    [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
    

    Fügen Sie unix-group:mounter;nach Identity=unix-group:admin;unix-group:sudo;in der ersten Zeile des Abschnitts hinzu. Der geänderte Abschnitt sieht folgendermaßen aus

    [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   
    

Das ist es. Jetzt können Benutzer ohne Administratorrechte die Laufwerke bereitstellen, ohne dass ein Administratorkennwort erforderlich ist. Sie müssen nur der mounterGruppe hinzugefügt werden . Hinweis: Um einen Benutzer novicezur Gruppe hinzuzufügen mounter, führen Sie diesen Befehl aus : sudo adduser novice mounter.

Indem Sie einem bestimmten Benutzer Berechtigungen erteilen

Wenn Sie keine weitere Gruppe erstellen möchten, können Sie einfach deren Benutzernamen (Anmeldename) in diese Datei einfügen.

  1. Öffnen Sie die Richtliniendatei mit Administratorrechten. Sie können diesen Befehl in ein Terminal oder in die Eingabeaufforderung eingeben, indem Sie Alt- drücken F2.

     gksu gedit /var/lib/polkit-1/localauthority/10-vendor.d/com.ubuntu.desktop.pkla 
    
  2. Fügen Sie dann unix-user:<login-name>an der IdentityZeile im Abschnitt hinzu [Mounting, checking, etc. of internal drives]. Denken Sie daran, den Anmeldenamen des Benutzers und nicht das Literal zu verwenden. . Wenn Sie dem Benutzer beispielsweise testerdieses Privileg erteilen möchten, sieht die Zeile wie folgt aus

    [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. Speichern Sie die Datei und beenden Sie gedit.

Indem Sie allen Benutzern Berechtigungen erteilen

Die beiden oben genannten Methoden funktionieren nicht für den Standard-Guess-Benutzer in Ubuntu. Denn der Gastbenutzer wird beim Anmelden dynamisch erstellt und nach dem Abmelden gelöscht.

Um dies zu umgehen, können Sie allen Benutzern diese Berechtigung erteilen.

  1. Öffnen Sie die Richtliniendatei mit Administratorrechten. Sie können diesen Befehl in ein Terminal oder in die Eingabeaufforderung eingeben, indem Sie Alt- drücken F2.

     gksu gedit /var/lib/polkit-1/localauthority/10-vendor.d/com.ubuntu.desktop.pkla 
    
  2. Fügen Sie dann unix-user:*an der IdentityZeile im Abschnitt hinzu [Mounting, checking, etc. of internal drives]. Nach der Änderung sieht der Abschnitt wie folgt aus:

    [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. Speichern Sie die Datei und beenden Sie gedit.


AKTUALISIERUNG

  1. Getestet am 14.04. Es funktioniert so, wie es in der Antwort beschrieben ist
Anwar
quelle
Gilt das noch für den 14.04? Ich habe die Datei bearbeitet und meinen Benutzernamen mount: only root can mount...
eingegeben,
1
@ byf-ferdy Ich werde es überprüfen und bearbeiten. Es gibt subtile Änderungen
Anwar
@ byf-ferdy, ich habe gerade am 14.04 getestet. Funktioniert wie hier erwähnt. Ich habe die letzte Methode verwendet, dh hinzugefügt unix-user:*. Überprüfen Sie, ob Ihr Laufwerk oder Volume in aufgeführt ist /etc/fstab. Wenn das der Fall ist, können Sie nicht auf diese Weise montieren
Anwar
Ja, ich habe es in meinem hinzugefügt. fstabWie kann ich es in diesem Fall als normaler Benutzer bereitstellen?
Byf-Ferdy
1
Letzte Option getestet (indem allen Benutzern Berechtigungen erteilt wurden) mit Ubuntu 16.04 64-Bit. Funktioniert wie beschrieben.
Quasoft