GNU/Linux >> Tutoriels Linux >  >> Linux

Comment puis-je automatiser l'effacement et la réinitialisation du répertoire personnel d'un utilisateur Linux par défaut ?

Il existe plusieurs façons d'aider :

  • supprimer le répertoire personnel complet et copier tous les fichiers de /etc/skel retour au homedir. Modifiez les autorisations par la suite.
  • placez le système dans une machine virtuelle, créez un instantané et revenez à l'instantané après la leçon 1
  • trouver quelque chose comme un mode kiosque dans RHEL. Ubuntu a quelque chose comme ça, qui restaure automatiquement la maison lors de la déconnexion
  • mettez le home sur un système de fichiers btrfs, faites un instantané et revenez après la leçon 1
  • tar le répertoire d'accueil avant la leçon, supprimer l'accueil après, restaurer à partir de tar
  • ...

Et apprendre d'autres outils comme Puppet/Chef est un peu trop si vous voulez des résultats la semaine prochaine.


Disons que tous vos étudiants avaient un UID entre 1000 et 65000

Un one-liner rapide comme celui-ci fonctionnerait. Awk imprimera une commande rsync et une commande chown pour chaque utilisateur de la plage. L'envoi de la sortie de awk dans bash exécutera toutes les commandes pour réinitialiser les répertoires et les autorisations.

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

Si vous utilisez gdm pour votre gestionnaire de connexion, vous pouvez ajouter quelque chose comme ce fichier :/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. Comment créer et supprimer un groupe d'utilisateurs sous Linux

  2. Comment supprimer un répertoire et un dossier sous Linux ?

  3. Comment verrouiller et déverrouiller l'utilisateur sous Linux

  4. Comment trouver le répertoire personnel d'un utilisateur sous Linux ou Unix ?

  5. Comment copier un fichier/dossier depuis le répertoire personnel d'un autre utilisateur sous Linux ?

Comment copier des fichiers et des répertoires sous Linux

Créer un répertoire personnel pour un utilisateur existant sous Linux

Autorisations de base du répertoire Linux et comment les vérifier

Comment créer/ajouter des utilisateurs sous Linux

Comment puis-je modifier le groupe par défaut d'un utilisateur sous Linux ?

Comment puis-je rechercher un nom d'utilisateur par identifiant sous Linux?