Parol bolmasa başga ulanyjy hasabyna nädip geçmeli


Bu gollanmada parol talap etmezden başga birine ýa-da belli bir ulanyjy hasabyna nädip geçmelidigini görkezeris. Mysal üçin, bizde postgres atly ulanyjy hasaby bar (adaty PostgreSQL superuser ulgam hasaby), postgres atly topardaky her bir ulanyjynyň (adatça PostgreSQL maglumat bazasy we ulgam dolandyryjylary) postgres hasabyna su parol girizmezden buýruk.

Düzgüne görä, diňe kök ulanyjy parol girizmän başga bir ulanyjy hasabyna geçip biler. Başga bir ulanyja geçýän ulanyjy hasabynyň parolyny girizmek soralar (ýa-da sudo buýrugyny ulanýan bolsa, parolyny girizmek soralýar), dogry parol bermese, alýarlar aşakdaky skrinshotda görkezilişi ýaly\tanamaklyk şowsuz.

Aboveokardaky meseläni çözmek üçin aşakda görkezilen iki çözgüdiň islendigini ulanyp bilersiňiz.

1. PAM tanamak modulyny ulanmak

PAM (dakylýan tanamak modullary) häzirki zaman Linux operasiýa ulgamlarynda ulanyjyny tassyklamagyň özenidir. Belli bir topardaky ulanyjylara parolsyz başga bir ulanyjy hasabyna geçmegine rugsat bermek üçin /etc/pam.d/su faýlyndaky su buýrugy üçin adaty PAM sazlamalaryny üýtgedip bileris.

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

Aşakdaky skrinshotda görkezilişi ýaly\auth ýeterlik pam_rootok.so -dan soň aşakdaky konfigurasiýalary goşuň.

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

Aboveokardaky konfigurasiýada, birinji setir maksat ulanyjynyň postgresdigini ýa-da ýokdugyny barlaýar, hyzmat häzirki ulanyjyny barlaýar, ýogsam, default=1 setiri geçýär we adaty tanamak ädimleri ýerine ýetirilýär .

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

Aşakdaky setir, häzirki ulanyjynyň topar postgresindedigini ýa-da hawa bardygyny barlaýar, tassyklamak prosesi üstünlikli hasaplanýar we netijede ýeterlik derejede gaýdyp gelýär. Otherwiseogsam, adaty tanamak ädimleri ýerine ýetirilýär.

auth       sufficient   pam_succeed_if.so use_uid user ingroup postgres

Faýly ýazdyryň we ýapyň.

Ondan soň, usermod buýrugyny ulanyp, topar postgreslerine paroly bolmazdan su isleýän ulanyjyny goşuň (mysal üçin aaronk).

$sudo usermod -aG postgres aaronk

Indi ulanyjy aaronk hökmünde postgres hasabyna su synap görüň, aşakdaky skrinshotda görkezilişi ýaly parol soralmaz:

$ su - postgres

2. Sudoers faýly ulanmak

Şeýle hem sudoers faýlynda käbir üýtgeşmeler girizip parol talap etmezden başga bir ulanyja su edip bilersiňiz. Bu ýagdaýda başga bir ulanyjy hasabyna (mysal üçin postgres) geçjek ulanyjy (mysal üçin aaronk) sudo buýrugyny ulanyp bilmek üçin sudoers faýlynda ýa-da sudo toparynda bolmaly.

$ sudo visudo

Soňra aşakdaky skrinshotda görkezilişi ýaly \% sudo ALL=(ALL: ALL) ALL setiriniň aşagyna aşakdaky konfigurasiýany goşuň.

aaronk ALL=NOPASSWD: /bin/su – postgres

Faýly ýazdyryň we ýapyň.

Indi ulanyjy aaronk hökmünde hasap postgresine su synap görüň, gabyk parol girizmegiňizi talap etmeli däldir:

$ sudo su - postgres

Bularyň hemmesi häzirlikçe! Has giňişleýin maglumat üçin PAM el bilen giriş sahypasyna (man pam.conf) we sudo buýrugyna serediň (man sudo).

$ man pam.conf
$ man sudo