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 jā
, 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
$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ī
$ 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