GNU/Linux >> Znalost Linux >  >> Linux

Jak přepnout (su) na jiný uživatelský účet bez hesla

V této příručce si ukážeme, jak přepnout na jiný nebo konkrétní uživatelský účet bez nutnosti zadání hesla. Máme například uživatelský účet s názvem postgres (výchozí PostgreSQL systémový účet superuživatele), chceme každého uživatele (typicky náš PostgreSQL administrátoři databáze a systému) ve skupině nazvané postgres přepnete na postgres účet pomocí su příkaz bez zadání hesla.

Ve výchozím nastavení může pouze uživatel root přepnout na jiný uživatelský účet bez zadání hesla. Každý jiný uživatel bude vyzván k zadání hesla uživatelského účtu, na který přechází (nebo pokud používá příkaz sudo, bude vyzván k zadání hesla), pokud neposkytne správné heslo, dostane „ověření se nezdařilo “, jak je znázorněno na následujícím snímku obrazovky.

K vyřešení výše uvedeného problému můžete použít kterékoli ze dvou níže uvedených řešení.

1. Použití PAM Authentication Module

PAM (Připojitelné ověřovací moduly ) jsou jádrem ověřování uživatelů v moderních operačních systémech Linux. Abychom uživatelům v určité skupině umožnili přepnout na jiný uživatelský účet bez hesla, můžeme upravit výchozí nastavení PAM pro příkaz su v /etc/pam.d/su soubor.

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

Za „auth dostatečný pam_rootok.so přidejte následující konfigurace “, jak je znázorněno na následujícím snímku obrazovky.

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

Ve výše uvedené konfiguraci první řádek kontroluje, zda je cílový uživatel postgres , pokud ano, služba zkontroluje aktuálního uživatele, v opačném případě default=1 řádek je přeskočen a jsou provedeny běžné autentizační kroky.

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

Následující řádek kontroluje, zda je aktuální uživatel ve skupině postgres , pokud yes , je proces ověřování považován za úspěšný a výsledkem je dostatečná návratnost. Jinak se provedou běžné ověřovací kroky.

auth       sufficient   pam_succeed_if.so use_uid user ingroup postgres

Uložte soubor a zavřete jej.

Dále přidejte uživatele (například aaronk ), které chcete su na účet postgres bez hesla do skupiny postgres pomocí příkazu usermod.

$sudo usermod -aG postgres aaronk

Nyní zkuste su na postgres účtu jako uživatel aaronk , neměli byste být vyzváni k zadání hesla, jak je znázorněno na následujícím snímku obrazovky:

$ su - postgres

2. Pomocí souboru Sudoers

Můžete také su jinému uživateli bez vyžadování hesla provedením některých změn v souboru sudoers. V tomto případě uživatel (například aaronk ), který přejde na jiný uživatelský účet (například postgres ) by měl být v souboru sudoers nebo ve skupině sudo, aby bylo možné vyvolat příkaz sudo .

$ sudo visudo

Poté přidejte následující konfiguraci pod řádek “%sudo ALL=(ALL:ALL) ALL” jak je znázorněno na následujícím snímku obrazovky.

aaronk ALL=NOPASSWD: /bin/su – postgres

Uložte a zavřete soubor.

Nyní zkuste su na účet postgres jako uživatel aaronk , shell by vás neměl vyzývat k zadání hesla:

$ sudo su - postgres

To je prozatím vše! Další informace naleznete na stránce ručního zadávání PAM (man pam.conf ) a příkaz sudo také (man sudo ).

$ man pam.conf
$ man sudo
Související čtení :10 užitečných konfigurací Sudoers pro nastavení „sudo“ v Linuxu
Linux
  1. Jak přidám FTP účet v Plesku?

  2. Jak nakonfigurovat postgresql poprvé?

  3. jak vytvoříte ssh klíč pro jiného uživatele?

  1. Jak ručně vytvořit uživatelský účet Linux

  2. Jak spustit skript jako jiný uživatel bez hesla?

  3. Jak mohu přejmenovat uživatele unixu?

  1. Jak zobrazit historii příkazů jiného uživatele v Linuxu?

  2. Jak ssh jako jiný uživatel

  3. Jak vytvořit extra uživatele root?