nextcloud:administration:user-anlegen
Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen der Seite angezeigt.
| Beide Seiten, vorherige ÜberarbeitungVorherige ÜberarbeitungNächste Überarbeitung | Vorherige Überarbeitung | ||
| nextcloud:administration:user-anlegen [2026/07/01 05:29] – gelöscht - Externe Bearbeitung (Datum unbekannt) 127.0.0.1 | nextcloud:administration:user-anlegen [2026/07/05 07:11] (aktuell) – ↷ Seite von nextcloud:administration:administration:user-anlegen nach nextcloud:administration:user-anlegen verschoben jrberndt | ||
|---|---|---|---|
| Zeile 1: | Zeile 1: | ||
| + | ====== Skript: neuen-benutzer-anlegen-DCB.sh ====== | ||
| + | ===== Funtion ===== | ||
| + | Das Skript **neuen-benutzer-anlegen-DCB.sh** dient zum einfachen Anlegen eines neuen Benutzers in einer Nextcloud-Installation.\\ Nur der root (der System-Admin) darf es verwenden | ||
| + | |||
| + | ==== Parameter ==== | ||
| + | * Das Skript fragt interaktiv nach den Benutzerdaten: | ||
| + | * Vollständiger Name (Display-Name) | ||
| + | * E-Mail-Adresse | ||
| + | * Benutzername | ||
| + | * (Optional) Gruppe – falls nicht angegeben, wird eine Standardgruppe verwendet | ||
| + | ==== Prüfungen ==== | ||
| + | * Es prüft, ob der Benutzername oder die E-Mail-Adresse bereits existieren.\\ Es sollen keine doppelten E-MAil-Adressen in der ganzen Nextcloud auftreten. | ||
| + | * Falls die angegebene Gruppe nicht existiert, wird die Standardgruppe verwendet. | ||
| + | * Über dieses Skript darf **die Admin - Gruppe NICHT** vergeben werden!\\ Sollte jemand Admin-Berechtigungen benötigen , dann muß ein bestehender Admin dass im Webinterface eintragen. | ||
| + | * Der neue Benutzer erhält eine E-Mail von Nextcloud, um ein eigenes Passwort zu setzen. | ||
| + | |||
| + | |||
| + | ===== Code ===== | ||
| + | ++++ neuen-benutzer-anlegen-DCB.sh | | ||
| + | <code bash> | ||
| + | #!/bin/bash | ||
| + | usage=$(cat << HEREDOC | ||
| + | ----------------------------------------------------------------------- | ||
| + | | ||
| + | | ||
| + | | ||
| + | |||
| + | | ||
| + | |||
| + | update: | ||
| + | user | ||
| + | user: | ||
| + | user: | ||
| + | user: | ||
| + | user: | ||
| + | user: | ||
| + | user: | ||
| + | user: | ||
| + | user: | ||
| + | user: | ||
| + | user: | ||
| + | user: | ||
| + | user: | ||
| + | user: | ||
| + | user: | ||
| + | user: | ||
| + | user: | ||
| + | user: | ||
| + | user: | ||
| + | |||
| + | ## funktionierender Weg um den User anzulegen ################ | ||
| + | sudo -u www-data php occ user:add --generate-password --display-name " | ||
| + | |||
| + | 1. Es soll kein Passwort vorgegeben werden | ||
| + | |||
| + | ----------------------------------------------------------------------- | ||
| + | HEREDOC | ||
| + | ) | ||
| + | debug=0 | ||
| + | |||
| + | |||
| + | #### nur root darf diese Skript ausführen ##### | ||
| + | [[ $(id -u) -ne 0 ]] && { echo -e "root Privilegien erforderlich!\n --> ${BASH_SOURCE## | ||
| + | |||
| + | |||
| + | # Konfiguration – BITTE ANPASSEN! | ||
| + | NEXTCLOUD_PATH="/ | ||
| + | OCC=" | ||
| + | NEXTCLOUD_URL=" | ||
| + | JSON_CONFIG=" | ||
| + | |||
| + | STANDARD_GRUPPE=" | ||
| + | |||
| + | aROT=" | ||
| + | eROT=" | ||
| + | |||
| + | |||
| + | ## wenn beim letzen Mal etwas schief gegangen war dann | ||
| + | ## gibt es noch die config.json um nicht alles wieder eingeben zu müssen | ||
| + | ## | ||
| + | if [[ -e $JSON_CONFIG ]];then | ||
| + | [[ $debug -ne 0 ]] && echo -e " | ||
| + | # Werte aus config.json auslesen und in Variablen speichern | ||
| + | FULLNAME=$(jq -r ' | ||
| + | EMAIL=$(jq -r ' | ||
| + | USERNAME=$(jq -r ' | ||
| + | GROUP=$(jq -r ' | ||
| + | |||
| + | fi | ||
| + | |||
| + | # Benutzerdaten interaktiv abfragen | ||
| + | echo "=== Neuen Nextcloud-Benutzer anlegen ===" | ||
| + | read -p " | ||
| + | [[ -n $input ]] && FULLNAME=$input | ||
| + | |||
| + | read -p " | ||
| + | [[ -n $input ]] && EMAIL=$input | ||
| + | |||
| + | read -p " | ||
| + | [[ -n $input ]] && USERNAME=$input | ||
| + | |||
| + | read -p " | ||
| + | [[ -n $input ]] && GROUP=$input || GROUP=$STANDARD_GRUPPE | ||
| + | |||
| + | ## Gruppe soll nicht leer sein | ||
| + | if [[ -z $GROUP ]];then | ||
| + | GROUP=" | ||
| + | fi | ||
| + | |||
| + | if [[ $GROUP == " | ||
| + | echo -e " | ||
| + | GROUP=$STANDARD_GRUPPE | ||
| + | fi | ||
| + | |||
| + | ## in die config schreiben falls etwas nicht klappt | ||
| + | jq -n \ | ||
| + | --arg fullname " | ||
| + | --arg email " | ||
| + | --arg username " | ||
| + | ' | ||
| + | > $JSON_CONFIG | ||
| + | |||
| + | |||
| + | |||
| + | ## prüfen ob die gewünchte Gruppe existiert | ||
| + | if [[ -z $($OCC group:list |grep " | ||
| + | echo -e " | ||
| + | GROUP=$STANDARD_GRUPPE | ||
| + | fi | ||
| + | |||
| + | |||
| + | # Optional: Ausgabe zur Kontrolle | ||
| + | if [[ $debug -ne 0 ]];then | ||
| + | echo -e "" | ||
| + | echo -e " | ||
| + | echo -e " | ||
| + | echo -e " | ||
| + | echo -e " | ||
| + | fi | ||
| + | |||
| + | |||
| + | |||
| + | ## die vorhandenen Emails auslesen | ||
| + | usernamen=$($OCC user:list |sed 's/ \+//g; s/ | ||
| + | [[ $debug -ne 0 ]] && echo -e " | ||
| + | |||
| + | declare -i fehler=0 | ||
| + | for user in $usernamen; | ||
| + | do | ||
| + | |||
| + | [[ $debug -ne 0 ]] && echo -e " | ||
| + | user_json=$(echo " | ||
| + | [[ $debug -ne 0 ]] && echo -e " | ||
| + | if [[ $user == $USERNAME ]];then | ||
| + | echo -e " | ||
| + | ((fehler++)) | ||
| + | fi | ||
| + | | ||
| + | if [[ $(echo " | ||
| + | echo -e " | ||
| + | ((fehler++)) | ||
| + | fi | ||
| + | echo | ||
| + | done | ||
| + | |||
| + | |||
| + | if [[ $fehler -ne 0 ]];then | ||
| + | echo -e " | ||
| + | exit | ||
| + | fi | ||
| + | |||
| + | |||
| + | if ! $OCC user:add --generate-password --display-name=" | ||
| + | echo " | ||
| + | exit 1 | ||
| + | else | ||
| + | x=x | ||
| + | [[ -e $JSON_CONFIG ]] && rm $JSON_CONFIG | ||
| + | fi | ||
| + | |||
| + | echo -e "" | ||
| + | $OCC user:info $USERNAME --output json_pretty | ||
| + | echo -e " | ||
| + | |||
| + | </ | ||
| + | ++++ | ||
