0xsys.pl

Przełączanie użytkownika bez podawania hasła

Pracując komputerze na wielu kontach, na przykład w przypadku serwera z wieloma wirtualnymi hostami, konieczne jest przełączanie z konta podstawowego na inne konta. W takim przypadku zwykle używa się polecenia su - USER, które jednak ma tę wadę, że każdorazowo trzeba podawać hasło do konta.

Możliwe jednak wykorzystanie sudo do pracy na innych kontach bez konieczności podawania hasła, a następnie zdefiniowanie wygodnego aliasu za pomocą którego będzie można przełączać się na wskazane konto po wpisaniu pojedynczej komendy i naciśnięciu klawisza Enter.

W tym celu w pierwszej kolejności należy utworzyć nową regułę w /etc/sudoers.d/:

Np. w pliku 011_switch_user:

# Lista użytkowników
Runas_Alias MOJE_KONTA = konto1, konto2, konto3

# Deklaracja dostępu bez hasła
twój_login ALL=(MOJE_KONTA) NOPASSWD: ALL

Od tej chwili możesz logować się na te konta bez hasła za pomocą sudo :

$ sudo -u user -i

A to polecenie można jeszcze bardziej skrócić deklarując aliasy.

W tym celu utwórz plik ~/.bash.aliases o następującej zawartości.

alias jakis_alias1='sudo -u user1 -i'
alias jakiś_alias2='sudo -u user2 -i'
alias jakiś_alias3='sudo -u user3 -i'

A na koniec wczytaj ten plik do bieżącej sesji terminala.

source ~/.bash_aliases

Od tego czasu możesz przełączać się z konta podstawowego na inne konta za pomocą pojedynczego polecenia.
#linux#sudo