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