# Beispiel 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.&#x20;

```bash
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](https://docs.saltproject.io/en/latest/ref/modules/all/salt.modules.ssh.html) in der Salt Doku.

{% hint style="success" %}
Sollte noch kein SSH-Schlüsselpaar existieren, legen Sie diese beispielsweise so an:\
`ssh-keygen -t ed25519 -P "" -C root@salt-master.local`
{% endhint %}

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"
```

![Benutzer inkl. SSH-Key, Shell und Sudo-Regel anlegen.](https://3666581685-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-LFRZJPZX11pwB1staCp%2Fuploads%2FG3u5re6Pl2TXQiwVFHkM%2Fimage.png?alt=media\&token=f4c8153d-6360-4b5e-a8cd-ac6e4879d596)

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](https://thorstenkramm.gitbook.io/saltstack/testumgebung) verwenden, werden die SSH Logins fehlschlagen, weil in den Containern kein SSH Server läuft. Abhilfe schafft:

```
salt -C 'G@os_family:RedHat or G@os_family:SuSE' pkg.install openssh-server
salt -C 'G@os_family:RedHat or G@os_family:SuSE' service.start sshd
salt -G 'os_family:Debian' pkg.install ssh
```

🕵️‍♂️ Das Beispiel nutzt das sogenannte [Minion-Targeting](https://thorstenkramm.gitbook.io/saltstack/minions-adressieren), 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.
