GNU/Linux >> Linux Esercitazione >  >> Linux

Come posso automatizzare la cancellazione e il ripristino della home directory di un utente Linux su un valore predefinito?

Ci sono molti modi che potrebbero aiutare:

  • rimuove l'intera home directory e copia tutti i file da /etc/skel torna alla homedir. Modifica le autorizzazioni in seguito.
  • inserisci il sistema in una macchina virtuale, crea uno snapshot e ripristina lo snapshot dopo la lezione 1
  • trova qualcosa come una modalità chiosco in RHEL. Ubuntu ha qualcosa del genere, che ripristina automaticamente la home durante la disconnessione
  • metti la home su un filesystem btrfs, crea un'istantanea e ripristina dopo la lezione 1
  • tar la home directory prima della lezione, elimina home dopo, ripristina da tar
  • ...

E imparare altri strumenti come Puppet/Chef è un po' troppo se vuoi ottenere risultati la prossima settimana.


Supponiamo che tutti i tuoi studenti abbiano un UID compreso tra 1000 e 65000

Una battuta veloce come questa funzionerebbe. Awk stamperà un comando rsync e un comando chown per ogni utente nell'intervallo. L'invio dell'output di awk in bash eseguirà tutti i comandi per reimpostare directory e permessi.

# 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 )

Se stai usando gdm per il tuo gestore degli accessi puoi aggiungere qualcosa come questo file:/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. Come eliminare gli account utente con Home Directory in Linux

  2. Come eliminare una directory e una cartella in Linux?

  3. Come bloccare e sbloccare l'utente in Linux

  4. Come trovare la home directory di un utente su Linux o Unix?

  5. Come posso assegnare una password iniziale/predefinita a un utente in Linux?

Come copiare file e directory in Linux

Crea directory home per utenti esistenti in Linux

Permessi della directory Linux di base e come controllarli

Come creare/aggiungere utenti in Linux

Come posso cercare un nome utente per id in Linux?

Come posso elencare gli attributi utente di Active Directory da un computer Linux?