GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Hinzufügen von Benutzern zu sudoers durch Shell-Skript

Nein, ein direktes Echo funktioniert nicht, Sie müssen es in einer Subshell ausführen. Versuchen Sie stattdessen Folgendes:

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


Sie könnten einfach echo (natürlich mit erhöhten Rechten) direkt zum /etc/sudoers Datei:

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

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

Oder für ein Skript:

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

Speichern Sie dann unter somefile.sh , chmod a+rx es und führen Sie sudo ./somefile.sh aus aus einem Terminalfenster.

Um mehrere Benutzer hinzuzufügen, ändern Sie das Skript wie folgt:

#!/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 sollten ebenfalls durch Leerzeichen getrennt werden.

Bearbeiten: Jappie Kirk weist zu Recht darauf hin, dass Sie sudo echo ... >> /etc/sudoers nicht direkt anrufen können weil die >> die Umleitung wird von der Shell gehandhabt, die zu diesem Zeitpunkt die Superuser-Privilegien fallen gelassen hat. Wenn Sie jedoch ein Skript ausführen, das echo ... >> /etc/sudoers enthält und das Skript selbst Superuser-Rechte hat, sollte alles gut funktionieren.


Linux
  1. Defekte Sudoers-Datei reparieren – sudo:Analysefehler in /etc/sudoers in der Nähe von Zeile 21 [Ubuntu]

  2. Wie wird /etc/motd aktualisiert?

  3. „sudo:/etc/sudoers ist weltweit beschreibbar“ – So korrigieren Sie die Berechtigungen der sudoers-Datei

  4. Senden einer E-Mail von einem Linux-Shell-Skript

  5. Umgehen des in /etc/passwd angegebenen Befehls/Skripts

So deaktivieren Sie „sudo su“ für Benutzer in der sudoers-Konfigurationsdatei

Regex-Muster zum Bearbeiten der /etc/sudoers-Datei

Zeile mit Shell-Skript an die Datei /etc/hosts anhängen

Fügen Sie einen Sudoer nicht interaktiv von der Befehlszeile aus hinzu

Deaktivieren Sie das Feedback bei der Eingabe des Passworts an einer sudo-Eingabeaufforderung

So schließen Sie alle Dateien aus einem Verzeichnis in Shell-Skript ein (in diesem Fall /etc/init.d/iptables)