Ausführen eines Befehls als Nologin-Benutzer


43

Ich habe vor kurzem meinen Server so eingerichtet, dass meine "virtuellen" suPHP-Benutzer mithilfe dieses Artikels nicht angemeldet werden können

Mein Problem ist jetzt , dass vor , wenn ich einen lief rakeBefehl für meine Ruby on Rails - Anwendung auf dem Server ausgeführt wird , hat ich suin zu gehen www-dataund den Befehl von dort ausführen - natürlich kann ich das nicht mehr , weil die nologin.

Wie kann ich als Root-Benutzer Befehle als andere Benutzer ausführen, auch wenn sie nicht angemeldet sind?


Eine Möglichkeit besteht darin, eine Shell für diesen Benutzer zu starten (wobei die Shell explizit angegeben wird): sudo -u www-data bash
Führen Sie

@ cyberx86 Ihre Lösung ist ein Genuss. Könnten Sie sie als Antwort für mich einreichen?

Antworten:


50

Eine Möglichkeit besteht darin, eine Shell für diesen Benutzer zu starten (wobei die Shell explizit angegeben wird):

sudo -u www-data bash 

Dadurch wird eine (Bash-) Shell als angegebener Benutzer gestartet. Anschließend können Sie Ihre Befehle ausführen und sich abmelden (um zur vorherigen Shell zurückzukehren).


39

Als root können Sie verwenden su -s /bin/sh $user - die -sOption überschreibt die konfigurierte Shell für den Benutzer.


1
Das scheint mir immer ein Fehler zu sein.

Funktioniert super für mich, hatte noch nie ein Problem. Beim Ausführen von Skripten mit Bash-Syntax wird / bin / bash anstelle von / bin / sh benötigt
ekerner
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.