Master SAR 2006-2007, Université Pierre & Marie Curie. Emmanuel Saint-James. [retour à l'index des TD]

Administration et Architecture des Systèmes, TD 2

Droits et crontab

Les droits sont un trio de trios de bits : lecture (4), ecritrure (2) et exécution (1) pour le propriétaire, le groupe et les autres, d'où au total une spécification par 3 chiffres en octal: 751 est une entrée totalement accessible au propriétaire, en lecture et exécution pour le groupe et seulement en exécution pour les autres. Pour avoir automatiquement ce positionnement de droit, la session a du appeler la commande umask avec 026 comme argument.

Il est important de comprendre que :

Le trio de trios de bits est en fait un quatuor, car complété par :

1   L'enfer c'est les autres

La commande umask, souvent placée dans le fichier de profil, indique le masque de création sur les droits de toutes les entrées créées pendant la session. Sur votre machine, on suppose qu'il existe l'utilisateur sioux dont vous souhaitez que lui ainsi qu'un minimum d'autres utilisateurs puissent exécuter vos scripts. On suppose que la commande sudo vous laisse exécuter la commande chgrp sur votre répertoire ~/usr/bin et son contenu (vos scripts).

Question

Écrivez un script qui détermine le nombre d'utilisateurs total sur la machine, la taille du groupe le plus important et la taille du plus petit groupe dont fait partie l'utilisateur sioux. Fort de ses résultats, votre script déterminera la meilleure combinaison, puis indiquera les commandes a exécuter pour modifier les droits du répertoire ~/usr/bin selon cette solution.

2   Cette heureuse idée bile

Question

Essayez de deviner quels sont les exécutables du système dont le Set User ID bit a besoin d'être positionné.

Question

Donnez un exemple d'un exécutable bien connu qui ne doit surtout pas être dans ce cas.

Question

Utilisez la commande find pour trouver tous les fichiers et répertoires ayant le setuid ou le setgid positionné. Vérifiez vos intuitions; si elles sont fausses, révisez votre cours, et si vos doutes persistent, contactez d'urgence l'administrateur.

3   Les processus périodiques

Le processus cron est lancé toutes les minutes pour effectuer des taches programmées à l'avance. Celles-ci sont décrites dans des fichiers nommés par le login de l'utilisateur désireux de lancer de telles taches, et placés dans un répertoire conventionnel dépendant du système. La commande crontab permet de modifier ces fichiers (consulter le manuel). Le programme at permet de spécifier un programme à exécuter, une seule fois, à une date fixée (idem).

Question

Concevez un script qui parcourt tout votre répertoire personnel et :

  • détruit les fichiers core;
  • supprime les accès en lecture aux autres utilisateurs, sauf pour votre répertoire de pages Web;
  • note dans un endroit conventionnel le moment de son intervention;
  • liste auparavant tous les fichiers créés ou modifiés depuis sa dernière intervention;
  • en fabrique une archive compressée;
  • la place dans un des 7 sous-répertoires d'un répertoire à un emplacement conventionnel (qui n'aura pas été parcouru lors de cette exécution!), choisi sur la base du jour d'exécution;
  • pour finir, envoie un mail donnant la taille de l'archive.

Utilisez ensuite crontab pour demander son exécution toutes les 24 heures, à un moment où vous avez l'habitude de dormir (note: il n'est pas demandé de simulation).