Ich wollte mal eure Meinung zu einer Idee eines Sicherheitskonzeptes was das Dateisystem betrifft hören. Das ist allerdings noch nicht vollständig und vollkommen durchdacht bzw. hat noch Probleme.
Also es geht mir darum den Zugriff der Programme zu beschränken. Die erste Frage die aufkommt, darf ein Programm alle Dateien lesen? Oder ist es schlimm wenn es alle Dateien lesen kann?
Ich dachte mir es so, das ein Programm nur schreibzugriff auf einen Ordner /home/user/appdata/app/ hat. Somit hätte man Sachen wie eventuelle Konfigurationsdateien oder meinet wegen Savegames und sowas immer an einem genau bekannten Ort und das auch noch pro User.
Allerdings muss ich ja auch davon ausgehen, das es Programme gibt wo man diese Daten zentral und nicht pro User haben möchte oder sogar beides.
Dafür dachte ich an einen Ordner /home/shared/app/.
Will ein Programm in irgendeinen anderen Ordner schreiben, muss es die Rechte anfordern, was wie sudo oder UAC wäre (je nachdem ob GUI oder TUI).
Soweit so gut. Jetzt will man aber nicht für jeden Ordner diese Rechte anfordern müssen. Also dachte ich mir das ich noch einen Order habe /home/user/data/ was den "Eigene Dateien" Ordner unter Windows entsprechen würde und dort kann sich der User bzw. die Programme nach herzenslust austoben.
Ich will den User/die Programme nicht direkt in den /home/user/ Ordner schreiben lassen, weil ja dann der appdata Ordner nicht mehr geschützt wäre, bzw. für diesen Ordner (und eventuell andere Ordner) extra Regeln gelten müssten. So halte ich mir auch offen, noch andere Ordner wie appdata einzuführen.
Dadurch wäre erstmal sichergestellt das irgendwelche Programmdateien nicht ausversehen oder mit absicht (ohne Wissen des Users) geändert werden können.
Allerdings muss bei der Anforderung von Rechten auch unterschieden werden ob z.B. Dateien geschrieben (kopieren/ändern/löschen) werden oder ob ein Programm installiert wird. Denn bei letzterem wäre es eher unschön wenn man jede einzelne Datei als User genehmigen müsste.
Dazu dann auch gleich eine Frage. Wie macht man das am dümmsten mit den Libraries? Ich meine ich würde die schon irgendwie zentral haben wollen. Was ich so lösen würde, das man sich für jede Library registrieren müsste und das OS einen Zähler pro Library mitführt und wenn keine Anwendung die Library mehr benötigt (der Zähler also 0 ist) würde die Library gelöscht werden.
Allerdings kommt dann noch das Problem wie man das mit einer neueren Version der Library macht? Einfach überschreiben und davon ausgehen, wenn der User dem Installationsprogramm vertraut, dann wird das schon eine Library sein, die in Ordnung ist?
Speziell mit systemkritischen Libraries stelle ich mir das schwer vor. Wie will man da vor gehen?
Auch würde damit nur eine Möglichkeit geschaffen werden, Libraries zentral zu organisieren, aber die Apps könnten ihre Libraries ja trotzdem in ihrem Installationverzeichnis packen (womit man dann das Windowsproblem hätte). Das könnte man auch verhindern, indem man es explizit unterbindet und Libraries nur in dem zentralen Verzeichnis gesucht werden. Das wiederrum wäre auch nicht so toll, wenn ich da an Spiele denke, die bestimmte Sachen in Libraries auslagern. Was also machen?
Wie sicher auffällt, ist das ein Mix aus Unix- und Windowskonzepten. Ich mag das mit der zentralen Verwaltung der Anwendungsdaten unter Windows und finde den relativ starren (keine Ahnung ob das wirklich so ist, aber so würde ich es machen) Aufbau vom Wurzelverzeichnis ("/") unter Unix gut.
Mir ist klar dass das mit den Laufwerksbuchstaben nicht so das wahre ist und werde deshalb sowas wie unter Unix machen.
Vllt kennt ja jemand mal einen Link wo die Ordnerstruktur für Unix gut beschrieben wird, damit ich mir mal angucken kann wie die aussieht um mir ne Inspiration zu holen.
Also es geht mir darum den Zugriff der Programme zu beschränken. Die erste Frage die aufkommt, darf ein Programm alle Dateien lesen? Oder ist es schlimm wenn es alle Dateien lesen kann?
Ich dachte mir es so, das ein Programm nur schreibzugriff auf einen Ordner /home/user/appdata/app/ hat. Somit hätte man Sachen wie eventuelle Konfigurationsdateien oder meinet wegen Savegames und sowas immer an einem genau bekannten Ort und das auch noch pro User.
Allerdings muss ich ja auch davon ausgehen, das es Programme gibt wo man diese Daten zentral und nicht pro User haben möchte oder sogar beides.
Dafür dachte ich an einen Ordner /home/shared/app/.
Will ein Programm in irgendeinen anderen Ordner schreiben, muss es die Rechte anfordern, was wie sudo oder UAC wäre (je nachdem ob GUI oder TUI).
Soweit so gut. Jetzt will man aber nicht für jeden Ordner diese Rechte anfordern müssen. Also dachte ich mir das ich noch einen Order habe /home/user/data/ was den "Eigene Dateien" Ordner unter Windows entsprechen würde und dort kann sich der User bzw. die Programme nach herzenslust austoben.
Ich will den User/die Programme nicht direkt in den /home/user/ Ordner schreiben lassen, weil ja dann der appdata Ordner nicht mehr geschützt wäre, bzw. für diesen Ordner (und eventuell andere Ordner) extra Regeln gelten müssten. So halte ich mir auch offen, noch andere Ordner wie appdata einzuführen.
Dadurch wäre erstmal sichergestellt das irgendwelche Programmdateien nicht ausversehen oder mit absicht (ohne Wissen des Users) geändert werden können.
Allerdings muss bei der Anforderung von Rechten auch unterschieden werden ob z.B. Dateien geschrieben (kopieren/ändern/löschen) werden oder ob ein Programm installiert wird. Denn bei letzterem wäre es eher unschön wenn man jede einzelne Datei als User genehmigen müsste.
Dazu dann auch gleich eine Frage. Wie macht man das am dümmsten mit den Libraries? Ich meine ich würde die schon irgendwie zentral haben wollen. Was ich so lösen würde, das man sich für jede Library registrieren müsste und das OS einen Zähler pro Library mitführt und wenn keine Anwendung die Library mehr benötigt (der Zähler also 0 ist) würde die Library gelöscht werden.
Allerdings kommt dann noch das Problem wie man das mit einer neueren Version der Library macht? Einfach überschreiben und davon ausgehen, wenn der User dem Installationsprogramm vertraut, dann wird das schon eine Library sein, die in Ordnung ist?
Speziell mit systemkritischen Libraries stelle ich mir das schwer vor. Wie will man da vor gehen?
Auch würde damit nur eine Möglichkeit geschaffen werden, Libraries zentral zu organisieren, aber die Apps könnten ihre Libraries ja trotzdem in ihrem Installationverzeichnis packen (womit man dann das Windowsproblem hätte). Das könnte man auch verhindern, indem man es explizit unterbindet und Libraries nur in dem zentralen Verzeichnis gesucht werden. Das wiederrum wäre auch nicht so toll, wenn ich da an Spiele denke, die bestimmte Sachen in Libraries auslagern. Was also machen?
Wie sicher auffällt, ist das ein Mix aus Unix- und Windowskonzepten. Ich mag das mit der zentralen Verwaltung der Anwendungsdaten unter Windows und finde den relativ starren (keine Ahnung ob das wirklich so ist, aber so würde ich es machen) Aufbau vom Wurzelverzeichnis ("/") unter Unix gut.
Mir ist klar dass das mit den Laufwerksbuchstaben nicht so das wahre ist und werde deshalb sowas wie unter Unix machen.
Vllt kennt ja jemand mal einen Link wo die Ordnerstruktur für Unix gut beschrieben wird, damit ich mir mal angucken kann wie die aussieht um mir ne Inspiration zu holen.

Übersicht
Wiki
Hilfe
Suche
Einloggen
Registrieren
Drucken

Gespeichert

Unter Unix nennt man das nicht $APPDATA, sondern $HOME und Anwendungen speichern alles dorthin. Wo genau hängt vom Programm und vom verwendeten Toolkit ab.