Es scheitert aktuell noch daran, das Passwort für den neu angelegten SAMBA-User per Skript zu ändern.
Derzeit wird automatisch gemacht:
- User in Linux ändern, Bindestriche im Namen entfernen
Passwort setzen per bash klappt aber nicht, hier wird nur die Syntax ausgegeben von "smbpasswd" statt irgendwas zu machen
Homeverzeichnisse werden ebenfalls nicht umbenannt
Und da wären ja auch noch die gruppen, die so heißen wie die usernamen, diese müssen ebenfalls noch geändert werden, sehe ich gerade, oh je.....
Code
When run by root:
smbpasswd [options] [username]
otherwise:
smbpasswd [options]
options:
-L local mode (must be first option)
-h print this usage message
-s use stdin for password prompt
-c smb.conf file Use the given path to the smb.conf file
-D LEVEL debug level
-r MACHINE remote machine
-U USER remote username (e.g. SAM/user)
extra options when run by root or in local mode:
-a add user
-d disable user
-e enable user
-i interdomain trust account
-m machine trust account
-n set no password
-W use stdin ldap admin password
-w PASSWORD ldap admin password
-x delete user
-R ORDER name resolve order
Alles anzeigen
Hier das aktuelle Skript, was bis auf die automatische SAMBA-Passwort-Änderung schonmal funktioniert:
Bash
#!/bin/bash
# Alle Nutzer mit Homeverzeichnis ausgeben
grep /home /etc/passwd | cut -d: -f1 |
# Stück für Stück abarbeiten
while read -r line;
do
# Originalname anzeigen
echo "read original name : "$line
# Neuen Namen ermitteln indem Bindestrich durch Nichts ersetzt wird
newname=$(sed 's/-//g' <<< $line)
# Geänderten Namen ausgeben
echo "changing to : "$newname
# Passwort erzeugen
passwort=$newname$(($RANDOM % 8888 + 1111))
# Info ausgeben
echo "creating smbuser : $newname"
# SAMBA-User anlegen ohne Passwort
smbpasswd -a -n $newname
# Passwort für SAMBA-User setzen (klappt nicht!)
smbpasswd -a $newname $newname$passwort
# Informationen zu User und Passwort in Datei schreiben,
# Passwort ansonsten futsch
echo "Nutzer: $newname Passwort: $passwort" >> user.txt
# Info ausgeben
echo "write userdata in file user.txt"
# Linux-User umbenennen
usermod -l $newname $line
echo "renaming Linux username $line to $newname"
# Home-Verzeichnis umbenennen
echo "renaming home directory from /home/$line to /home/$newname"
mv /home/$ine /home/$newname
# Leerzeile für bessere Übersicht
echo " "
done
Alles anzeigen