Comment passer (su) à un autre compte d'utilisateur sans mot de passe

Comment passer (su) à un autre compte d'utilisateur sans mot de passe

Dans ce guide, nous montrerons comment basculer vers un autre ou un compte d'utilisateur spécifique sans nécessiter de mot de passe. Par exemple, nous avons un compte utilisateur appelé postgres (le défaut Postgresql Compte du système SuperUser), nous voulons chaque utilisateur (généralement notre Postgresql base de données et administrateurs système) dans le groupe appelé postgres pour passer au postgres compte en utilisant le su commande sans entrer un mot de passe.

Par défaut, seul l'utilisateur racine peut passer à un autre compte d'utilisateur sans entrer un mot de passe. Tout autre utilisateur sera invité à saisir le mot de passe du compte d'utilisateur dans lequel il bascule (ou s'il utilise la commande sudo, il sera invité à saisir son mot de passe), s'il ne fournit pas le mot de passe correct, il obtient un "authentification échouée”Erreur comme indiqué dans la capture d'écran suivante.

Erreur de défaillance de l'authentification de l'utilisateur

Vous pouvez utiliser l'une des deux solutions fournies ci-dessous pour résoudre le problème ci-dessus.

1. Utilisation du module d'authentification PAM

Pam (Modules d'authentification enfichables) sont au cœur de l'authentification des utilisateurs sur les systèmes d'exploitation Linux modernes. Pour permettre aux utilisateurs d'un groupe spécifique de passer à un autre compte utilisateur sans mot de passe, nous pouvons modifier les paramètres PAM par défaut pour le commande dans le / etc / pam.d / su déposer.

# vim / etc / pam.d / su ou $ sudo vim / etc / pam.d / su 

Ajouter les configurations suivantes après «Auth suffisant PAM_ROOTOK.donc”Comme indiqué dans la capture d'écran suivante.

auth [Success = ignore default = 1] pam_succeed_if.donc user = Postgres authentique suffisant pam_succeed_if.donc use_uid utilisateur ingroup postgres 

Dans la configuration ci-dessus, la première ligne vérifie si l'utilisateur cible est postgres, Si c'est le cas, le service vérifie l'utilisateur actuel, sinon, le par défaut = 1 la ligne est ignorée et les étapes d'authentification normales sont exécutées.

auth [Success = ignore default = 1] pam_succeed_if.donc user = postgres 

La ligne qui suit vérifie si l'utilisateur actuel est dans le groupe postgres, si Oui, Le processus d'authentification est considéré comme un succès et renvoie suffisamment. Sinon, les étapes d'authentification normales sont exécutées.

autheat suffisant pam_succeed_if.donc use_uid utilisateur ingroup postgres 
Configurer PAM pour permettre l'exécution de la commande SU sans mot de passe

Enregistrez le fichier et fermez-le.

Ensuite, ajoutez l'utilisateur (par exemple aaronk) que tu veux su au compte postgres sans mot de passe au groupe postgres Utilisation de la commande Usermod.

$ sudo usermod -Ag Postgres aaronk 

Essayez maintenant de su au postgres compte comme utilisateur aaronk, Vous ne devez pas être invité à un mot de passe comme indiqué dans la capture d'écran suivante:

$ su - Postgres 
Ajouter l'utilisateur au groupe

2. En utilisant le fichier sudoers

Vous pouvez aussi su à un autre utilisateur sans nécessiter de mot de passe en apportant quelques modifications dans le fichier sudoers. Dans ce cas, l'utilisateur (par exemple aaronk) Qui passera à un autre compte d'utilisateur (par exemple postgres) devrait être dans le fichier sudoers ou dans le groupe sudo pour pouvoir invoquer le commande sudo.

$ sudo visudo 

Puis ajoutez la configuration suivante sous la ligne «% Sudo tout = (tout: tout) tout» comme indiqué dans la capture d'écran suivante.

aaronk all = nopasswd: / bin / su - postgres 
Ajouter un utilisateur au fichier sudoers

Enregistrez et fermez le fichier.

Essayez maintenant de su au compte postgres En tant qu'utilisateur aaronk, Le shell ne doit pas vous inviter à saisir un mot de passe:

$ sudo su - Postgres 
Passez à un autre utilisateur sans mot de passe

C'est tout pour le moment! Pour plus d'informations, consultez la page d'entrée du manuel PAM (homme Pam.confli) et celui de commande sudo aussi (homme sudo).

$ man pam.Conf $ man sudo 
Lecture connexe: 10 Configurations Sudoers utiles pour définir 'Sudo' dans Linux