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