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?

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" 

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.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.