Lokaler Benutzer - offline arbeiten - "localuser"

Hallo,

wer den lokalen Benutzer testen möchte, kann den Code einfach in den Postsync kopieren.
Für alle, die Ubuntu 14.10 oder höher verwenden: Man muss wohl erst rc.local wieder aktivieren, damit systemd diese boot-Skripte ausführt:
https://wiki.ubuntuusers.de/rc.local/

Update:

Ich habe noch einige Einstellungen verändert:

  • Internetzugang immer unterbinden:
    echo iptables -A OUTPUT -m owner --uid-owner $localuser -j DROP >> /mnt/$localuserpath/boot/$localuser.sh

  • Symlink zum Home auf dem Desktop erstellen
    echo '[ $HOME = /home/'$localuser' ] && ln -s "$HOME/Home_auf_Server" "$HOME/Desktop/Home" || exit 0' >> /mnt/$localuserpath/autostart/$localuser-cleanhas.sh


Hier die Datei zum Download:
postsync-keinnetz-ohne_case.txt (5,6 KB)

Hier der Inhalt:
########################################################################################################
# localuser - Lokale Benutzer anlegen ##################################################################
########################################################################################################
# Postsync-Skript für LINBO
# Getestet unter Linux Mint 17.0 Xfce 64bit (Ubuntu 14.04)
# Stefan Senft
# 2017-08-30
# GPL v3

### Verzeichnis für Dateien (für alle lokalen Benutzer) ################################################
localuserpath=var/localuser                     # Pfad zu den Skripten; Standard: var/localuser (kein / am Anfang)
localuserdata=var/localuserdata                 # Pfad zu den lokalen Ordnern Home_auf_Server; Standard: var/localuserdata (kein / am Anfang)

