Kako se prebaciti (su) na drugi korisnički račun bez lozinke


U ovom vodiču ćemo 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 (podrazumevani PostgreSQL sistemski račun superkorisnika), želimo svakog korisnika (obično našu PostgreSQL bazu podataka i administratori sistema) u grupi pod nazivom postgres da se prebacite na postgres nalog pomoću naredbe su bez unosa lozinke.

Podrazumevano, samo root korisnik može se prebaciti na drugi korisnički nalog bez unošenja lozinke. Bilo koji drugi korisnik će biti zatražen da unese lozinku korisničkog naloga na koji se prebacuje (ili ako koristi sudo komandu, od njega će se tražiti da unese svoju lozinku), ako ne unese ispravnu lozinku, dobiće greška “autentifikacija nije uspjela ” kao što je prikazano na sljedećem snimku ekrana.

Možete koristiti bilo koje od dva rješenja navedena u nastavku da biste riješili gornji problem.

1. Korištenje PAM Authentication Modula

PAM (Pluggable autentifikacijski moduli) su srž autentifikacije korisnika na modernim Linux operativnim sistemima. Da bismo omogućili korisnicima u određenoj grupi da se prebace na drugi korisnički račun bez lozinke, možemo izmijeniti zadane PAM postavke za su komandu u /etc/pam.d/su fajl.

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

Dodajte sljedeće konfiguracije nakon “auth enough pam_rootok.so” kao što je prikazano na sljedećem snimku ekrana.

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 red provjerava da li je ciljni korisnik postgres, ako jeste, servis provjerava trenutnog korisnika, u suprotnom, red default=1 se preskače i izvršavaju se normalni koraci provjere autentičnosti.

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

Red koji slijedi provjerava da li je trenutni korisnik u grupi postgres, ako je da, proces autentifikacije se smatra uspješnim i kao rezultat vraća dovoljan. U suprotnom, izvršavaju se normalni koraci provjere autentičnosti.

auth       sufficient   pam_succeed_if.so use_uid user ingroup postgres

Sačuvajte datoteku i zatvorite je.

Zatim dodajte korisnika (na primjer aaronk) kojeg želite su na račun postgres bez lozinke u grupu postgres pomoću naredbe usermod.

$sudo usermod -aG postgres aaronk

Sada pokušajte su na postgres nalog kao korisnik aaronk, ne bi trebalo da budete upitani za lozinku kao što je prikazano na sljedećem snimku ekrana:

su - postgres

2. Korištenje Sudoers datoteke

Također možete su drugom korisniku bez potrebe za lozinkom tako što ćete napraviti neke promjene u datoteci sudoers. U ovom slučaju, korisnik (na primjer aaronk) koji će se prebaciti na drugi korisnički račun (na primjer postgres) bi trebao biti u datoteci sudoers ili u sudo grupi da bude može pozvati sudo komandu.

sudo visudo

Zatim dodajte sljedeću konfiguraciju ispod reda “%sudo ALL=(ALL:ALL) ALL ” kao što je prikazano na sljedećem snimku ekrana.

aaronk ALL=NOPASSWD: /bin/su – postgres

Sačuvajte i zatvorite datoteku.

Sada pokušajte su na račun postgres kao korisnik aaronk, shell ne bi trebao tražiti od vas 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 stranicu sudo komande (man sudo).

man pam.conf
man sudo