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