Jak przełączyć (SU) na inne konto użytkownika bez hasła
- 2665
- 839
- Juliusz Sienkiewicz
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żytkownikaMoż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 PostgresSkonfiguruj 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 - PostgresDodaj 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 - postgresDodaj 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 - postgresPrzełą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 sudoPowiązane czytanie: 10 Przydatne konfiguracje sudoers do ustawiania „sudo” w Linux
- « Konfiguruj login SSH bez hasła dla wielu serwerów zdalnych za pomocą skryptu
- Jak zainstalować PostgreSQL i PGADMIN w RHEL 8 »