Wéi wiesselen (su) op en anere Benotzerkont ouni Passwuert


An dësem Guide wäerte mir weisen wéi Dir op en aneren oder e spezifesche Benotzerkont wiesselt ouni e Passwuert ze erfuerderen. Zum Beispill hu mir e Benotzerkont mam Numm postgres (de Standard PostgreSQL Superuser System Kont), mir wëllen datt all Benotzer (typesch eis PostgreSQL Datebank a System Administrateuren) an der Grupp postgres op de Postgres Kont wiesselen mam su Kommando ouni Passwuert anzeginn.

Par défaut kann nëmmen de Root Benotzer op en anere Benotzerkont wiesselen ouni e Passwuert anzeginn. All anere Benotzer gëtt opgefuerdert d'Passwuert vum Benotzerkont op deen se wiesselen anzeginn (oder wa se de sudo Kommando benotzen, ginn se opgefuerdert hiert Passwuert anzeginn), wa se net dat richtegt Passwuert ubidden, kréien se en \Authentifizéierung gescheitert\ Feeler wéi am folgenden Screenshot gewisen.

Dir kënnt eng vun den zwou Léisungen hei ënnen benotzen fir dat uewe genannte Problem ze léisen.

1. Benotzt PAM Authentifikatioun Modul

PAM (Plugbar Authentifikatioun Moduler) sinn am Kär vun Benotzer Authentifikatioun op modern Linux Betribssystemer. Fir Benotzer an enger spezifescher Grupp op en anere Benotzerkont ouni Passwuert ze wiesselen, kënne mir d'Standard PAM-Astellunge fir de su Kommando an der Datei /etc/pam.d/su änneren.

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

Füügt déi folgend Konfiguratiounen no \auth genuch pam_rootok.so wéi am folgenden Screenshot gewisen.

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

An der uewe genannter Konfiguratioun kontrolléiert déi éischt Zeil ob den Zilbenotzer postgres ass, wann et ass, kontrolléiert de Service den aktuelle Benotzer, soss gëtt d'default=1 Linn iwwersprangen an déi normal Authentifikatiounsschrëtt ginn ausgefouert. .

auth       [success=ignore default=1] pam_succeed_if.so user = postgres

D'Linn déi duerno kontrolléiert ob den aktuelle Benotzer an der Grupp postgres ass, wann Jo, gëtt den Authentifikatiounsprozess als erfollegräich ugesinn a gëtt genügend als Resultat zréck. Soss ginn déi normal Authentifikatiounsschrëtt ausgefouert.

auth       sufficient   pam_succeed_if.so use_uid user ingroup postgres

Späichert d'Datei a maach se zou.

Als nächst, füügt de Benotzer (zum Beispill Aaronk) un deen Dir wëllt su op de Kont postgres ouni Passwuert an d'Grupp postgres benotze mat dem Benotzermod Kommando.

$sudo usermod -aG postgres aaronk

Probéiert elo su op de Postgres Kont wéi de Benotzer aaronk, Dir sollt net fir e Passwuert gefrot ginn wéi am folgenden Screenshot gewisen:

$ su - postgres

2. Benotzt Sudoers Fichier

Dir kënnt och su un en anere Benotzer ouni Passwuert erfuerderen andeems Dir e puer Ännerungen an der sudoers Datei maacht. An dësem Fall soll de Benotzer (zum Beispill Aaronk) deen op en anere Benotzerkont wiesselt (zum Beispill postgres) an der Sudoers Datei oder an der Sudo Grupp sinn fir de Sudo Kommando opzeruffen.

$ sudo visudo

Füügt dann déi folgend Konfiguratioun ënnert der Linn \%sudo ALL=(ALL:ALL) ALL wéi am folgenden Screenshot gewisen.

aaronk ALL=NOPASSWD: /bin/su – postgres

Späichert an zou der Datei.

Elo probéiert su op de Kont postgres wéi de Benotzer aaronk, d'Schuel sollt Iech net froen fir e Passwuert anzeginn:

$ sudo su - postgres

Dat ass alles fir elo! Fir méi Informatioun, kuckt d'PAM manuell Entrée Säit (man pam.conf) an déi vum sudo Kommando och (man sudo).

$ man pam.conf
$ man sudo