J'aide à enseigner deux cours Unix la semaine prochaine. Les utilisateurs se verront accorder un compte sur une machine RHEL 5, pendant laquelle ils ajouteront des fichiers à leur /home
dossier, .bashrc
mettront à jour leur fichier et d'autres fichiers dot et effectueront d'autres tâches générales qui doivent être nettoyées.
Les étudiants de la deuxième session réutiliseront les comptes d'utilisateurs des gens de la première session. J'aimerais automatiser le nettoyage de leurs comptes, afin que les nouveaux utilisateurs puissent recommencer à zéro.
Je suis sûr que je pourrais écrire un script shell qui exécute un su -u $USER_ID
et établit un ensemble "original" de bons fichiers dans leur homedir, et supprime tout ce qu'il trouve. Y a-t-il d'autres outils qui m'aideront dans cette opération de nettoyage / réinitialisation? Je n'ai aucune expérience avec Puppet, Chef ou d'autres outils. Seraient-ils utiles pour faire quelque chose comme ça?
Pour fournir une étendue du problème, il y a environ 30 comptes d'utilisateurs, je connais tous les ID utilisateur / mots de passe, et ils sont tous créés sur la même boîte RHEL.
la source
Réponses:
Il existe de nombreuses façons qui pourraient aider:
/etc/skel
retour dans le répertoire d' origine. Modifiez ensuite les autorisations.tar
le répertoire d'origine avant la leçon, supprimer le répertoire d'origine après, restaurer à partir detar
Et apprendre d'autres outils comme Puppet / Chef est un peu trop si vous voulez des résultats la semaine prochaine.
la source
tar
et restaurer, et essayer d'apprendre un outil comme Puppet quand je ne suis pas dans un temps critique.Disons que tous vos élèves 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.
la source
Si vous utilisez gdm pour votre gestionnaire de connexion, vous pouvez ajouter quelque chose comme ce fichier: / etc / gdm / PostSession / Default
la source
L'ensemble "original" des fichiers de compte se trouve généralement sous / etc / skel dans les systèmes Unix.
En dehors de cela, je ne connais aucun outil pour automatiser le nettoyage. Je finirais probablement par écrire un simple script bash.
la source
Essaye ça
la source
Il peut y avoir un bon outil qui vous aidera, mais je voudrais probablement juste (a) mettre les trucs désirés dans un dépôt git, et (b) écrire un script qui itère sur les utilisateurs et rm est le truc désiré et tire du dépôt git .
la source
Cela fonctionne pour le gnome Ubuntu: pico /usr/local/bin/cleanup.sh
rm -rf / home / utilisateur / Téléchargements / *
faites de même si vous souhaitez supprimer des documents
quitter chmod 511 /usr/local/bin/cleanup.sh
pico / etc / gdm / PostSession / Default
! / bin / bash
/usr/local/bin/cleanup.sh exit 0
la source