Définition d’un umask personnalisé sous macOS
Chaque fichier et dossier de votre Mac est doté d’un ensemble d’autorisations. Lorsque vous créez un fichier ou un dossier, l’umask détermine ces autorisations.
Les étapes avancées ci-dessous s’adressent principalement aux administrateurs système et aux utilisateurs maîtrisant les lignes de commande. Soyez vigilant lorsque vous modifiez des autorisations de fichiers et des umasks. Si vous faites une erreur, vous risquez d’abaisser la sécurité des fichiers, dossiers et apps de votre Mac, ou d’empêcher les apps de fonctionner.
À propos des autorisations et des umasks
Autorisations. Chaque fichier, dossier et app stocké sur votre Mac possède des autorisations, qui déterminent quels comptes d’utilisateur sont habilités à lire, modifier ou exécuter le fichier, le dossier ou l’app. Elles incluent les autorisations POSIX et les listes de contrôle d’accès (ACL). Pour rendre les autorisations POSIX d’un utilisateur plus ou moins restrictives, vous pouvez régler leur valeur umask.
Umasks. Un nombre à trois chiffres peut représenter les autorisations POSIX d’un fichier. Vous pouvez voir ce type d’autorisations lorsque vous les visualisez à partir de Terminal. Chaque chiffre est compris entre 0 et 7. Lorsque vous créez un fichier ou un dossier, la valeur umask est soustraite d’une valeur par défaut (généralement 666 pour les fichiers et 777 pour les dossiers) pour déterminer les autorisations appropriées. Par exemple, un umask par défaut de 022 définit des autorisations 644 sur de nouveaux fichiers et 755 sur de nouveaux dossiers.
Vous pouvez configurer l’umask dans différents emplacements. Chaque emplacement a une incidence sur des apps différentes. Si vous ne définissez pas correctement un umask, vous risquez de perdre l’accès à des fichiers ou d’en accorder l’accès à d’autres utilisateurs. Reportez-vous à la section MODES de la page de manuel chmod(1)
pour en savoir plus.
Umask pour les apps utilisateur
Connectez-vous en tant qu’administrateur et saisissez la commande suivante dans Terminal, en remplaçant nnn
par la valeur umask, telle que 027 ou 002. Cette commande détermine l’umask de l’utilisateur pour toutes les apps qu’il ouvre, y compris les apps auxquelles il accède depuis la ligne de commande et les fichiers créés par ces apps. Après avoir saisi cette commande, vous devrez peut-être redémarrer votre Mac.
sudo launchctl config user umask nnn
Si le message « Could not write configuration: No such file or Directory » (Impossible d’écrire les données de configuration : fichier ou répertoire inexistant) s’affiche dans Terminal, assurez-vous que votre disque de démarrage possède un dossier /private/var/db/com.apple.xpc.launchd/config. Si le dossier de configuration est manquant, réessayez après avoir saisi la commande suivante pour le créer :
sudo mkdir -m 755 /private/var/db/com.apple.xpc.launchd/config
Umask pour les processus système
Connectez-vous en tant qu’administrateur et saisissez la commande suivante dans Terminal, en remplaçant nnn
par la valeur umask, telle que 027 ou 002. Cette commande définit l’umask de l’utilisateur pour chaque démon qu’il exécute dans le système. C’est fortement déconseillé, car cela risque de modifier les autorisations applicables aux fichiers utilisés par le système. Des autorisations trop restrictives peuvent empêcher le logiciel de fonctionner, tandis que des autorisations trop ouvertes peuvent entraîner des problèmes de sécurité. Après avoir saisi cette commande, vous devrez peut-être redémarrer votre Mac.
sudo launchctl config system umask nnn
Si le message « Could not write configuration: No such file or Directory » (Impossible d’écrire les données de configuration : fichier ou répertoire inexistant) s’affiche dans Terminal, assurez-vous que votre disque de démarrage possède un dossier /private/var/db/com.apple.xpc.launchd/config. Si le dossier de configuration est manquant, réessayez après avoir saisi la commande suivante pour le créer :
sudo mkdir -m 755 /private/var/db/com.apple.xpc.launchd/config
Informations supplémentaires
Pour plus d’informations sur la configuration d’un umask, saisissez man launchctl
dans Terminal.