Comment passer (su) à un autre compte d'utilisateur sans mot de passe
- 3179
- 726
- Maxence Arnaud
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'utilisateurVous 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 postgresConfigurer 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 - PostgresAjouter 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 - postgresAjouter 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 - PostgresPassez à 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 sudoLecture connexe: 10 Configurations Sudoers utiles pour définir 'Sudo' dans Linux
- « Configuration de la connexion SSH sans mot de passe pour plusieurs serveurs distants à l'aide du script
- Comment installer Postgresql et Pgadmin dans Rhel 8 »