
đ Aussi en: English · Deutsch · Español
Vous faites tourner une instance Nextcloud et vous voulez crĂ©er des utilisateurs en masse, comme un vrai sysadmin ? Voici une solution 100 % shell pour crĂ©er des utilisateurs Ă partir d’un fichier CSV, les affecter Ă des groupes (mĂȘme plusieurs) et vous sentir le patron pendant ce temps.
đŠ PrĂ©requis
- Un accĂšs SSH Ă votre serveur Nextcloud
- Un accĂšs en ligne de commande Ă
occ(situĂ© Ă la racine de votre installation Nextcloud, par ex./var/www/html/nextcloud) - Votre fichier CSV, prĂȘt Ă l’emploi
đ Format du fichier CSV
Pas d’en-tĂȘte, uniquement des donnĂ©es brutes. Format :
username,password,Display Name,Group1;Group2;Group3Exemple :
next001,secret123,Max Mustermann,Vorstand;Mitglieder
next002,test456,Lisa Beispiel,Trainer
next003,pass789,Peter Test,Trainer;Mitgliederđ ïž Le script Bash : create_users_with_groups.sh
<#!/bin/bash
CSV_FILE="benutzer.csv" # Path to your CSV file
cd /var/www/html/nextcloud || exit 1
# Read file line by line
while IFS=',' read -r username password displayname groups_raw; do
# Skip empty or malformed lines
if [[ -z "$username" || -z "$password" || -z "$displayname" ]]; then
echo "â ïž Skipping invalid or empty line: $username, $displayname"
continue
fi
echo "â¶ïž Creating user: $username ($displayname)"
# Export password into environment
export OC_PASS="$password"
# Use -E to preserve environment for www-data
sudo -E -u www-data php occ user:add --password-from-env "$username" --display-name "$displayname"
USER_EXISTS=$?
if [ $USER_EXISTS -ne 0 ]; then
echo "â Failed to create user '$username'. Skipping group assignment."
continue
fi
# Split group list on semicolon (;) and trim whitespace
IFS=';' read -ra groups <<< "$groups_raw" for group in "${groups[@]}"; do group=$(echo "$group" | xargs) # Trim spaces if [ -n "$group" ]; then echo " â Adding $username to group '$group'" # Create group if not already existing (ignore stderr) sudo -u www-data php occ group:add "$group" 2>/dev/null
# Add user to group
sudo -u www-data php occ group:adduser "$group" "$username"
fi
done
done < "$CSV_FILE"/code>âïž Utilisation
chmod +x create_users_with_groups.sh
./create_users_with_groups.shVĂ©rifiez que votre fichier benutzer.csv se trouve dans le mĂȘme rĂ©pertoire, ou adaptez le chemin en consĂ©quence.
đ Remarques
- Les mots de passe sont transmis de façon sĂ©curisĂ©e via des variables d’environnement â ni par la ligne de commande, ni par stdin
- Les groupes sont créés automatiquement s’ils n’existent pas encore
- Le point-virgule (
;) sĂ©pare plusieurs groupes pour un mĂȘme utilisateur
đ§ Astuce bonus
Envie de passer en mode automatisation totale ? IntĂ©grez ce script Ă vos scripts d’onboarding, ou provisionnez vos utilisateurs via LDAP et rĂ©servez-le aux comptes spĂ©ciaux ou temporaires.
𫥠SuccÚs débloqué : gloire du sysadmin
Et voilĂ â vos utilisateurs sont en ligne, rangĂ©s dans leurs groupes et prĂȘts Ă nextclouder comme des pros. Vous voulez mettre en place des Group Folders et appliquer des rĂšgles de droits ? Faites-moi signe â je me ferai un plaisir d’y plonger en mode geek.






