su

Comment basculer vers un autre utilisateur sans mot de passe sous Linux

Par défaut seul root a le droit de basculer vers un autre utilisateur sans saisir de mot de passe, par contre les utilisateurs normal seront invités à entrer le mot de passe, si le mot de passe est incorrecte un message d’erreur s’affiche « Échec d’authentification » :

[sysreseau@linux ~]$ su - user1
Mot de passe :
su: Échec d'authentification

Pour pouvoir basculer vers un autre utilisateur sans mot de passe sous Linux, vous pouvez utiliser l’une des deux méthodes que nous allons voir dans cet article.

Objectif :

Nous souhaitons que n’importe utilisateur (admin dans notre cas) faisant partie au groupe Network puisse basculer vers l’utilisateur Netadmin sans fournir de mot de passe.

[root@linux ~]# useradd admin -G Network

Utiliser le module PAM

PAM (Pluggable Authentication Modules) permet de contrôler les authentifications et les autorisations sur un système Linux. Pour permettre à un utilisateur appartenant à un groupe de basculer vers un autre utilisateur sans fournir de mot de passe il suffit de modifier les paramètre par défaut de PAM pour la commande su via le fichier /etc/pam.d/su an ajoutant les lignes ci-dessous :

auth [success=ignore default=1] pam_succeed_if.so user = postgres
auth sufficient pam_succeed_if.so use_uid user ingroup postgres
pam

Explication :

La première ligne vérifier si l’utilisateur cible est bien « Netadmin« , si ce n’est pas le cas l’authentification normale est exécutée.

La deuxième ligne vérifie si l’utilisateur courant fait bien partie du groupe Network, si c’est le cas l’authentification sans mot de passe se fait avec succès sinon l’authentification normal est exécuté.

Maintenant en tant que « admin » utiliser la commande su pour basculer vers l’utilisateur Netadmin :

[root@linux ~]# su - admin
Dernière connexion : vendredi 23 avril 2021 à 11:39:32 CEST sur pts/0
[admin@linux ~]$ su - Netadmin
[Netadmin@linux ~]$

Utiliser le fichier sudoers :

La deuxième méthode consiste à ajouter dans le fichier /etc/sudoers l’utilisateur ( admin dans notre cas) depuis lequel vous allez basculer vers l’utilisateur cible ( Netadmin dans notre cas).

Editer le fichier sudoers avec la commande visudo :

[root@linux ~]# visudo

Ajouter ensuite la ligne ci-dessous et enregistrer le fichier :

admin ALL=NOPASSWD: /bin/su – Netadmin

Maintenant en tant que « admin » utiliser la commande su pour basculer vers l’utilisateur Netadmin :

[admin@linux ~]$ su - Netadmin
Dernière connexion : vendredi 23 avril 2021 à 11:40:05 CEST sur pts/0
[Netadmin@linux ~]$