Die Berechtigung wurde verweigert, wenn Werte in sysctl unter Ubuntu 12.04 festgelegt werden

7554
Jay Bhatt

Ich versuche, mein Ubuntu 12.04 VPS (OpenVZ) so zu konfigurieren, dass ein Neustart erfolgt, wenn der Speicher voll ist. Dazu habe ich meiner "/etc/sysctl.conf" -Datei folgende Zeilen hinzugefügt.

vm.panic_on_oom = 1 kernel.panic = 14 

Wenn ich jedoch die Konfiguration mit dem Befehl "sudo sysctl -p" ausführte, erhalte ich folgende Fehler.

error: permission denied on key 'vm.panic_on_oom' error: permission denied on key 'kernel.panic' 

Ich habe versucht, denselben Befehl als root auszuführen und den gleichen Fehler gefunden.

Kann jemand bitte sagen, was ich falsch mache? oder wie kann ich das beheben?

Danke im Voraus.

4

1 Antwort auf die Frage

6
grawity

OpenVZ ist keine virtuelle Maschine, sondern eher wie ein Container - mit anderen Worten, es läuft nur ein einzelner Kernel für den Host und alle "VPS" -Es. Dies bedeutet, dass eine Kernel-Panik das gesamte System zum Erliegen bringen würde, einschließlich aller darauf gehosteten VPS, und viele Kernel-Einstellungen werden vom Host und allen Gästen gemeinsam genutzt.

Sie dürfen diese Einstellungen also nicht ändern, da dies keinen Sinn macht.

Vielen Dank. Ich verstehe jetzt. Aber gibt es eine Möglichkeit, meine eigene VPS einfach neu zu starten, wenn ein OOM-Zustand auftritt? Jay Bhatt vor 11 Jahren 0
@ grawity: Bedeutet das, dass ich keine der Einstellungen in `sysctl.conf` ändern sollte. Ich frage insbesondere in diesem Kontext von Einstellungen zum Deaktivieren des Quellpaketroutings, zum Deaktivieren von ICMP-Umleitungsnachrichten und anderen derartigen Einstellungen (im Anschluss an diesen Sicherheitsartikel http://www.thefanclub.co.za/how-to/how-secure-ubuntu- 1204-lts-server-part-1-Grundlagen)? Eine genauere Frage hier http://serverfault.com/q/581798/64707 Rajat Gupta vor 10 Jahren 0
@ user01: Du kannst es versuchen; Wenn OpenVZ das Ändern einer bestimmten Einstellung pro Container nicht unterstützt, wird nur "Berechtigung verweigert" zurückgegeben. grawity vor 10 Jahren 1
yep das habe ich versucht und es gab für einige Schlüssel "Permission Denied" zurück. Also sollte ich die erlaubten Werte setzen (die nicht erlaubten Werte lassen). Ich meine, werden sie wirklich in Kraft sein, da es sich um einen gemeinsam genutzten Kernel handelt. Wie wird also meine Einstellung auf den gemeinsam genutzten Kernel durchgesetzt? Rajat Gupta vor 10 Jahren 0
Ich denke, die einzige Bedingung, unter der meine Einstellungen funktionieren sollten, wäre, wenn sich etwas ändert, was nicht gemeinsam genutzt wird. Es muss also sein, dass nicht alle Einstellungen in sysctl.conf mit dem Kernel zusammenhängen. Rajat Gupta vor 10 Jahren 0
@ user01: Das sind alles Kernel-Einstellungen, aber der Kernel unterstützt das Platzieren bestimmter Dinge in "Namespaces". (OpenVZ-Container fügen im Grunde nur mehrere Namespaces für / proc, UIDs, Netzwerkgeräte usw. hinzu. Auch der Mainline-Kernel unterstützt bereits Namespaces, die von LXC und Docker verwendet werden, obwohl er die OpenVZ-Funktionalität noch nicht erreicht hat.) Beispiel: Jeder Der Container hat einen anderen Benutzer "root", und alle unterscheiden sich vom Benutzer "root" des Hosts, auch wenn alle über die UID 0 verfügen. In ähnlicher Weise haben Netzwerkgeräte - und einige Netzwerkparameter - auch einen Namespace. grawity vor 10 Jahren 1
Sehr aufschlussreich! Vielen Dank für die Erklärung! Rajat Gupta vor 10 Jahren 0