Ermöglichen Sie Benutzern einer bestimmten Gruppe, einen Befehl ohne sudo auszuführen

11

Ich kann / etc / sudoers so bearbeiten, dass ich einen Befehl als sudo ausführen kann, ohne mein Kennwort eingeben zu müssen. Es gibt jedoch eine Möglichkeit, ein Programm von allen Benutzern einer Gruppe vollständig ohne sudo ausführen zu lassen. (Die Programme, die ich ausführen möchte, sind "mount" und "umount").

w4etwetewtwet
quelle
Was ist dein Betriebssystem? Versuchen Sie, eine NTFS-Partition, eine EXT-Partition oder ein optisches Laufwerk bereitzustellen?
Nate

Antworten:

13

Angenommen, ich wollte eine Gruppe von Benutzern hinzufügen, die ausgeführt werden dürfen mountund umountkeine Kennwörter haben. Also möchte ich zuerst eine Gruppe namens "anyname" hinzufügen

sudo groupadd anyname

Als nächstes müssen wir die bearbeiten /etc/groupund die Benutzer hinzufügen

anyname:x:407:

wird vorhanden sein, daher Benutzer anhängen, die Sie durch Kommas getrennt hinzufügen möchten.

anyname:x:407:user1,user2,...

Jetzt müssen wir sudo so konfigurieren, dass Mitglieder der Gruppe "anyname" die Befehle mountund tatsächlich aufrufen umountkönnen.

Sie müssen nur die folgenden Zeilen zu / etc / sudoers hinzufügen

%anyname ALL=NOPASSWD: /sbin/mount, /sbin/umount

Jetzt werde sudo mountich nicht nach dem Passwort fragen, aber da es die ganze Zeit schmerzhaft ist, sudo zu tippen, können wir es vermeiden, indem wir Folgendes tun:

Ich kann das folgende Skript mit dem Namen "/ usr / bin / mount" (und ein ähnliches Skript für umount) erstellen.

#! /bin/sh
sudo /sbin/mount $*

Um dies etwas sicherer zu machen, möchten wir möglicherweise den Besitz dieser Skripte in die Gruppe "anyname" ändern.

chgrp anyname /usr/bin/mount /usr/bin/umount

und machen Sie sie dann nur für die Gruppe "anyname" ausführbar.

chmod g+x /usr/bin/mount  /usr/bin/umount

BEARBEITEN : Abhängig vom verwendeten Betriebssystem überprüfen Sie bitte, wo sich die Befehle mount und umount befinden. Möglicherweise befindet es sich in / bin / anstelle von /sbin. Möglicherweise müssen Sie die erforderlichen Änderungen vornehmen

WICHTIG : Übrigens, führen Sie das Skript nicht auf Arch-basierten Systemen aus, auf denen alle Bin-Ordner miteinander verknüpft sind.

Stormvirux
quelle
1
Vielen Dank. Ich habe tatsächlich eine globale .bashrc implementiert, die eine Funktions-Mount enthält, die wie folgt aussieht: mount {sudo mount $ *}
w4etwetewtwet