User Import aus Textdatei
Hallo Miteinander!
Ich möchte in Linux einige User automatisiert erstellen bzw. importieren.
Dazu habe ich eine Textdatei, welche aus zwei Spalten besteht. In der ersten ist der Username in der zweiten das Passwort. (Fragt nicht, ist von meinem "Vorgänger")
Für die User soll ein Homeverzeichnis angelegt werden und es soll allen die /bin/false zugewiesen werden.
Wie löse ich das am besten?
Gruß Speedy
Ich möchte in Linux einige User automatisiert erstellen bzw. importieren.
Dazu habe ich eine Textdatei, welche aus zwei Spalten besteht. In der ersten ist der Username in der zweiten das Passwort. (Fragt nicht, ist von meinem "Vorgänger")
Für die User soll ein Homeverzeichnis angelegt werden und es soll allen die /bin/false zugewiesen werden.
Wie löse ich das am besten?
Gruß Speedy
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 229797
Url: https://administrator.de/contentid/229797
Ausgedruckt am: 22.11.2024 um 21:11 Uhr
4 Kommentare
Neuester Kommentar
Hi Speedy!
Erstmal der obligatorische Hinweis: Linux Benutzer erstellen
Schau mal, sowas könnte was sein: Create Users from CSV Stammt aus der oben aufgeführten Suche
Und gucke mal, hier werden z.B. User mit Eingabeaufforderung erstellt: Kommt auch aus der obigen Suche
Das Einlesen aus einer CSV ist in den ersten Google-Links in mehreren Varianten beschrieben.
Beste Grüße
Dominique
Erstmal der obligatorische Hinweis: Linux Benutzer erstellen
Schau mal, sowas könnte was sein: Create Users from CSV Stammt aus der oben aufgeführten Suche
Und gucke mal, hier werden z.B. User mit Eingabeaufforderung erstellt: Kommt auch aus der obigen Suche
#!/bin/bash
# Script to add a user to Linux system
if [ $(id -u) -eq 0 ]; then
read -p "Enter username : " username
read -s -p "Enter password : " password
egrep "^$username" /etc/passwd >/dev/null
if [ $? -eq 0 ]; then
echo "$username exists!"
exit 1
else
pass=$(perl -e 'print crypt($ARGV, "password")' $password)
#Der eigentliche Kram passiert hier:
useradd -m -p $pass $username
[ $? -eq 0 ] && echo "User has been added to system!" || echo "Failed to add a user!"
fi
else
echo "Only root may add a user to the system"
exit 2
fi
Beste Grüße
Dominique
Hallo Speedy,
Ich bin leider kein Shell-Guru. Man versucht aber dennoch gerne zu helfen, wo man könnte.
Ist also ungetestet, könnte aber was werden.
Inwiefern verschluckt sich Linux mit den Sonderzeichen?
Grüße
Dominique
Zitat von @speedy-luis:
while read a; do awk -F';' '{printf "useradd -m -p %s %s\n", $1, $2}'; done < /Pfad/Datei.csv
Vielleicht hat mir noch jemand einen Tipp.
könntest du soetwas meinen?while read a; do awk -F';' '{printf "useradd -m -p %s %s\n", $1, $2}'; done < /Pfad/Datei.csv
Vielleicht hat mir noch jemand einen Tipp.
#!/bin/bash
USERFILE=/Pfad/Datei.csv
OLDIFS=$IFS
IFS=,
[ ! -f $INPUT ] && { echo "Datei $USERFILE nicht vorhanden."; exit 99; }
while read name passwort
do
adduser name --shell /bin/bash
echo passwort | passwd uname --stdin
done < $INPUT
IFS=$OLDIFS
Ist also ungetestet, könnte aber was werden.
Inwiefern verschluckt sich Linux mit den Sonderzeichen?
Grüße
Dominique