Kako prebaciti (su) na drugi korisnički račun bez lozinke
U ovom ćemo vodiču pokazati kako se prebaciti na drugi ili određeni korisnički račun bez potrebe za lozinkom. Na primjer, imamo korisnički račun pod nazivom postgres (zadani račun sistemskog superkorisnika PostgreSQL), želimo da se svaki korisnik (obično naša baza podataka PostgreSQL i administratori sustava) u grupi koja se zove postgres prebaci na postgres račun pomoću su
naredba bez unošenja lozinke.
Prema zadanim postavkama, samo root korisnik može se prebaciti na drugi korisnički račun bez unosa lozinke. Bilo koji drugi korisnik bit će zatražen da unese lozinku korisničkog računa na koji se prebacuje (ili ako koristi naredbu sudo, bit će zatraženo da unese lozinku), ako ne navede točnu lozinku, dobit će pogreška "autentifikacija nije uspjela" kao što je prikazano na sljedećem snimku zaslona.
Možete riješiti gore navedeni problem bilo kojim od dva rješenja navedena u nastavku.
1. Korištenje PAM modula za provjeru autentičnosti
PAM (priključni moduli za provjeru autentičnosti) su srž provjere autentičnosti korisnika na modernim Linux operativnim sustavima. Da bismo korisnicima u određenoj grupi omogućili prelazak na drugi korisnički račun bez lozinke, možemo izmijeniti zadane PAM postavke za naredbu su u datoteci /etc/pam.d/su.
# vim /etc/pam.d/su OR $ sudo vim /etc/pam.d/su
Dodajte sljedeće konfiguracije nakon “auth dovolj pam_rootok.so” kao što je prikazano na sljedećem snimku zaslona.
auth [success=ignore default=1] pam_succeed_if.so user = postgres auth sufficient pam_succeed_if.so use_uid user ingroup postgres
U gornjoj konfiguraciji, prvi redak provjerava je li ciljni korisnik postgres, ako jest, usluga provjerava trenutnog korisnika, inače se preskače redak default = 1
i izvršavaju se normalni koraci provjere .
auth [success=ignore default=1] pam_succeed_if.so user = postgres
Redak koji slijedi provjerava je li trenutni korisnik u grupi postgres, ako yes
, postupak provjere autentičnosti smatra se uspješnim i kao rezultat daje dovoljno. Inače se izvršavaju uobičajeni koraci provjere autentičnosti.
auth sufficient pam_succeed_if.so use_uid user ingroup postgres
Spremite datoteku i zatvorite je.
Dalje, dodajte korisnika (na primjer aaronk) kojeg želite su
na postgres računa bez lozinke grupnom postgresu pomoću naredbe usermod.
$sudo usermod -aG postgres aaronk
Sada pokušajte su
na postgres račun kao korisnika aaronk, ne bi trebalo tražiti lozinku kao što je prikazano na sljedećem snimku zaslona:
$ su - postgres
2. Korištenje datoteke Sudoers
Također možete su
prebaciti na drugog korisnika bez potrebe za lozinkom tako što ćete unijeti neke promjene u datoteku sudoers. U ovom slučaju, korisnik (na primjer aaronk) koji će se prebaciti na drugi korisnički račun (na primjer postgres) trebao bi biti u datoteci sudoers ili u grupi sudo da bi mogao pozvati sudo naredbu.
$ sudo visudo
Zatim dodajte sljedeću konfiguraciju ispod retka “% sudo ALL = (ALL: ALL) ALL”
kao što je prikazano na sljedećem snimku zaslona.
aaronk ALL=NOPASSWD: /bin/su – postgres
Spremite i zatvorite datoteku.
Sada pokušajte su
na postgres računa kao korisnika aaronk, ljuska ne bi trebala tražiti da unesete lozinku:
$ sudo su - postgres
To je sve za sada! Za više informacija pogledajte stranicu za ručni unos PAM-a (man pam.conf) i onu naredbe sudo (man sudo).
$ man pam.conf $ man sudo