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