Kako preklopiti (su) na drug uporabniški račun brez gesla


V tem priročniku bomo prikazali, kako preklopiti na drug ali določen uporabniški račun, ne da bi potrebovali geslo. Na primer, imamo uporabniški račun, imenovan postgres (privzeti sistemski račun super uporabnika PostgreSQL), želimo, da se vsak uporabnik (običajno naša baza podatkov PostgreSQL in skrbniki sistema) v skupini, imenovani postgres, preklopi na račun postgres z uporabo su brez vnosa gesla.

Privzeto lahko samo korenski uporabnik preklopi na drug uporabniški račun, ne da bi vnesel geslo. Vsak drug uporabnik bo pozvan, da vnese geslo uporabniškega računa, na katerega preklaplja (ali če uporablja ukaz sudo, bo pozvan k vnosu gesla), če ne navede pravega gesla, dobi napaka\"preverjanje pristnosti ni uspelo", kot je prikazano na naslednjem posnetku zaslona.

Za rešitev zgornje težave lahko uporabite katero koli od spodnjih rešitev.

1. Uporaba modula za preverjanje pristnosti PAM

PAM (vtični moduli za preverjanje pristnosti) so jedro avtentikacije uporabnikov v sodobnih operacijskih sistemih Linux. Če želimo uporabnikom v določeni skupini omogočiti prehod na drug uporabniški račun brez gesla, lahko spremenimo privzete nastavitve PAM za ukaz su v datoteki /etc/pam.d/su.

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

Za\"auth dovolj pam_rootok.so" dodajte naslednje konfiguracije, kot je prikazano na naslednjem posnetku zaslona.

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

V zgornji konfiguraciji prva vrstica preveri, ali je ciljni uporabnik postgres, če je, storitev preveri trenutnega uporabnika, sicer se preskoči vrstica default = 1 in izvedejo se običajni koraki za preverjanje pristnosti .

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

Vrstica, ki sledi, preveri, ali je trenutni uporabnik v skupini postgres, če je yes , postopek overjanja velja za uspešnega in kot rezultat vrne zadostne. V nasprotnem primeru se izvedejo običajni koraki za preverjanje pristnosti.

auth       sufficient   pam_succeed_if.so use_uid user ingroup postgres

Datoteko shranite in zaprite.

Nato dodajte uporabnika (na primer aaronk), ki ga želite su , v postgres računa brez gesla v skupino postgres z uporabo ukaza usermod.

$sudo usermod -aG postgres aaronk

Zdaj poskusite su v račun postgres kot uporabnik aaronk, ne smete biti pozvani k geslu, kot je prikazano na naslednjem posnetku zaslona:

$ su - postgres

2. Uporaba datoteke Sudoers

Prav tako lahko su pošljete drugemu uporabniku, ne da bi morali zahtevati geslo, tako da nekaj spremenite v datoteki sudoers. V tem primeru mora biti uporabnik (na primer aaronk), ki bo preklopil na drug uporabniški račun (na primer postgres), v datoteki sudoers ali v skupini sudo, da lahko prikliče ukaz sudo.

$ sudo visudo

Nato dodajte naslednjo konfiguracijo pod vrstico \"% sudo ALL = (ALL: ALL) ALL" , kot je prikazano na naslednjem posnetku zaslona.

aaronk ALL=NOPASSWD: /bin/su – postgres

Shranite in zaprite datoteko.

Zdaj poskusite su na postgres računa kot uporabnika aaronk, lupina vas ne bi pozvala k vnosu gesla:

$ sudo su - postgres

To je vse za zdaj! Za več informacij glejte stran za ročni vnos PAM (man pam.conf) in stran ukaza sudo (man sudo).

$ man pam.conf
$ man sudo