Gestion des utilisateurs

Préalables

Lisez la partie gestion des utilisateurs du cours.

Création d'un utilisateur à la main

Pour créer un utilisateur manuellement (afin de bien comprendre le processus) suivez les étapes ci-dessous :

Travail à faire :
  1. choisissez un UID libre,
  2. créer une nouvelle ligne dans /etc/passwd (mot de passe vide) pour un utilisateur essai,
  3. testez l'existence de ce compte (commande id essai ),
  4. essayez de vous connecter avec ce compte cela doit marcher (en mode texte uniquement),
  5. créez une nouvelle ligne dans /etc/shadow ,
  6. en tant que root, modifiez le mot de passe de cet utilisateur (commande passwd essai ),
  7. essayez de vous connecter à nouveau (toujours en mode texte),
  8. créez un répertoire d'accueil pour cet utilisateur :
    cp -rv /etc/skel /home/essai       # créer par copie de /etc/skel
    chown -R essai /home/essai         # donner
    
  9. essayez de vous connecter une dernière fois.
Que les choses soient claires : Cet exercice est destiné à vous faire comprendre le mécanisme de création des utilisateurs. Dans la pratique, si vous avez des utilisateurs à créer, vous devriez utiliser useradd .
Travail à faire : En tant qu'administrateur, Vous pouvez modifier les attributs de ce compte :
  • verrouillage/déverrouillage (commande passwd -l ),
  • changement de la politique de sécurité (commande chage à installer avec dnf -y install util-linux-user ),
Travail à faire : En tant que propriétaire du compte, vous pouvez modifier les attributs de ce compte :
  • changement du shell (commande chsh en choisissant /bin/sh ),
  • changement des informations GECOS (commande chfn mais après avoir modifié les droits dans le fichier /etc/login.defs ligne CHFN_RESTRICT),

Configurer la session utilisateur

Créer un point d'installation
  • Commencez par prévoir un nouveau point d'installation en créant les répertoires
mkdir -p /opt/{bin,man/man1,doc}
  • Puis déposez un logiciel fictif mycom à l'intérieur :
# création d'un executable simple /opt/bin/mycom
echo echo Voila un essai > /opt/bin/mycom
chmod a+rx /opt/bin/mycom

# création de la page de manuel /opt/man/man1/mycom.1
echo "Comment utiliser mycom" > /opt/man/man1/mycom.1

# création de la documentation /opt/doc/mycom.txt
echo "Ceci est une documentation" > /opt/doc/mycom.txt
  • Normalement, vous ne devriez pas avoir accès à ce logiciel (commande et page de manuel).
$ mycom
La commande « mycom » n'a pas été trouvée
Enrichir la session utilisateur Nous créer un script de configuration afin d'enrichir la session de l'utilisateur et offrir l'accès aux logiciels installés dans /opt :
  • créez un script /etc/profile.d/opt.sh exécutable,
touch /etc/profile.d/opt.sh            # création
chmod a+rx /etc/profile.d/opt.sh       # droits
  • placez à l'intérieur les instructions de modification des variables d'environement PATH et MANPATH:
PATH=$PATH:/opt/bin
MANPATH=$MANPATH:/opt/man
  • Déconnectez-vous et reconnectez-vous. Vous devriez avoir accès au logiciel mycom :
type mycom
man mycom
echo $PATH
echo $MANPATH
Note : Les script placés dans /etc/profile.d sont exécutés à chaque connexion d'un utilisateur (étudiez le script /etc/profile). C'est un moyen simple pour configurer les sessions des utilisateurs.

Le mode d'authentification

Prenez quelques minutes pour relire le transparent sur PAM. Dans la RedHat (donc AlmaLinux) la configuration de l'authentification passe par la sélection d'un profil par ceux déjà prévus. Cette configuration est basée sur l'utilitaire authselect. Voici quelques exemples :

  • Ouvrez (avec nedit par exemple) le fichier de configuration des modules PAM de l'authentification :
    nedit-client /etc/pam.d/system-auth
    
  • Questionnez le profil courant (il ne devrait pas être configuré) avec la commande ci-dessous.
    authselect current
    
  • Questionnez la liste des profils disponibles :
    authselect list
    
  • Choisissez le profil minimal (opération dangereuse) avec la commande ci-dessous. Vous observerez une simplification du fichier /etc/pam.d/system-auth.
    authselect select minimal
    
  • Chaque profil comporte des fonctionnalités. Listez celles du profil minimal :
    authselect list-features minimal
    

Imposer des limites aux utilisateurs

  • Essayez de modifier les limites de votre session (commande ulimit en mode utilisateur) pour stopper les processus de plus de 1 seconde de temps CPU. Attention : sur nos machines virtuelles, le décompte du temps est très approximatif.
    ulimit -t 1
    time bash -c 'while true; do true; done'
    
  • Faites la même chose avec le fichier /etc/security/limits.conf (aidez vous du manuel avec man limits.conf). Vérifiez (dans /etc/pam.d/system-auth) que le module pam_limits.so est utilisé.

Limiter l'accès

Nous allons interdire l'accès à votre machine pour certains utilisateurs (par exemple essai) à partir de certaines machines.

  • Commencez par activer pamaccess qui est configuré par le fichier /etc/security/access.conf  :
authselect enable-feature with-pamaccess
  • Vérifiez qu'une ligne pamaccess a bien été ajoutée au fichier de configuration de l'authentification (/etc/pam.d/system-auth).
  • Modifiez /etc/security/access.conf afin de bloquer les connexions de l'utilisateur essai depuis 10.0.2.15.
  • Vérifiez le blocage après un accès infructueux dans le journal avec journalctl -g pam_access .

Création automatique de répertoire d'accueil

Nous allons (rapidement) ajouter un nouveau module PAM qui permet de créer les répertoires d'accueil à la volée lors de l'authentification des utilisateurs. Suivez les étapes ci-dessous :

Activer
# installer les logiciels nécessaires
dnf -y install oddjob-mkhomedir

# activer et démarrer le service
systemctl enable --now oddjobd.service

# activer le module PAM de création des répertoires d'accueil
authselect enable-feature with-mkhomedir
Tester
# supprimer le répertoire de l'utilisateur essai (pour tester)
mv /home/essai/ /home/essai.old

# tester
ssh essai@localhost

Bilan

Nous avons maintenant un système d'authentification enrichi de deux modules PAM :

authselect current