Kā pārslēgt (su) uz citu lietotāja kontu bez paroles


Šajā ceļvedī mēs parādīsim, kā pāriet uz citu vai noteiktu lietotāja kontu, neprasot paroli. Piemēram, mums ir lietotāja konts, ko sauc par postgres (noklusējuma PostgreSQL superlietotāja sistēmas konts), mēs vēlamies, lai katrs lietotājs (parasti mūsu PostgreSQL datu bāze un sistēmas administratori) grupā Postgres pārslēgtos uz postgres kontu, izmantojot su komandu, neievadot paroli.

Pēc noklusējuma tikai root lietotājs var pāriet uz citu lietotāja kontu, neievadot paroli. Jebkuram citam lietotājam tiks piedāvāts ievadīt tā lietotāja konta paroli, uz kuru viņi pārslēdzas (vai, ja viņš izmanto komandu sudo, tiks lūgts ievadīt paroli), ja viņš nenorāda pareizo paroli, viņi saņem kļūda “autentifikācija neizdevās”, kā parādīts nākamajā ekrānuzņēmumā.

Lai atrisinātu iepriekš minēto problēmu, varat izmantot jebkuru no diviem tālāk sniegtajiem risinājumiem.

1. Izmantojot PAM autentifikācijas moduli

PAM (Pluggable autentifikācijas moduļi) ir lietotāju autentifikācijas pamatā mūsdienu Linux operētājsistēmās. Lai ļautu konkrētas grupas lietotājiem pāriet uz citu lietotāja kontu bez paroles, mēs varam mainīt noklusējuma PAM iestatījumus komandai su failā /etc/pam.d/su.

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

Pievienojiet šādas konfigurācijas aiz “auth pietiek pam_rootok.so”, kā parādīts nākamajā ekrānuzņēmumā.

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

Iepriekšminētajā konfigurācijā pirmā rinda pārbauda, vai mērķa lietotājs ir postgres, ja tāds ir, pakalpojums pārbauda pašreizējo lietotāju, pretējā gadījumā rinda default = 1 tiek izlaista un tiek izpildītas parastās autentifikācijas darbības .

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

Rindiņa, kas seko, pārbauda, vai pašreizējais lietotājs ir grupas postgres, ja , autentifikācijas process tiek uzskatīts par veiksmīgu un rezultātā tiek atgriezts pietiekams. Pretējā gadījumā tiek izpildītas parastās autentifikācijas darbības.

auth       sufficient   pam_succeed_if.so use_uid user ingroup postgres

Saglabājiet failu un aizveriet to.

Pēc tam pievienojiet lietotāju (piemēram, aaronk), kuru vēlaties su , konta postgres bez paroles grupai postgres, izmantojot komandu usermod.

$sudo usermod -aG postgres aaronk

Tagad mēģiniet su pie postgres konta kā lietotājs Aaronk, jums nevajadzētu lūgt paroli, kā parādīts šajā ekrānuzņēmumā:

$ su - postgres

2. Sudoers File izmantošana

Varat arī su citam lietotājam, neprasot paroli, veicot dažas izmaiņas sudoers failā. Šajā gadījumā lietotājam (piemēram, aaronk), kurš pārslēgsies uz citu lietotāja kontu (piemēram, postgres), jābūt sudoers failā vai sudo grupā, lai varētu izsaukt komandu sudo.

$ sudo visudo

Pēc tam pievienojiet šādu konfigurāciju zem rindas “% sudo ALL = (ALL: ALL) ALL” , kā parādīts nākamajā ekrānuzņēmumā.

aaronk ALL=NOPASSWD: /bin/su – postgres

Saglabājiet un aizveriet failu.

Tagad mēģiniet su piekļūt kontam postgres kā lietotājam aaronk, čaulai nevajadzētu pamudināt jūs ievadīt paroli:

$ sudo su - postgres

Tas pagaidām ir viss! Lai iegūtu papildinformāciju, skatiet PAM manuālās ievades lapu (man pam.conf) un arī sudo komandu (man sudo).

$ man pam.conf
$ man sudo