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