"Dieses Konto ist derzeit nicht verfügbar" Fehler beim Versuch, ssh


46

Ein Fehler tritt auf, wenn ich versuche, eine SSH-Verbindung herzustellen:

$ ssh -p 22 www-data@x.x.x.x 
This account is currently not available

Antworten:


59

Sie erhalten den This account is currently not available.Fehler, weil die Shell für den Benutzer auf festgelegt www-dataist /usr/sbin/nologin, und dies aus einem sehr guten Grund. Sie sollten sich nicht als anmelden, da www-dataes sich um einen speziellen Benutzer / eine spezielle Gruppe handelt, die vom Webserver verwendet wird und nicht für die reguläre Shell-Verwendung vorgesehen ist.

EDIT : Es ist eine besonders schlechte Idee , sudoRechte zu geben www-data. Wenn Apache mit Root-Berechtigungen ausgeführt werden sollte, hätte es keine eigene Gruppe. Auf diese Weise schaffen Sie riesige Sicherheitslücken. Du wurdest gewarnt.


5
Das ist nicht sehr konstruktiv. Welche Informationen sollten Ihrer Meinung nach hinzugefügt werden, um diese Antwort zu verbessern?
Kraxor

4
@kraxor ist korrekt, aber wenn Sie müssen, können Sie sich als root anmelden und / usr / sbin / nologin in / etc / passwd nach / bin / bash ändern, um diesem Benutzer Shell-Zugriff zu gewähren. Ich mache das, wenn ich nur ein Snap-Binary als Webserver laufen lasse. www-daten sind generell für nginx / apache unter ubuntu reserviert, daher der status no login.
Ingenieur

4
@ RyanNerd Sie haben die Wahl, "einer Ratte keinen Dollar an Sicherheitskacke zu geben". Es wird nicht empfohlen, alles als root auszuführen, auch nicht in Docker. Sie können Apache natürlich so konfigurieren, dass es als ausgeführt wird root, oder eine Anmeldeshell hinzufügen www-data, aber das entspricht dem Öffnen einer Flasche Wein, indem Sie die Flasche zerbrechen, weil Sie zu faul und nachlässig sind, um einen Korkenzieher zu verwenden.
Kraxor

@kraxoder Ihr Link zu Docker ist nicht mehr aktuell. ALLES gehört immer noch root in Docker und es ist immer noch ein Problem .
RyanNerd

Ich habe einen ähnlichen Fall. Ich möchte LibreOffice im kopflosen Modus so ausführen, dass es von einem PHP-Skript zum Konvertieren von Dokumenten aufgerufen werden kann und dass Dateien als WWW-Daten auf die Festplatte geschrieben werden können, da diese Dateien später von WWW-Daten gelöscht werden müssen (Teil von ein PHP-Skript), um sie zu bereinigen. Dies (Starten eines kopflosen LibreOffice als Benutzer-WWW-Daten) hat in früheren Versionen von Ubuntu funktioniert, und ich verstehe, dass dies eine Sicherheitsverbesserung gegenüber diesen früheren Versionen darstellt.
Ywarnier

56

Ich bin mit den anderen einverstanden, dass das Zulassen der Anmeldung über SSH durch den Benutzer www-data im Allgemeinen eine schlechte Idee ist. Wenn Sie sich jedoch mit einem normalen Benutzer angemeldet haben, kann es nützlich sein, mehrere Befehle gleichzeitig mit den Berechtigungen des Benutzers www auszuführen. Datenbenutzer. In diesem Fall kann man laufen

sudo su -l www-data -s /bin/bash

und Sie können als Benutzer von www-data auf Ihre Dateien zugreifen.


2
Sehr nützlich zum Debuggen von Berechtigungen für einen Daemon / Service-Benutzer
jmng

Du hast mir gerade den Tag gerettet, danke! Ich konnte den Perl-fcgi-Dienst nicht starten, da das -s /bin/bash
Startskript

-1

Die erste Frage, die ich stellen müsste, ist, was versuchen Sie damit zu erreichen?

kraxor ist zu 100% korrekt. Sie sollten niemals in der Lage sein, mit Ihrem Apache / Nginx-Benutzer auf Ihren Server zu sshen. Dies lädt jeden Hacker mit einer halben Gehirnzelle in Ihren Server ein.

Wenn Sie ein Skript oder ein Programm als dieser Benutzer ausführen müssen Sie könnten versuchen , sudo -u www-data yourscriptoder Sie könnten zeitlich chownauf die Datei an einen Benutzer mit Anmeldeberechtigungen. Es ist nur eine abweichende schlechte Idee, diesem Konto diese Art von Zugriff zu gewähren.


6
Sie sollten wissen, dass su -dies bei Konten mit deaktivierter Anmeldung nicht funktioniert.
Sorin

Welches Konto ist deaktiviert? Es sagt nichts über die
Deaktivierung

1
Nologin in passwd bedeutet deaktiviert Login :)
Sorin

1
Es ist ein Dienstkonto, kein deaktiviertes Konto. Sie können Befehle unter diesem Konto ausführen
TheStarvingGeek,

Mein Server scheint diese Unterscheidung nicht zu kennen @TheStarvingGeek
LovesTha
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.