Linux: Polecenie su

7-sty-2023

Polecenie su może służyć do zmiany tożsamości w sesji Linux. Jednak w tym przypadku pojawił sie błąd:

sudo su - redis
This account is currently not available.

O co chodzi? Chodzi o to, że użytkownik redis nie ma przypisanego żadnego shella, a właściwie to ma… nologin:

grep redis: /etc/passwd
redis:x:113:118::/var/lib/redis:/usr/sbin/nologin

Jeśli koniecznie chcesz wykonać su na to konto, to można by ten shell zmienić na /bin/bash, ale… jeśli ktoś pomyślał o takim skonfigurowaniu konta, to pewnie miał ku temu powody.

sudo usermod -s /bin/bash redis

No to co można zrobić dalej? Może wcale nie trzeba przełączać się na to konto, może po prostu wystarczy uruchamiać pojedyncze polecenia? Jeśli tak, to zobacz:

 sudo -u redis -s /bin/bash -c "whoami" 
redis

sudo może na koncie wskazywanym opcją -u z wykorzystaniem shella wskazywanym przez opcję -s wykonać polecenie! To super. Jeśli to polecenie miałobybyć bradziej złożone, np. miałoby więcej opcji, przekierowywałoby output do pliku itp. to nie zapomnij o umieszczeniu komendy w cudzysłowach lub apostrofach.

Komentarze są wyłączone

Autor: Rafał Kraik