Bash-Anlegen-von-Usern

Aus Nicos Spickzettel
Zur Navigation springen Zur Suche springen

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>