Erstellt und getestet wurde das ganze unter Nextcloud 11, sollte aber auch mit der Owncloud funktionieren.
Problem : Wir setzten hier produktiv eine Nextcloud ein, es kommt immer wieder vor das ich einige Benutzer für Kunden oder Projekte anlegen muss. Hier ist das dann immer gleich eine Gruppe von 10 - 20 Usern. Um mir das Leben zu erleichtern habe ich ein kleines Skript geschrieben das mir eine Textdatei ausliest und Benutzer anlegt.
Lösung : Als erstes muss eine Textdatei mit den ganzen Benutzern angelegt werden. Eine Zeile = ein Benutzer. z.B. users.txt
Vorname Nachname;v.nachname;Gruppe
Vorname Nachname1;v.nachname1;Gruppe1
Vorname Nachname2;v.nachname2;Gruppe2
Auf dem System muss
pwgen installiert sein. Kann unter debian mit dem Befehl installiert werden.
apt-get install pwgen
Natürlich müssen alle Variablen im Skript eurem Server angepasst werden.
Dieses Skript erstellen und ausführbar (chmod u+x
skriptname) machen.
#!/bin/bash
var_datum=$(date +"%Y%m%d")
var_user_file="users.txt"
var_apache_user=www-data
var_path_nextcloud=/var/www/cloud
var_result_file="${var_datum}_user_create.txt"
while read -r line
do
var_password=$(pwgen 12 -c -n -N 1)
set -e
export OC_PASS=$var_password
var_username=$(echo "${line}" | cut -d";" -f2)
var_name=$(echo "${line}" | cut -d";" -f1)
var_group=$(echo "${line}" | cut -d";" -f3)
su -s /bin/sh ${var_apache_user} -c "php ${var_path_nextcloud}/occ user:add ${var_username} --password-from-env --group='${var_group}' --display-name='${var_name}'"
echo "Benutzer ${var_username} wurde mit Passwort ${var_password} erstellt" >> "${var_result_file}"
done < $var_user_file
Wenn alles funktioniert hat müsste ein Output kommen der ca. so aussieht.
Danach findet ihr eine Datei
DATUM_users_created.txt in der alle Benutzer mit Password aufgeführt sind.
Leider ist es noch nicht möglich (Stand 03/17) Benutzer mit E-Mail Adresse zu hinterlegen hier muss dann entweder noch ein sql query abgefeuert werden oder manuell im Backend nachpflegen.
Mehr Informationen zu occ :
Using OCC Command on Nextcloud 11