So implementieren Sie dynamische Dateiberechtigungen

So implementieren Sie dynamische Dateiberechtigungen

Ich habe eine Anwendung, die „Datensätze“ erstellt. Jeder Datensatz hat ein Verzeichnis mit „Anhängen“. Der Benutzer erstellt einen Datensatz (über die Weboberfläche der App), meine Anwendung erstellt ein Anhangsverzeichnis und der Benutzer kann dem Anhangsverzeichnis viele Dateien hinzufügen.

Der Benutzer hat alle Anhangsverzeichnisse über NFS gemountet, sodass er einfach und bequem Dateien von seinem eigenen Computer hinzufügen kann.

Ich brauche so etwas wie eine dynamische Berechtigungskontrolle:Jedes Mal, wenn Linux auf eine Datei im Anhangsverzeichnis zugreifen möchte, soll Linux meine Anwendung fragen: „Benutzer xx möchte Datei yy lesen/schreiben? zulassen?“

Nur die Anwendung weiß, wann der Datensatz „aktiv“ ist und Anhänge hinzugefügt werden können oder wann der Datensatz gesperrt ist.

Jetzt rufe ich chmod() für Dateien auf, aber es ist langsam bei großen Dateibäumen in Anhängen. Und es ist auch nicht atomar.


Ein Workaround, den ich mir vorstellen kann, könnte sein: Verwenden Sie SSHFS statt NFS und patchen Sie den SFTP-Server von OpenSSH, um für jede Datei Berechtigungen anzufordern (über eine Socket-API usw.). Ist das möglich?

Bearbeiten- scheint möglich zu sein:https://gitlab.com/netajo/sftp-permission-api/

verwandte Informationen