Kann ich verhindern, dass eine Datei erstellt wird?

7

Wir haben einen Computer, auf dem VMware Server ausgeführt wird. Es schafft ständig eine Datei mit dem Namen not_configuredin /etc/vmware/, die irgendwie unsere virtuellen Maschinen nicht in der Lage macht gestartet werden.

Ich fragte mich, ob es einen zuverlässigen Weg gab, um zu verhindern , dass diese Datei überhaupt erstellt wurde.

Die Datei selbst enthält nichts, daher möchte ich sie nicht erstellen und schreibgeschützt. Es sollte überhaupt nicht da sein.

slhck
quelle
2
Ich weiß, dass dies wie ein X / Y-Problem klingt, und ich sollte mich lieber mit der Lösung des VMware Server-Problems befassen, aber die Leute auf SF konnten offensichtlich auch nicht anders, und dies ist eher eine allgemeine Frage, die ich mir vorgestellt habe.
Slhck
Hmm, beheben Sie die Quelle, nicht das Symptom.
Gänseblümchen
@ warl0ck Wie ich bereits erwähnt habe, ist dies leichter gesagt als getan, und ich bin mir der Tatsache sehr wohl bewusst, dass dies die Behebung der Symptome erfordert.
Slhck
Das stimmt, aber ich meine, senden Sie ihnen einen Fehlerbericht ...
Gänseblümchen

Antworten:

4

Sie können das Verzeichnis auf folgende Weise schreibgeschützt machen: mit Unix-Berechtigungen ( chmod a-w) oder mit strengeren Maßnahmen wie dem Mounten eines schreibgeschützten Dateisystems an dieser Stelle. Ich glaube nicht, dass Linux eine integrierte Methode bietet, um zu verhindern, dass eine einzelne Datei erstellt wird, ohne dass das Verzeichnis als Ganzes schreibgeschützt ist. Es gibt natürlich das Mehrzweck-Tool FUSE, aber ich kenne kein vorhandenes FUSE-Dateisystem, mit dem Sie auf diese Weise eine Datei-Blacklist erstellen können.

Sie können versuchen, einen baumelnden symbolischen Link zu erstellen, insbesondere einen, der auf eine nicht vorhandene Datei in einem schreibgeschützten Verzeichnis verweist. Abhängig davon, wie das eine Programm die Existenz der Datei überprüft und das andere Programm versucht, die Datei zu erstellen, funktioniert dies möglicherweise oder nicht.

Ich würde empfehlen, herauszufinden, welches Programm diese Datei erstellt und sie herunterfährt. Siehe So ermitteln Sie, welcher Prozess eine Datei erstellt.

Gilles 'SO - hör auf böse zu sein'
quelle
Ich könnte Glück haben und das Verzeichnis muss sowieso nicht geschrieben werden. Ich befürchte, dass der VMware-Dienst selbst diese Datei erstellt - aber das ist hier nicht wirklich wichtig -, also werden wir sehen, ob der Symlink funktioniert. Trotzdem interessanter Ansatz.
Slhck
+1 für SICHERUNG. Siehe auch unix.stackexchange.com/questions/9332/… .
Mechanische Schnecke
1

Kurz gesagt, wenn Sie VMware-Produkte haben, die Sie nicht sauber deinstalliert haben, würde dies ein solches Problem verursachen, das Sie beschreiben.
Folgen Sie den Anweisungen unter diesem Link , ich habe Erfolg mit ihnen gehabt:

Ich hatte das gleiche Problem und nachdem ich die obige Anleitung befolgt hatte, löste es sich.

Hanan N.
quelle
2
Sie sollten dies wahrscheinlich auf der Frage zu Serverfehler posten und hier löschen - es ist nicht wirklich die Antwort auf diese Frage.
Slhck
Es ist vielleicht nicht die Antwort, nach der die Person sucht, aber es ist definitiv die Antwort, die die Ursache löst, anstatt sie zu ignorieren. Upvote für die Antwort.
Laebshade
@laeb Wahrscheinlich, aber es gehört überhaupt nicht hierher.
Slhck
1

Die einzige Standardmethode hierfür ist das Entfernen der Schreibberechtigung aus dem Verzeichnis. Dies verhindert natürlich, dass irgendetwas Dateien in diesem Verzeichnis erstellt.

wnoise
quelle
1

Sie sind sich nicht sicher über die Flexibilität von VMWare Server in diesem Bereich, aber vorausgesetzt, das Verzeichnis / etc / vmware darf sich auf einem Remote-Dateisystem befinden, das unter NFS oder CIFS freigegeben ist. Dies wäre eine einfache Aufgabe, wenn Sie ein Betriebssystem verwenden, das DTrace auf der Dateiserverseite unterstützt (Solaris, OpenIndiana, FreeBSD, MacOS / X, ...).

Ein einfaches sogenanntes destruktives Skript kann bei jedem Versuch, die Datei not_configured zu öffnen, einen Fehler erzwingen oder simulieren.

jlliagre
quelle
Könnte ich das überhaupt vom lokalen Host aus tun? Ich glaube nicht, dass wir die Möglichkeit haben, eine andere Maschine dafür einzurichten.
Slhck
Ich fürchte nein. Der VMWare-Server scheint nur unter Windows oder Linux zu laufen. Windows unterstützt DTrace nicht und Linux-Ports sind meines Wissens nicht voll funktionsfähig.
Jlliagre
0

Ich mache das eigentlich schon .. Sie können einen Listener in " Watcher " oder " Incron " (ich würde Watcher verwenden, es ist rekursiv) verwenden, um Trigger zu erstellen, ein Skript zu schreiben, 5 Sekunden zu warten (dies liegt daran, dass alle Arten von schreibgeschützt sind / tmp-Dateien können "erstellt" werden, wenn eine Datei "erstellt" wird (die Sie auf gesperrt / schreibgeschützt testen und gegebenenfalls erneut pausieren) und dann in Ihrem Skript alle Dateien in dem Ordner scannen / verschieben / löschen, die Sie nicht mögen.

NB: Stellen Sie sicher, dass Ihr Skript für gesperrte Datei- / Wiederholungsparadigmen intelligent ist.

conners
quelle