Kaip perjungti (su) į kitą vartotojo abonementą be slaptažodžio


Šiame vadove parodysime, kaip pereiti prie kitos ar konkrečios vartotojo paskyros nereikalaujant slaptažodžio. Pavyzdžiui, turime vartotojo abonementą, pavadintą postgres (numatytoji PostgreSQL supernaudotojo sistemos paskyra), norime, kad kiekvienas vartotojas (paprastai mūsų PostgreSQL duomenų bazė ir sistemos administratoriai) grupėje postgres, kad perjungtumėte į postgres paskyrą naudodami komandą su neįvesdami slaptažodžio.

Pagal numatytuosius nustatymus tik root vartotojas gali persijungti į kitą vartotojo abonementą neįvesdamas slaptažodžio. Bet kuris kitas vartotojas bus paragintas įvesti vartotojo abonemento, į kurį jie pereina, slaptažodį (arba jei jie naudoja komandą sudo, jie bus paraginti įvesti slaptažodį), jei nepateiks teisingo slaptažodžio, jie gaus Klaida „Autentifikavimas nepavyko“, kaip parodyta toliau pateiktoje ekrano kopijoje.

Norėdami išspręsti aukščiau pateiktą problemą, galite naudoti bet kurį iš dviejų toliau pateiktų sprendimų.

1. PAM autentifikavimo modulio naudojimas

PAM (Įjungiami autentifikavimo moduliai) yra vartotojo autentifikavimo šiuolaikinėse Linux operacinėse sistemose pagrindas. Kad konkrečios grupės naudotojai galėtų persijungti į kitą vartotojo abonementą be slaptažodžio, galime pakeisti numatytuosius su komandos PAM nustatymus, esančius /etc/pam.d/su . failą.

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

Pridėkite toliau nurodytas konfigūracijas po „pam_rootok.so“, kaip parodyta toliau esančioje ekrano kopijoje.

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

Aukščiau pateiktoje konfigūracijoje pirmoji eilutė patikrina, ar tikslinis vartotojas yra postgres, jei taip, paslauga tikrina dabartinį vartotoją, kitaip eilutė default=1 praleidžiama ir atliekami įprasti autentifikavimo veiksmai.

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

Toliau pateiktoje eilutėje patikrinama, ar dabartinis naudotojas yra grupėje postgres, jei taip, autentifikavimo procesas laikomas sėkmingu ir grąžinamas kaip pakankamas. Kitu atveju atliekami įprasti autentifikavimo veiksmai.

auth       sufficient   pam_succeed_if.so use_uid user ingroup postgres

Išsaugokite failą ir uždarykite jį.

Tada pridėkite naudotoją (pvz., aaronk), kurį norite su, prie paskyros postgres be slaptažodžio prie grupės postgres naudodami komandą usermod.

$sudo usermod -aG postgres aaronk

Dabar pabandykite su prisijungti prie postgres paskyros kaip naudotojo aaronk, jūsų neturėtų būti prašoma įvesti slaptažodį, kaip parodyta šioje ekrano kopijoje:

su - postgres

2. Sudoers failo naudojimas

Taip pat galite su kitam vartotojui nereikalaujant slaptažodžio, atlikdami kai kuriuos pakeitimus sudoers faile. Tokiu atveju vartotojas (pvz., aaronk), kuris persijungs į kitą vartotojo abonementą (pvz., postgres), turi būti sudoers faile arba sudo grupėje. gali iškviesti sudo komandą.

sudo visudo

Tada po eilute „%sudo ALL=(ALL:ALL) ALL ” pridėkite šią konfigūraciją, kaip parodyta šioje ekrano kopijoje.

aaronk ALL=NOPASSWD: /bin/su – postgres

Išsaugokite ir uždarykite failą.

Dabar pabandykite su prisijungti prie paskyros postgres kaip naudotojo aaronk, apvalkalas neturėtų raginti įvesti slaptažodžio:

sudo su - postgres

Tai kol kas viskas! Norėdami gauti daugiau informacijos, žr. PAM rankinio įvedimo puslapį (man pam.conf) ir sudo komandos puslapį (man sudo).

man pam.conf
man sudo