Wykonywanie polecenia jako użytkownik nologin

43

Niedawno skonfigurowałem serwer, aby moi wirtualni użytkownicy suPHP nie mogli się zalogować przy użyciu tego artykułu

Mój problem polega na tym, że wcześniej, kiedy uruchomiłem rakepolecenie dla mojej aplikacji Ruby on Rails działającej na serwerze, suwchodziłem do www-datai wykonywałem polecenie stamtąd - oczywiście nie mogę już tego robić z powodu nologin.

Więc jako użytkownik root, w jaki sposób mogę wykonywać polecenia jak inny użytkownik, nawet jeśli są one nologinami?

Tablemaker
źródło
Jednym ze sposobów jest uruchomienie powłoki dla tego użytkownika (jawne określenie powłoki): sudo -u www-data bashwykonaj polecenia i wyloguj się
cyberx86
@ cyberx86 Twoje rozwiązanie działa na ucztę, czy możesz przesłać je jako odpowiedź dla mnie?

Odpowiedzi:

50

Jednym ze sposobów jest uruchomienie powłoki dla tego użytkownika (jawne określenie powłoki):

sudo -u www-data bash 

Spowoduje to uruchomienie powłoki (bash) jako określonego użytkownika. Następnie możesz wykonać swoje polecenia i wylogować się (aby powrócić do poprzedniej powłoki)

cyberx86
źródło
39

Jako root możesz użyć su -s /bin/sh $user - -sopcja przesłania skonfigurowaną powłokę dla użytkownika.

Siergiej Własow
źródło
1
To zawsze wydaje mi się błędne.
Działa świetnie dla mnie, nigdy nie miałem problemu. Podczas uruchamiania skryptów ze składnią bash potrzebuje / bin / bash zamiast / bin / sh
ekerner