Hvernig á að skipta (su) yfir í annan notandareikning án lykilorðs


Í þessari handbók munum við sýna hvernig á að skipta yfir í annan eða sérstakan notandareikning án þess að þurfa lykilorð. Til dæmis erum við með notendareikning sem heitir postgres (sjálfgefinn PostgreSQL ofurnotanda kerfisreikningur), við viljum að allir notendur (venjulega PostgreSQL gagnagrunnurinn okkar og kerfisstjórar) í hópnum sem heitir postgres skipti yfir í postgres reikninginn með su skipun án þess að slá inn lykilorð.

Sjálfgefið er að aðeins rótnotandinn getur skipt yfir í annan notandareikning án þess að slá inn lykilorð. Allir aðrir notendur verða beðnir um að slá inn lykilorð notendareikningsins sem þeir eru að skipta yfir á (eða ef þeir nota sudo skipunina verða þeir beðnir um að slá inn lykilorðið sitt), ef þeir gefa ekki upp rétt lykilorð fá þeir villa í „staðfesting mistókst“ eins og sést á eftirfarandi skjámynd.

Þú getur notað hvaða af tveimur lausnum sem er að finna hér að neðan til að leysa ofangreint vandamál.

1. Notkun PAM Authentication Module

PAM (Plugable authentication modules) eru kjarninn í notendavottun á nútíma Linux stýrikerfum. Til að leyfa notendum í tilteknum hópi að skipta yfir í annan notandareikning án lykilorðs getum við breytt sjálfgefnum PAM stillingum fyrir su skipunina í /etc/pam.d/su skránni.

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

Bættu við eftirfarandi stillingum eftir \auth enough pam_rootok.so eins og sýnt er á eftirfarandi skjámynd.

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

Í ofangreindri uppsetningu athugar fyrsta línan hvort marknotandinn sé postgres, ef svo er, athugar þjónustan núverandi notanda, annars er default=1 línunni sleppt og venjuleg auðkenningarskref eru framkvæmd .

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

Línan sem fylgir athugar hvort núverandi notandi sé í hópnum postgres, ef telst auðkenningarferlið vel heppnað og skilar nægilegt í kjölfarið. Annars eru venjuleg auðkenningarskref framkvæmd.

auth       sufficient   pam_succeed_if.so use_uid user ingroup postgres

Vistaðu skrána og lokaðu henni.

Næst skaltu bæta notandanum (til dæmis aaronk) sem þú vilt su við reikninginn postgres án lykilorðs við hópinn postgres með usermod skipuninni.

$sudo usermod -aG postgres aaronk

Reyndu nú að su inn á postgres reikninginn sem notandinn aaronk, þú ættir ekki að vera beðinn um lykilorð eins og sýnt er á eftirfarandi skjámynd:

$ su - postgres

2. Notkun Sudoers skrá

Þú getur líka su til annars notanda án þess að þurfa lykilorð með því að gera nokkrar breytingar á sudoers skránni. Í þessu tilviki ætti notandinn (til dæmis aaronk) sem mun skipta yfir í annan notendareikning (til dæmis postgres) að vera í sudoers skránni eða í sudo hópnum til að geta kallað fram sudo skipunina.

$ sudo visudo

Bættu síðan við eftirfarandi uppsetningu fyrir neðan línuna \%sudo ALL=(ALL:ALL) ALL eins og sýnt er á eftirfarandi skjámynd.

aaronk ALL=NOPASSWD: /bin/su – postgres

Vistaðu og lokaðu skránni.

Reyndu nú að su á reikninginn postgres sem notandinn aaronk, skelin ætti ekki að biðja þig um að slá inn lykilorð:

$ sudo su - postgres

Það er allt í bili! Fyrir frekari upplýsingar, sjáðu PAM handbókarfærslusíðuna (man pam.conf) og sudo stjórn líka (man sudo).

$ man pam.conf
$ man sudo