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?


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)


39

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


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
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.