Jak przełączyć (SU) na inne konto użytkownika bez hasła

Jak przełączyć (SU) na inne konto użytkownika bez hasła

W tym przewodniku pokażemy, jak przejść na inne lub konkretne konto użytkownika bez konieczności hasła. Na przykład mamy o nazwie konto użytkownika Postgres (domyślny PostgreSQL Konto systemowe Superuser), chcemy każdego użytkownika (zazwyczaj nasz PostgreSQL baza danych i administratorów systemów) w grupie o nazwie Postgres Aby przejść na Postgres konto za pomocą Su polecenie bez wprowadzania hasła.

Domyślnie tylko użytkownik root może przełączyć się na inne konto użytkownika bez wprowadzania hasła. Każdy inny użytkownik zostanie poproszony o wprowadzenie hasła do konta użytkownika, na które przełącza się (lub jeśli korzysta z polecenia Sudo, zostaną poproszeni o wprowadzenie hasła), jeśli nie podają poprawnego hasła, otrzymają, otrzymują jakiś "Uwierzytelnianie nie powiodło się”Błąd, jak pokazano na poniższym zrzucie ekranu.

Błąd niepowodzenia uwierzytelnienia użytkownika

Możesz użyć dowolnego z dwóch rozwiązań podanych poniżej, aby rozwiązać powyższy problem.

1. Za pomocą modułu uwierzytelniania PAM

Pam (Moduły uwierzytelniania wtyczki) są podstawą uwierzytelniania użytkownika w nowoczesnych systemach operacyjnych Linux. Aby umożliwić użytkownikom w określonej grupie na przejście na inne konto użytkownika bez hasła, możemy zmodyfikować domyślne ustawienia PAM dla SU polecenie w /etc/pam.D/Su plik.

# vim /etc /pam.d/su lub $ sudo vim/etc/pam.D/Su 

Dodaj następujące konfiguracje po „Auth Wystarczający pam_rootok.Więc”Jak pokazano na poniższym zrzucie ekranu.

Auth [Success = Ignorde Default = 1] PAM_SUCEDEM_IF.Tak więc użytkownik = Postgres Auth Wystarczający pam_succed_if.Tak więc Use_uid User Ingroup Postgres 

W powyższej konfiguracji pierwszy wiersz sprawdza, czy użytkownik docelowy jest Postgres, Jeśli tak, usługa sprawdza bieżącego użytkownika, w przeciwnym razie Domyślnie = 1 Linia jest pomijana, a normalne kroki uwierzytelniania są wykonywane.

Auth [Success = Ignorde Default = 1] PAM_SUCEDEM_IF.Więc użytkownik = pocztowe 

Linia, która następuje, sprawdza, czy bieżący użytkownik jest w grupie Postgres, Jeśli Tak, Proces uwierzytelniania jest uważany za skuteczny i w rezultacie zwraca wystarczającą. W przeciwnym razie wykonywane są normalne kroki uwierzytelnienia.

Wystarczający auth Pam_Sucede_if.Tak więc Use_uid User Ingroup Postgres 
Skonfiguruj PAM, aby umożliwić uruchomienie polecenia SU bez hasła

Zapisz plik i zamknij go.

Następnie dodaj użytkownika (na przykład Aaronk) że chcesz Su na konto Postgres bez hasła dla grupy Postgres za pomocą polecenia Usermod.

$ sudo Usermod -Ag Postgres Aaronk 

Teraz spróbuj Su do Postgres Konto jako użytkownik Aaronk, Nie należy popierać hasła, jak pokazano na poniższym zrzucie ekranu:

$ su - Postgres 
Dodaj użytkownika do grupy

2. Za pomocą pliku sudoers

Możesz również Su do innego użytkownika bez konieczności hasła, wprowadzając pewne zmiany w pliku Sudoers. W takim przypadku użytkownik (na przykład Aaronk) Kto przejdzie na inne konto użytkownika (na przykład Postgres) powinien znajdować się w pliku Sudoers lub w grupie sudo, aby móc wywołać polecenie sudo.

$ sudo visudo 

Następnie dodaj następującą konfigurację poniżej wiersza „%Sudo all = (all: all) all” Jak pokazano na poniższym zrzucie ekranu.

aaronk all = nopasswd: /bin /su - postgres 
Dodaj użytkownika do pliku Sudoers

Zapisz i zamknij plik.

Teraz spróbuj Su na konto Postgres jako użytkownik Aaronk, Shell nie powinien monitorować podania hasła:

$ sudo su - postgres 
Przełącz na innego użytkownika bez hasła

To wszystko na teraz! Aby uzyskać więcej informacji, zobacz stronę wprowadzającą instrukcję PAM (Man Pam.conf) i polecenie sudo również (Man Sudo).

$ man pam.conf $ man sudo 
Powiązane czytanie: 10 Przydatne konfiguracje sudoers do ustawiania „sudo” w Linux