##### Programmation Shell Objectif: Mettre en place un mécanisme permettant de limiter les actions que peut faire un utilisateur sur un système Durée: 4h en autonomie Mettez en place les mécanismes suivants: * un utilisateur "operateur" ayant le droit de se connecter en ssh sur le système, par clé publique / clé privée (avec votre clé, et la mienne: https://infra.opendoor.fr/id_rsa.pub) * une fois qu'il s'est connecté, il n'a pas d'accès shell, mais un menu s'affiche, présentant la liste des actions possibles: * lister les utilisateurs existants * changer le mot de passe de l'utilisateur * afficher l'adresse ip et la passerelle de la machine * afficher l'état du service httpd * redémarrer le service httpd ```bash # ssh test@cours.opendoor.fr -p XXXX Hello, What do you want to do ? 1 - restart apache 2 - show apache status 3 - list user 4 - change user password ... 0 - exit Enter selection: ``` l'utilisateur devra être autorisé à exécuter ces commandes (en terme de droits) La configuration sudo sera dans /etc/sudoers.d/operateur Le script sera écrit dans /usr/local/bin/menuaction.sh Ce script devra *logguer* chaque action effectuée avec la date et l'heure dans le fichier /var/log/operateur.log Ce fichier de log sera archivé quotidiennement, sa période de rétention sera de 1 an. (fichier /etc/logrotate.d/operateur.log) Ex de fichier de log: ```bash Jan 25 11:16:41 epsii1g11 epsi[26321]: get apache status Jan 25 11:16:55 epsii1g11 epsi[26323]: restart apache ``` Bonus si vous utilisez la lib "whiptail".