### Lokaler Benutzer Nr.1 ##############################################################################
# Anlegen des lokalen Benutzers Nr.1
###case###usertype="${HOSTNAME:7:1}"
###case###case $usertype in
###case### i)
###case###  echo Image-PC: Kein lokaler Benutzer wird angelegt.
###case###   ;;
###case### o)
  # Benutzerdaten
  localuser=keinnetz                             # Benutername - Standard ist keinnetz
  localuserpsw=sakvXOddUgl9M                     # Kennwort verschlüsselt mit perl -e "print crypt('keinnetz','sa');" - Standard ist keinnetz
  localuserdel=90                                # Anzahl Tage nach denen unbenutzte Dateien aus Home gelöscht werden - Standard ist 90
  localuserbasedir=home                          # Basis für Homeverzeichnis - Standard: home
  # Info bei Postsync
  echo Ein lokaler Benutzer wird angelegt: $localuser
  # Ordner erstellen
  [ ! -d "/mnt/$localuserpath" ] && mkdir /mnt/$localuserpath
  [ ! -d "/mnt/$localuserpath/autostart" ] && mkdir /mnt/$localuserpath/autostart
  [ ! -d "/mnt/$localuserpath/boot" ] && mkdir /mnt/$localuserpath/boot
  [ ! -d "/mnt/$localuserdata" ] && mkdir /mnt/$localuserdata
  # Skript erstellen zum Anlegen des lokalen Benutzers
  echo '#!/bin/bash' > /mnt/$localuserpath/boot/$localuser.sh
  echo rm -rf /home/$localuser >> /mnt/$localuserpath/boot/$localuser.sh
  echo useradd --create-home --skel /home/linuxadmin --base-dir /$localuserbasedir --password $localuserpsw $localuser >> /mnt/$localuserpath/boot/$localuser.sh
  echo sleep 3 >> /mnt/$localuserpath/boot/$localuser.sh
  echo rm -rf /home/$localuser/Home_auf_Server >> /mnt/$localuserpath/boot/$localuser.sh
  echo mkdir /$localuserdata/$localuser >> /mnt/$localuserpath/boot/$localuser.sh
  echo ln -s /$localuserdata/$localuser /home/$localuser/Home_auf_Server >> /mnt/$localuserpath/boot/$localuser.sh
  echo chmod -R 700 /$localuserdata/$localuser >> /mnt/$localuserpath/boot/$localuser.sh
  echo chown -R $localuser:$localuser /$localuserdata/$localuser >> /mnt/$localuserpath/boot/$localuser.sh
  echo iptables -A OUTPUT -m owner --uid-owner $localuser -j DROP >> /mnt/$localuserpath/boot/$localuser.sh
  echo 'exit 0' >> /mnt/$localuserpath/boot/$localuser.sh
  chmod 744 /mnt/$localuserpath/boot/$localuser.sh
  # rc.local-Eintrag erstellen für Anlegeskript
  sed -i "/\/boot\/$localuser.sh/d" /mnt/etc/rc.local
  sed -i "s#exit.*#/$localuserpath/boot/$localuser.sh#" /mnt/etc/rc.local
  echo 'exit 0' >> /mnt/etc/rc.local
  # Skript erstellen zur Bereinigung der Homes der lokalen Benutzer nach Tagen
  echo '#!/bin/bash' > /mnt/$localuserpath/autostart/$localuser-cleanhas.sh
  echo '[ $HOME = /home/'$localuser' ] && ln -s "$HOME/Home_auf_Server" "$HOME/Desktop/Home" || exit 0' >> /mnt/$localuserpath/autostart/$localuser-cleanhas.sh
  echo 'datsek=$(date +%Y-%m-%d-%H%M%S)' >> /mnt/$localuserpath/autostart/$localuser-cleanhas.sh
  echo count=0 >> /mnt/$localuserpath/autostart/$localuser-cleanhas.sh
  echo while ! test -w /$localuserdata/$localuser >> /mnt/$localuserpath/autostart/$localuser-cleanhas.sh
  echo do >> /mnt/$localuserpath/autostart/$localuser-cleanhas.sh
  echo sleep 1 >> /mnt/$localuserpath/autostart/$localuser-cleanhas.sh
  echo count=\`expr '$count' + 1\` >> /mnt/$localuserpath/autostart/$localuser-cleanhas.sh
  echo 'if test $count -eq 60' >> /mnt/$localuserpath/autostart/$localuser-cleanhas.sh
  echo then exit 1 >> /mnt/$localuserpath/autostart/$localuser-cleanhas.sh
  echo fi >> /mnt/$localuserpath/autostart/$localuser-cleanhas.sh
  echo done >> /mnt/$localuserpath/autostart/$localuser-cleanhas.sh
  echo find /$localuserdata/$localuser -atime +$localuserdel -delete >> /mnt/$localuserpath/autostart/$localuser-cleanhas.sh
  echo 'echo Letzte Bereinigung: $datsek - $count Sekunden nach Skriptstart > "'/$localuserdata/$localuser'/WARNUNG - Unbenutzte Dateien werden nach '$localuserdel' Tagen geloescht"' >> /mnt/$localuserpath/autostart/$localuser-cleanhas.sh
  echo 'zenity --warning --text "\\n Unbenutzte Dateien des Benutzers '$localuser' \\n werden nach '$localuserdel' Tagen automatisch geloescht"' >> /mnt/$localuserpath/autostart/$localuser-cleanhas.sh
  echo 'exit 0' >> /mnt/$localuserpath/autostart/$localuser-cleanhas.sh
  chmod 775 /mnt/$localuserpath/autostart/$localuser-cleanhas.sh
  # Autostarteintrag erstellen für Bereinigungskript
  echo [Desktop Entry] > /mnt/etc/xdg/autostart/localuser_$localuser.desktop
  echo Name=localuser_$localuser >> /mnt/etc/xdg/autostart/localuser_$localuser.desktop
  echo Exec=/$localuserpath/autostart/$localuser-cleanhas.sh >> /mnt/etc/xdg/autostart/localuser_$localuser.desktop
###case###   ;;
###case### *)
###case###  echo Kein lokaler Benutzer wird angelegt.
###case###   ;;
###case###esac
# Löschen der Home_auf_Server-Ordner von entfernten lokalen Benutzern Nr.1 #############################
  [ ! -f "/mnt/$localuserpath/boot/$localuser.sh" ] && rm -rf /mnt/$localuserdata/$localuser

Gruß
Stefan