Files
tp_prog_shell_2/tp_prog_shell_2.md
2021-01-25 12:01:11 +01:00

1.5 KiB

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'état du service httpd
  • redémarrer le service httpd
# 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/opreateur.log)

Ex de fichier de log:

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".