Bash-Anlegen-von-Usern: Unterschied zwischen den Versionen
Nico (Diskussion | Beiträge) Splitten von String in einer Variable |
Nico (Diskussion | Beiträge) |
||
| Zeile 48: | Zeile 48: | ||
== Splitten von String in einer Variable == | == Splitten von String in einer Variable == | ||
<nowiki> | <nowiki/> | ||
#!/bin/bash | #!/bin/bash | ||
for EMAIL in $(cat ist-postfach.txt) | for EMAIL in $(cat ist-postfach.txt) | ||
| Zeile 63: | Zeile 63: | ||
../bin/sync-postbox.sh ${LOGIN_OLD} ${PASS_OLD} ${PASS_NEW} ${EMAIL_NEW} | ../bin/sync-postbox.sh ${LOGIN_OLD} ${PASS_OLD} ${PASS_NEW} ${EMAIL_NEW} | ||
done | done | ||
</nowiki> | |||
Version vom 18. Juli 2023, 16:25 Uhr
Bearbeiten von „Bash-Anlegen-von-Usern"
Anlegen von User inkl. DocumentRoot und symlinks
#!/bin/bash
BASEDIR=/var/www/servers/clicklabs
for IN in $(cat t|awk -F\. '{print $2}')
do
echo $IN;
HOMEDIR="${BASEDIR}/www.$IN.de/export"
DOCUMENT_ROOT="/${BASEDIR}/www.$IN.de/htdocs"
mkdir $HOMEDIR
useradd -g 33 -d ${BASEDIR}/www.$IN.de/export -s /bin/false $IN
PW=$(pwgen -s -1)
echo $PW > /tmp/password.txt
echo $PW >> /tmp/password.txt
passwd $IN < /tmp/password.txt
cd ${DOCUMENT_ROOT}
ln -s ../export
echo User $IN mit Passwort $PW und HOMEDIR $HOMEDIR ist anglegt
echo Symlink unter DocumentRoot $DOCUMENT_ROOT ist anelegt
echo "- - - "
done
</nowiki> aus der Datei "t" werden die user aus der datei www.muster.de extrahiert und dann in einer For-Schleife verarbeitet.
Datei einlesen
#!/bin/bash
# Set the path to the input file
INPUT_FILE="userliste-mit-alt-und-neuem-passwort.txt"
# Loop through each line in the input file
while IFS=$'\t' read -r field1 field2 field3 field4; do
# Print the values of each field
echo "Field 1: ${field1}"
echo "Field 2: ${field2}"
echo "Field 3: ${field3}"
echo "Field 4: ${field4}"
done < "${INPUT_FILE}"
Splitten von String in einer Variable
#!/bin/bash
for EMAIL in $(cat ist-postfach.txt)
do
echo $'\t'$EMAIL
LINE=$(grep ${EMAIL} userliste-mit-alt-und-neuem-passwort.txt)
read -r EMAIL_NEW PASS_OLD PASS_NEW field4 <<< "$LINE"
LOGIN_OLD=${EMAIL_NEW%@rotary.de}
# Print the values of each field
echo "Field 1: ${LOGIN_OLD}"
echo "Field 2: ${PASS_OLD}"
echo "Field 3: ${PASS_NEW}"
echo "Field 4: ${EMAIL_NEW}"
../bin/sync-postbox.sh ${LOGIN_OLD} ${PASS_OLD} ${PASS_NEW} ${EMAIL_NEW}
done
</nowiki>