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