Standardberechtigungen für neue Dateien und Standard-Umask

Ich habe eine NFS-Freigabe auf meinem gerooteten Android-Gerät mit busybox mount gemountet.

Ich kann Dateien lesen und erstellen, aber wenn ich eine Datei in einer beliebigen App erstelle, werden die Berechtigungen der Datei auf 0600 gesetzt (weil die umask in der App 077 ist). Das bedeutet, dass auf eine von einer App erstellte Datei nur von dieser App zugegriffen werden kann.

Wie kann ich dieses Verhalten ändern und die neuen Dateien mit mehr Berechtigungen erstellen lassen? Gibt es eine Möglichkeit, Apps mit einer anderen Umask starten zu lassen?

Wie kommt es außerdem, dass alle auf der SD-Karte erstellten Dateien 0775 sind (wodurch die umask der App ignoriert wird)? Ich möchte, dass sich mein NFS-Mount wie die SD-Karte verhält

Ich habe eine gerootete Android-Box mit Version 4.4.2.

Antworten (1)

Eine schnelle Google-Suche enthüllt eine neue API in Java 7, die es ermöglicht, Berechtigungsbits für einzelne Dateien zu verändern. Dies hilft nicht beim Ändern der umask, aber es sollte Ihnen ermöglichen, sie nach der Dateierstellung zu überschreiben. Kasse:

http://docs.oracle.com/javase/7/docs/api/java/nio/file/Files.html#setPosixFilePermissions%28java.nio.file.Path,%20java.util.Set%29

Wenn Sie die umask wirklich ändern müssen, scheint es sich nicht um eine Funktion zu handeln, die derzeit direkt von der BCL bereitgestellt wird. Sie müssen auf native Aufrufe zurückgreifen oder eine Bibliothek verwenden, um dies in Ihrem Namen zu tun. Ich habe gehört, dass solche Bibliotheken bereits existieren - Sie würden nach einer suchen, die Zugriff auf die Funktionalität des POSIX-Betriebssystems bietet.

Warum Dateien auf der SD-Karte die umask ignorieren, SD-Karten werden normalerweise mit dem vfat-Dateisystem formatiert, das im Grunde abwärtskompatibel zu MS-DOS/Windows 95 ist und das Konzept der Benutzer nicht erkennt. Als solches hat es keine Möglichkeit, den Zugriff auf eine Datei einzuschränken; Wenn Sie den Zugriff für bestimmte Benutzer nicht einschränken können, würden Sie den Zugriff nur für alle einschränken , und warum sollten Sie das jemals tun? :-)

Was vfat hat, sind Dateiattribute – schreibgeschützt, versteckt und System. Es gibt keine effektive Möglichkeit, die meisten UNIX-Dateimoduskombinationen diesen zuzuordnen. Der Treiber meldet also einfach immer Dateien mit einem bestimmten Modus, der eingestellt wird, wenn das Dateisystem gemountet wird. Android stellt SD-Karten bereit, sodass dieser Modus als 0755 (-rwxr-xr-x) zurückgegeben wird.