1 votes

Permissions par défaut pour les nouveaux fichiers et umask par défaut

J'ai monté un partage NFS sur mon appareil Android enraciné en utilisant busybox mount.

Je peux lire et créer des fichiers, mais lorsque je crée un fichier dans une application, les autorisations du fichier sont définies sur 0600 (parce que l'umask de l'application est 077). Cela signifie qu'un fichier créé par une application ne peut être consulté que par cette application.

Comment puis-je changer ce comportement, et faire en sorte que les nouveaux fichiers soient créés avec plus de permissions ? Existe-t-il un moyen de faire démarrer les applications avec un umask différent ?

Aussi, comment se fait-il que tous les fichiers créés sur la carte SD soient 0775 (ignorant ainsi l'umask de l'application) ? Je veux que mon montage NFS se comporte comme la carte SD.

J'ai une boîte Android enracinée avec la version 4.4.2.

1voto

Jonathan Gilbert Points 126

Une recherche rapide sur Google révèle l'existence d'une nouvelle API dans Java 7 qui permet de modifier les permissions pour des fichiers individuels. Cela n'aide pas à changer le umask, mais cela devrait vous permettre de le remplacer après la création du fichier. Voir aussi :

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

Si vous avez vraiment besoin de changer le umask, il ne semble pas que ce soit une fonction actuellement exposée directement par la BCL. Vous devrez recourir à des appels natifs, ou utiliser une bibliothèque pour le faire à votre place. J'ai entendu dire que de telles bibliothèques existent déjà - vous devriez en chercher une qui donne accès aux fonctionnalités du système d'exploitation POSIX.

Pour ce qui est de la raison pour laquelle les fichiers sur la carte SD ignorent l'umask, les cartes SD sont typiquement formatées en utilisant le système de fichiers vfat, qui est fondamentalement rétrocompatible avec MS-DOS/Windows 95 et ne reconnaît pas le concept d'utilisateur. En tant que tel, il n'a aucun moyen de restreindre l'accès à un fichier ; si vous ne pouvez pas restreindre l'accès à des utilisateurs particuliers, alors vous ne pouvez restreindre l'accès qu'aux personnes suivantes quelqu'un et pourquoi voudriez-vous faire cela ? :-)

Ce que vfat a, ce sont les attributs des fichiers : lecture seule, caché et système. Il n'y a aucun moyen efficace de faire correspondre la majorité des combinaisons de modes de fichiers UNIX à ces attributs. Le pilote signale donc toujours les fichiers comme ayant un mode particulier, défini lorsque le système de fichiers est monté. Android monte les sdcards de manière à ce que ce mode soit renvoyé sous la forme 0755 (-rwxr-xr-x).

androidalle.com

AndroidAlle est une communauté de androiders où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X