Beispiel Benutzer anlegen

per Salt Modul Benutzer anlegen

Sehen Sie sich ein weiteres Beispiel an. Sie möchten einen Benutzer anlegen. Dazu geben auf der Kommandozeile des Salt-Masters den Befehl salt gefolgt von der Liste von Minions, -in diesem Fall sind es alle, gefolgt vom Modul an. Das Modul heißt user.add und es erwartet als Option den Namen des Benutzers, den sie anlegen möchten. Beispielsweise

salt '*' user.add <DEIN_NAME>

Nun möchten wir, dass im Home Verzeichnis des soeben angelegten Benutzers auch ein SSH-KEY hinterlegt wird, damit sich der Besitzer mit dem passenden privaten Schlüssel an diesem System als unprivilegierter Benutzer anmelden kann. Salt hat auch dafür ein fertiges Modul im Repertoire.

salt '*' ssh.set_auth_key <DEIN_NAME> <KEY> enc='ssh-ed25519' comment='name@domain.tld'
salt '*' ssh.set_auth_key thorsten "AAAAB3NzaC1yc2EAAAABI.....cow==" enc='ssh-rsa' comment='user@email.de'

📖 Weitere Informationen in der Salt Doku.

Sollte noch kein SSH-Schlüsselpaar existieren, legen Sie diese beispielsweise so an: ssh-keygen -t ed25519 -P "" -C root@salt-master.local

Und das letzte Beispiel zeigt, wie Sie für den soeben angelegten User die Standard-Shell ändern und sudo-Rechte vergeben.

salt '*' user.chshell <DEIN_NAME> /bin/bash
salt '*' file.write /etc/sudoers.d/<DEIN_NAME> "<DEIN_NAME> ALL=(ALL) NOPASSWD:ALL"

Salt verfügt momentan über ca. 300 Module, mit denen sie die Systeme fernsteuern können. Diese Module sind eine Abstraktionsschicht, sodass Sie einheitliche Kommandos verwenden können. Diese werden auf den gezeigten Betriebssystemen in die passenden Kommandos umgewandelt.

Testumgebung anpassen

Wenn Sie die hier beschriebene Testumgebung verwenden, werden die SSH Logins fehlschlagen, weil in den LXD Container kein SSH Server läuft. Abhilfe schafft:

salt -G 'os_family:Redhat' pkg.install openssh-server
salt -G 'os_family:Redhat' service.start sshd
salt -G 'os_family:Debian' pkg.install ssh

🕵️‍♂️ Das Beispiel nutzt das sogenannte Minion-Targeting, welches im nächsten Kapitel beschrieben wird. Da die Pakete für den SSH-Server unterschiedliche Namen haben, ja nach Distributionstyp, müssen Sie den korrekten Namen dem Modul pkg.install übergeben.

Last updated