Problem:
Ich muss eine Datei erstellen, in der Benutzer und Kennwörter gespeichert sind. Aber mein Skript speichert nur das Passwort von user1.Mein Skript funktioniert nicht richtig
Ich erkläre mich besser mit einem Beispiel. Wenn die zwei Benutzer mit einem zufälligen Kennwort erstellt werden, weist das Skript beiden Benutzern dasselbe Kennwort zu.
user1: Eehei5oo8ohz:/home/user1:/bin/bash
user2: Eehei5oo8ohz:/home/user2:/bin/bash
Wann sollte das Ergebnis meiner Skript sein so etwas wie dieses:
user1: Eehei5oo8ohz:/home/user1:/bin/bash
user2: Kln2149sdpja:/home/user2:/b in/bash
My script:
Dies ist das Skript die ich verwendet habe:
#!/bin/bash
##Checking if you are root.##
if [ `id -u` -ne 0 ]
then
echo "you dont are a root user."
exit 1
fi
x=`pwgen 12 1`
for i in {1..2}
do
echo "user$i:@:/home/user$i:/bin/bash" >> users.txt
done
for j in $x
do
sed -i "s/@/$j/" users.txt
done
newusers users.txt
users=`cat users.txt`
login=`echo $i | cut -d: -f1` #username
pass=`cat pass.txt | tr " " _`
password1=`echo $i | cut -d: -f2` #password
for in $users
do
echo "$login:$password1" | chpasswd -m
done
rm users.txt
rm pass.txt
ich hoffe ich habe erklärt, richtig und schätzen alle Hilfe.
'sed -i" s/x/$ i/"Benutzer.txt' ersetzt alle' x' Zeichen, nicht nur die erste. Anstatt das 'x' nachher zu ersetzen, erzeuge und addiere einfach das Passwort beim ersten Mal. –
Sie können Ihr Skript verbessern. Warum erstellen Sie nicht das Passwort und den Benutzereintrag in derselben Iteration in der ersten Schleife? – Jdamian
@Jdamian Danke für Ihre Hilfe aber , Wie bekomme ich es nicht den gleichen Schlüssel wiederholen ?. Ich habe den Post mit meinem neuen Code bearbeitet – Randomuser1204281