Unsaon Pagbalhin (su) sa Lain nga User Account nga walay Password


Sa kini nga giya, ipakita namon kung giunsa ang pagbalhin sa lain o usa ka piho nga account sa gumagamit nga wala magkinahanglan usa ka password. Pananglitan, kami adunay usa ka user account nga gitawag og postgres (ang default PostgreSQL superuser system account), gusto namo ang matag user (kasagaran ang among PostgreSQL database ug system administrator) sa grupo nga gitawag og postgres nga mobalhin sa postgres account gamit ang su command nga walay pagsulod og password.

Sa kasagaran, ang gamut nga tiggamit lamang ang makabalhin sa laing user account nga dili mosulod og password. Bisan kinsa nga lain nga tiggamit maaghat sa pagsulod sa password sa user account nga ilang gibalhinan (o kung gigamit nila ang sudo nga mando, aghaton sila sa pagsulod sa ilang password), kung dili nila ihatag ang husto nga password, makuha nila usa ka \authentication failed error sama sa gipakita sa mosunod nga screenshot.

Mahimo nimong gamiton ang bisan asa sa duha ka solusyon nga gihatag sa ubos aron masulbad ang isyu sa ibabaw.

1. Paggamit sa PAM Authentication Module

Ang PAM (Pluggable authentication modules) anaa sa kinauyokan sa user authentication sa modernong Linux operating system. Aron tugotan ang mga tiggamit sa usa ka partikular nga grupo nga mobalhin sa laing user account nga walay password, mahimo namong usbon ang default PAM settings alang sa su command sa /etc/pam.d/su file.

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

Idugang ang mosunod nga mga pag-configure human sa \auth sufficient pam_rootok.so ingon sa gipakita sa mosunod nga screenshot.

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

Sa pag-configure sa ibabaw, ang unang linya nagsusi kung ang target nga tiggamit mao ang mga postgres, kung kini mao, ang serbisyo nagsusi sa kasamtangan nga tiggamit, kung dili, ang default=1 nga linya gilaktawan ug ang normal nga mga lakang sa pag-authenticate gipatuman .

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

Ang linya nga nagsunod nagsusi kung ang kasamtangan nga tiggamit naa sa mga postgres sa grupo, kung oo, ang proseso sa pag-authenticate giisip nga malampuson ug nagbalik nga igo nga sangputanan. Kung dili, ang normal nga mga lakang sa pag-authenticate ipatuman.

auth       sufficient   pam_succeed_if.so use_uid user ingroup postgres

I-save ang file ug isira kini.

Sunod, idugang ang user (pananglitan aaronk) nga gusto nimong su sa account postgres nga walay password sa group postgres gamit ang usermod command.

$sudo usermod -aG postgres aaronk

Karon sulayi ang su sa postgres account isip user aaronk, dili ka kinahanglan nga aghaton alang sa usa ka password sama sa gipakita sa mosunod nga screenshot:

$ su - postgres

2. Paggamit sa Sudoers File

Mahimo ka usab nga su sa lain nga tiggamit nga wala magkinahanglan usa ka password pinaagi sa paghimo og pipila ka mga pagbag-o sa sudoers file. Niini nga kaso, ang user (pananglitan aaronk) nga mobalhin sa laing user account (pananglitan postgres) kinahanglan nga naa sa sudoers file o sa sudo nga grupo aron maka-invoke sa sudo command.

$ sudo visudo

Dayon idugang ang mosunod nga configuration ubos sa linya \%sudo ALL=(ALL:ALL) ALL” ingon sa gipakita sa mosunod nga screenshot.

aaronk ALL=NOPASSWD: /bin/su – postgres

I-save ug isira ang file.

Karon sulayi ang su sa mga postgres sa account ingon nga ang user aaronk, ang kabhang kinahanglan dili mag-aghat kanimo sa pagsulod sa usa ka password:

$ sudo su - postgres

Kana lang sa pagkakaron! Para sa dugang nga impormasyon, tan-awa ang PAM manual entry page (man pam.conf) ug kanang sa sudo command usab (man sudo).

$ man pam.conf
$ man sudo