Hvordan bytte (su) til en annen brukerkonto uten passord
I denne veiledningen vil vi vise hvordan du bytter til en annen eller en spesifikk brukerkonto uten å kreve passord. For eksempel har vi en brukerkonto kalt postgres (standard PostgreSQL-superbrukersystemkonto), vi vil ha hver bruker (vanligvis vår PostgreSQL-database og systemadministratorer) i gruppen kalt postgres for å bytte til postgres-kontoen ved å bruke su
-kommandoen uten å angi et passord.
Som standard kan bare root-brukeren bytte til en annen brukerkonto uten å angi et passord. Enhver annen bruker vil bli bedt om å skrive inn passordet til brukerkontoen de bytter til (eller hvis de bruker sudo-kommandoen, vil de bli bedt om å skrive inn passordet), hvis de ikke oppgir riktig passord, får de en «autentisering mislyktes»-feil som vist i følgende skjermbilde.
Du kan bruke hvilken som helst av de to løsningene nedenfor for å løse problemet ovenfor.
1. Bruke PAM Authentication Module
PAM (Plugbare autentiseringsmoduler) er kjernen i brukerautentisering på moderne Linux-operativsystemer. For å tillate brukere i en bestemt gruppe å bytte til en annen brukerkonto uten passord, kan vi endre standard PAM-innstillinger for su-kommandoen i /etc/pam.d/su sterk> fil.
vim /etc/pam.d/su
OR
sudo vim /etc/pam.d/su
Legg til følgende konfigurasjoner etter “auth enough pam_rootok.so” som vist i følgende skjermbilde.
auth [success=ignore default=1] pam_succeed_if.so user = postgres
auth sufficient pam_succeed_if.so use_uid user ingroup postgres
I konfigurasjonen ovenfor sjekker den første linjen om målbrukeren er postgres, hvis den er det, sjekker tjenesten gjeldende bruker, ellers hoppes default=1
-linjen over og de vanlige autentiseringstrinnene utføres.
auth [success=ignore default=1] pam_succeed_if.so user = postgres
Linjen som følger sjekker om den nåværende brukeren er i gruppen postgres, hvis ja
, anses autentiseringsprosessen som vellykket og returnerer tilstrekkelig som et resultat. Ellers blir de vanlige autentiseringstrinnene utført.
auth sufficient pam_succeed_if.so use_uid user ingroup postgres
Lagre filen og lukk den.
Deretter legger du til brukeren (for eksempel aaronk) som du vil su
til kontoen postgres uten passord til gruppen postgres ved å bruke usermod-kommandoen.
$sudo usermod -aG postgres aaronk
Prøv nå å su
til postgres-kontoen som brukeren aaronk, du bør ikke bli bedt om et passord som vist i følgende skjermbilde:
su - postgres
2. Bruke Sudoers File
Du kan også su
til en annen bruker uten å kreve passord ved å gjøre noen endringer i sudoers-filen. I dette tilfellet bør brukeren (for eksempel aaronk) som vil bytte til en annen brukerkonto (for eksempel postgres) være i sudoers-filen eller i sudo-gruppen for å være i stand til å påkalle sudo-kommandoen.
sudo visudo
Legg deretter til følgende konfigurasjon under linjen “%sudo ALL=(ALL:ALL) ALL ”
som vist i følgende skjermbilde.
aaronk ALL=NOPASSWD: /bin/su – postgres
Lagre og lukk filen.
Prøv nå å su
til kontoen postgres som brukeren aaronk, skallet skal ikke be deg om å angi et passord:
sudo su - postgres
Det er alt for nå! For mer informasjon, se PAM-siden for manuell oppføring (man pam.conf) og den for sudo-kommando også (man sudo).
man pam.conf
man sudo