Uruchom komendę jako użytkownik systemu „Linux” (shell = / bin / false)

29

W systemie Ubuntu 11.04 ( adduser --system) utworzyłem użytkownika „systemowego” do uruchamiania niektórych zadań crona, ale czasami chcę to przetestować, ręcznie uruchamiając polecenia tego użytkownika. Jak najłatwiej to zrobić?

sunie działa, ponieważ użytkownik ma /bin/falseswoją powłokę (co jest w porządku dla crona). Ręcznie zmieniłem powłokę, aby /bin/bashwykonać test, a potem zmieniłem ją ponownie, ale zastanawiam się, czy jest łatwiejszy sposób?

EMP
źródło

Odpowiedzi:

41

Używam su - targetuser -s /bin/bashz powłoki roota.

Do bezpośredniego wykonywania poleceń użyj -c:

su - targetuser -s /bin/bash -c "/bin/echo hello world" 
dmourati
źródło
To działa, dzięki! Jak przegapiłem opcję -s?
EMP
3
możesz także zaznaczyć opcję -c „twoja_komenda_tutaj”, aby przekazać polecenie, które chcesz uruchomić, w przeciwieństwie do oczekiwania na powłokę, a następnie wpisując ją w nowym monicie.
dmourati
2

Użyj sudo. Działa to nawet wtedy, gdy użytkownik nie ma prawdziwej powłoki.

eirescot
źródło