(Plesk for Linux) Shell-Einstellungen für geplante Aufgaben
Inhalt: Sie können festlegen, dass Kunden geplante Aufgaben erstellen dürfen, über die Befehle auf dem Server ausgeführt werden können. In Plesk für Linux wird über die verwendete Shell festgelegt, auf welche Bereiche des Dateisystems geplante Aufgaben Zugriff haben. Standardmäßig wird der Zugriff auf den Webspace des Kunden beschränkt. Der Plesk Administrator kann dies jedoch ändern.
In diesem Artikel erfahren Sie, wie Sie die Standard-Shell für geplante Aufgaben festlegen, wie Sie eine benutzerdefinierte Shell für ein einzelnes Abonnement auswählen und wie Sie einem Kunden erlauben, eine benutzerdefinierte Shell für sein Abonnement zu konfigurieren. Außerdem wird hier beschrieben, wie Sie Kunden daran hindern, die geplanten Aufgaben des Typs „Befehl ausführen“ zu verwenden.
Hinweis: Falls Ihnen das Konzept „Linux-Shell“ nicht geläufig sein sollte, empfehlen wir, sich über das Thema zu informieren, bevor Sie die in diesem Kapitel beschriebenen Einstellungen ändern.
Welche Shell wird für die Ausführung von geplanten Aufgaben verwendet?
Die Shell, die für geplante Aufgaben des Typs „Befehl ausführen“ eingesetzt wird, ist an den Systembenutzer des Abonnements gebunden. Das heißt, dass für alle geplanten Aufgaben, die in einem Abonnement erstellt werden, die gleiche Shell verwendet wird. Standardmäßig stimmt die Shell mit der Standard-Shell überein, die in den Servereinstellungen konfiguriert ist, und wird für alle Abonnements auf dem Server verwendet. Es gibt jedoch zwei Ausnahmen dieser Regel:
- Der Plesk Administrator kann für jedes Abonnement auf dem Server eine beliebige Shell auswählen.
- Der Plesk Administrator kann dem Inhaber eines Abonnements Berechtigungen gewähren, um eine benutzerdefinierte Shell auszuwählen.
In beiden Fällen wird für geplante Aufgaben des Typs „Befehl ausführen“ in einem Abonnement die angepasste Shell und nicht die Standard-Shell verwendet.
Warum kann eine andere Shell verwendet werden?
In der Regel wird die Shell /bin/bash (chrooted)
als Standard-Shell für geplante Aufgaben konfiguriert. So haben Befehle, die über geplante Aufgaben ausgeführt werden, nur Zugriff auf Dateien im Webspace, der mit dem Abonnement verknüpft ist. Dies ist eine wichtige Sicherheitsmaßnahme, mit der sichergestellt wird, dass Kunden geplante Aufgaben nicht dazu einsetzen, um die Vorgänge des Servers zu unterbrechen, und nicht auf Dateien des Plesk Administrators oder anderer Kunden zugreifen können.
Bemerkung: Diese Einstellung gilt für alle Abonnements auf dem Server und damit auch für die Abonnements des Plesk Administrators. Dies findet jedoch keine Anwendung auf die geplanten Aufgaben, die der Plesk Administrator unter Tools & Einstellungen > Geplante Aufgaben (Cronjobs) (unter „Tools & Ressourcen“) erstellt und die mit dem Benutzer root
ausgeführt werden.
Der Hauptgrund, die Standard-Shell für geplante Aufgaben nicht zu verwenden, ist, es allen Nutzern auf dem Server zu ermöglichen, Befehle über geplante Aufgaben auszuführen, mit denen auf das komplette Dateisystem des Servers zugegriffen werden kann.
Wenn Sie den Server nicht mit anderen Nutzern teilen oder Sie den anderen Mandanten vertrauen, können Sie eine Shell ohne Chroot für geplante Aufgaben auswählen. Wenn Sie sich nicht sicher sind, welche Shell ohne Chroot Sie für geplante Aufgaben auswählen sollen, verwenden Sie /bin/bash
.
Auf einem gemeinsam genutzten Server empfehlen wir, die standardmäßig ausgewählte Shell für geplante Aufgaben /bin/bash (chrooted)
beizubehalten. Falls einer Ihrer Kunden eine Shell ohne Chroot für seine geplanten Aufgaben benötigt, können Sie dies individuell für einzelne Abonnements gewähren.
Warnung: Wenn Sie einem Kunden Zugriff auf andere Shells als /bin/bash (chrooted)
geben, kann dieser Binärdateien ausführen und auf Dateien und Daten zugreifen, die nicht ihm gehören. Dies ist ein Sicherheitsrisiko und kann dazu führen, dass ein Server kompromittiert wird.
Festlegen der Standard-Shell für geplante Aufgaben
Um die Shell festzulegen, die standardmäßig für geplante Aufgaben des Typs „Befehl ausführen“ verwendet wird, gehen Sie zu Tools & Einstellungen > Geplante Aufgaben (Cronjobs) (unter „Tools & Ressourcen“) > Einstellungen und wählen Sie die gewünschte Shell aus dem Menü aus.
Oder Sie können sich über SSH im Server anmelden und den folgenden Befehl ausführen:
plesk bin server_pref -u -crontab-secure-shell "<shell>"
Geben Sie dabei die gewünschte Shell unter <Shell>
ein. Zum Beispiel:
plesk bin server_pref -u -crontab-secure-shell "/bin/bash"
Verhindern der Ausführung von geplanten Aufgaben des Typs „Befehl ausführen“
Wenn Sie glauben, dass einer Ihrer Kunden eine geplante Aufgabe erstellt hat, mit der schadhafte Aktivitäten auf dem Server vorgenommen werden (zum Beispiel das Senden von Spam), können Sie alle geplanten Aufgaben des Typs „Befehl ausführen“ deaktivieren, bis Sie den Hintergrund ausgeforscht haben.
Melden Sie sich über SSH im Plesk Server an und führen Sie den folgenden Befehl aus:
plesk bin server_pref -u -crontab-secure-shell "/bin/false"
Damit wird /bin/false
als Standard-Shell für geplante Aufgaben festgelegt. Alle geplanten Aufgaben des Typs „Befehl ausführen“, die von Kunden erstellt werden, schlagen somit fehl.
Bemerkung: Kunden, die die Berechtigung haben, eine andere Shell auszuwählen, können diese Einstellung für ihre Abonnements außer Kraft setzen, indem sie eine andere Shell auswählen.
Festlegen einer benutzerdefinierten Shell für ein einzelnes Abonnement
So legen Sie eine benutzerdefinierte Shell für ein einzelnes Abonnement fest:
- Gehen Sie zu Abonnements, klicken Sie auf das gewünschte Abonnement, rufen Sie den Tab „Hosting und DNS“ auf und klicken Sie anschließend auf Hosting.
- Wählen Sie die gewünschte Shell aus dem Menü „SSH-Zugriff“ aus und klicken Sie auf Speichern.
Die ausgewählte Shell wird für alle geplanten Aufgaben des Typs „Befehl ausführen“ im Abonnement eingesetzt.
Zulassen, dass ein Kunde eine benutzerdefinierte Shell für sein Abonnement festlegt
So lassen Sie zu, dass ein Kunde eine benutzerdefinierte Shell für eines seiner Abonnements festlegt:
- Gehen Sie zu Abonnements, klicken Sie auf das gewünschte Abonnement und dann auf Anpassen.
- Aktivieren Sie auf dem Tab „Berechtigungen“ die Kontrollkästchen „Verwaltung der Hosting-Einstellungen“ und „Einrichtung potenziell unsicherer Webskripting-Optionen, die die Richtlinien des Providers außer Kraft setzen“ und klicken Sie dann auf Aktualisieren & sperren.
Damit können Kunden eine andere Shell unter Websites & Domains > Tab Hosting und DNS > Hosting auswählen. In diesem Fall wird die ausgewählte Shell für alle geplanten Aufgaben des Typs „Befehl ausführen“ im entsprechenden Abonnement eingesetzt.
Überprüfen, welche Shell für ein Abonnement verwendet wird
Führen Sie diese Schritte aus, um herauszufinden, welche Shell für geplante Aufgaben des Typs „Befehl ausführen“ in einem Abonnement eingesetzt wird:
- Suchen Sie den Benutzernamen des Systembenutzers für das Abonnement. Gehen Sie dazu zu Abonnements, klicken Sie auf das gewünschte Abonnement, rufen Sie den Tab „Hosting und DNS“ auf und klicken Sie dann auf Hosting. Suchen Sie nach dem Feld „Benutzername“.
- Melden Sie sich über SSH im Plesk Server an und führen Sie den folgenden Befehl aus:
crontab -u <system user name> -l | grep SHELL