GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Wie kann ich das Löschen und Zurücksetzen des Home-Verzeichnisses eines Linux-Benutzers auf einen Standard automatisieren?

Es gibt viele Möglichkeiten, die helfen würden:

  • Entfernen Sie das komplette Home-Verzeichnis und kopieren Sie alle Dateien von /etc/skel zurück zum Homedir. Berechtigungen nachträglich ändern.
  • Setzen Sie das System in eine virtuelle Maschine, erstellen Sie einen Snapshot und kehren Sie nach Lektion 1 zum Snapshot zurück
  • so etwas wie einen Kioskmodus in RHEL finden. Ubuntu hat so etwas, das beim Abmelden automatisch das Home wiederherstellt
  • Legen Sie das Home auf ein btrfs-Dateisystem, machen Sie einen Schnappschuss und kehren Sie nach Lektion 1 zurück
  • tar das Heimatverzeichnis vor der Lektion, Heimat danach löschen, ab tar wiederherstellen
  • ...

Und das Erlernen anderer Tools wie Puppet/Chef ist ein bisschen zu viel, wenn Sie nächste Woche Ergebnisse erzielen möchten.


Angenommen, alle Ihre Schüler hatten eine UID zwischen 1000 und 65000

Ein schneller Einzeiler wie dieser würde funktionieren. Awk gibt einen rsync-Befehl und einen chown-Befehl für jeden Benutzer im Bereich aus. Das Senden der Ausgabe von awk an bash führt alle Befehle zum Zurücksetzen von Verzeichnissen und Berechtigungen aus.

# see what will happen.
awk 'BEGIN{FS=":"} $3 >= 1000 && $3 <=65000 { print "rsync --delete -v -r /etc/skel/ " $6 "/ ; chown -R " $1 ":" $1 " " $6;}' /etc/passwd

# actually run the commands to reset all users matched by awk.
bash <( awk 'BEGIN{FS=":"} $3 >= 1000 && $3 <=65000 { print "rsync --delete -v -r /etc/skel/ " $6 "/ ; chown -R " $1 ":" $1 " " $6;}' /etc/passwd )

Wenn Sie gdm für Ihren Anmeldemanager verwenden, können Sie so etwas wie diese Datei hinzufügen:/etc/gdm/PostSession/Default

#!/bin/sh

if [[ "$USER" != "" ]]; then
   rm -rf /home/$USER
   cp -r /etc/skel /home/$USER
   chown -R $USER:$USER /home/$USER
fi

Linux
  1. So sperren und entsperren Sie Benutzer in Linux

  2. So verwalten Sie Datei- und Verzeichnisberechtigungen/Eigentümer in Linux

  3. So stellen Sie Dateien im Home-Verzeichnis des Benutzers auf den Standardwert in Linux wieder her

  4. Wie finde ich das Home-Verzeichnis eines Benutzers unter Linux oder Unix?

  5. Wie kann ich einem Benutzer unter Linux ein Anfangs-/Standardkennwort zuweisen?

So kopieren Sie Dateien und Verzeichnisse unter Linux

Erstellen Sie ein Home-Verzeichnis für einen bestehenden Benutzer in Linux

Grundlegende Linux-Verzeichnisberechtigungen und wie man sie überprüft

So erstellen/fügen Sie Benutzer in Linux hinzu

Wie kann ich die Standardgruppe eines Benutzers in Linux ändern?

Wie kann ich unter Linux einen Benutzernamen anhand der ID suchen?