it-swarm.com.de

Hinzufügen von Benutzern zu Sudoern über ein Shell-Skript

Ist es möglich, Benutzer über ein Shell-Skript zur Sudoers-Datei hinzuzufügen? Ich habe mich umgesehen und finde immer noch nichts.

23
nickw444

Sie können einfach echo (natürlich mit erhöhten Rechten) direkt in die /etc/sudoers-Datei:

Sudo -i
echo 'nickw444  ALL=(ALL:ALL) ALL' >> /etc/sudoers
#             ^^
#             tab

(Beachten Sie das Tabulatorzeichen zwischen dem Benutzernamen und der ersten ALL)

Oder für ein Skript:

#!/bin/bash
# Run me with superuser privileges
echo 'nickw444  ALL=(ALL:ALL) ALL' >> /etc/sudoers

Dann speichern Sie es unter somefile.sh, chmod a+rx und führen Sie Sudo ./somefile.sh in einem Terminalfenster aus.

Um mehrere Benutzer hinzuzufügen, ändern Sie das Skript in dieses.

#!/bin/bash

while [[ -n $1 ]]; do
    echo "$1    ALL=(ALL:ALL) ALL" >> /etc/sudoers;
    shift # shift all parameters;
done

Führen Sie dann das Skript wie folgt aus (vorausgesetzt, Sie haben es als addsudousers.sh gespeichert):

Sudo ./addsudousers.sh bob joe jeff

das heißt, durch Leerzeichen getrennt.

So lesen Sie die Namen aus einer Datei:

[email protected] ~ $ Sudo ./addsudousers.sh `cat listofusers.txt`

listofusers.txt sollte auch durch Leerzeichen getrennt sein.

Edit: Jappie Kirk weist mit Recht darauf hin , dass Sie Sudo echo ... >> /etc/sudoers nicht direkt aufrufen können, da die >>-Umleitung von der Shell ausgeführt wird, die bis dahin die Superuser-Berechtigungen gelöscht hat. Wenn Sie jedoch ein Skript ausführen, das echo ... >> /etc/sudoers enthält und das Skript selbst über Superuser-Berechtigungen verfügt, sollte alles einwandfrei funktionieren.

41
wchargin

Nein, ein gerades Echo wird nicht funktionieren, Sie müssen es in einer Subshell ausführen. Versuchen Sie dies stattdessen:

Sudo sh -c "echo \"group ALL=(user) NOPASSWD: ALL\" >> /etc/sudoers"

9
Apollo

Es gibt auch die Gruppe Sudo, und Sie können Benutzer hinzufügen (für allgemeine Konfigurationen von /etc/sudoers).

auf RedHat Based Distributionen verwenden:

su - root

und geben Sie Ihr Passwort ein, dann:

echo 'YOURUSERNAME ALL=(ALL:ALL) ALL' >> /etc/sudoers

um den Benutzer in der Sudoers-Datei hinzuzufügen.

1
Mahdi Rashidi

Melden Sie sich als root an Ihrem Computer an. Der Root-Benutzer ist der einzige Benutzer, der das Recht hat, einen neuen Benutzer hinzuzufügen.

Nachdem Sie sich angemeldet haben, können Sie jetzt die folgenden Befehle ausführen:

  1. Erstellen Sie einen neuen Benutzer.

    adduser [Benutzername]

  2. Passwort zum Benutzer hinzufügen

    passwd [Benutzername]

  3. Erteilen Sie dem Benutzer die Berechtigung root Bearbeiten Sie die visudo-Datei durch einfaches Eingeben

    code hier eingeben

Suchen Sie die folgende Codezeile: Root ALL = (ALL) ALL

Dann fügen Sie diesen Code unten hinzu:

[username] ALL=(ALL) ALL

Den ursprünglichen Beitrag finden Sie auf diesem Link Centos 6 - Sudoers-Benutzer erstellen

0
Jur P

Einzeilig um Benutzer mit Passwort und in Sudo-Gruppe zu erstellen.

useradd -p $ (openssl passwd -1KENNWORT)BENUTZERNAME-s/bin/bash -G Sudo

0

Andere Antworten, z. B. das Laichen einer Subshell, funktionieren, können jedoch nicht funktionieren, wenn Sie Umgebungsvariablen verwenden möchten. Eine Alternative, die ich gefunden habe, hat für mich sehr gut gespielt:

echo "%<user>      ALL=(ALL) ALL" | Sudo tee -a /etc/sudoers > /dev/null

Im Nachhinein beträgt dies 20/20. Wenn Sie Sudoers über ein Skript und nicht über visudo ändern, würde ich dringend empfehlen, zuerst ein Backup mit den richtigen Dateiberechtigungen und Inhalten zu erstellen, da Sie ohne pkexec, physisch, den Zugriff auf alle Sudo-Rechte verlieren können Zugriff oder Neustart usw.

Sudo cp /etc/sudoers /etc/sudoers.bak
0
Luke Exton