Nous venons de recevoir un nouvel iMac qui utilise le /Users/Shared
répertoire pour stocker les ressources multimédias (images, audio, vidéo) que nous voulons accessibles à tous les utilisateurs de la machine. Après avoir copié tous les fichiers initialement, nous avons défini les autorisations souhaitées, puis appliqué les mêmes autorisations à tous les contenus du répertoire de manière récursive. Cela fonctionne bien, sauf que chaque fois que quelqu'un crée un nouveau fichier ou répertoire, il n'a pas les mêmes autorisations et nous devons répéter tout le processus d'autorisations avant que tout le monde puisse y accéder.
Existe-t-il un moyen de définir des autorisations pour tous les nouveaux fichiers / répertoires créés dans ce répertoire?
la source
Réponses:
Vous ne pouvez pas le faire avec des autorisations traditionnelles de style POSIX, mais vous pouvez le faire avec des entrées de contrôle d'accès héritables. Pour autoriser l'accès en lecture + écriture pour tout le groupe "staff" à tout dans / Users / Shared / reallyshared, vous utiliseriez:
La
file_inherit,directory_inherit
partie signifie que cette entrée de contrôle d'accès sera automatiquement ajoutée aux nouveaux fichiers et dossiers créés dans ce dossier, mais elle ne s'applique pas automatiquement aux éléments déjà là (c'est pourquoi j'ai ajouté le-R
drapeau àchmod
- qui l'applique à tout ce qui se trouve actuellement dans le dossier), et il ne sera pas appliqué aux éléments créés ailleurs et ensuite déplacé dans ce dossier (je ne connais pas de solution, désolé).la source
drwxr-xr-x+ 2 User staff 68 Dec 15 14:10 untitled folder
le + à la fin signifie que la liste de contrôle d'accès étendue est appliquée à l'aide de votre commande ci-dessus, mais Windows dit toujours que l'autorisation est refusée si j'essaie d'écrire un fichier dans ce dossier.chmod g+w untitled\ folder
Me permet seulement d' écrire dessus. Peut-être parce que j'ai installé Samba pour contourner l'horrible nouvelle implémentation SMB d'OSX.nt acl support = no
à la[Global]
section de /etc/smb.conf, mais je ne suis pas sûr que cela soit toujours pertinent dans les versions actuelles de samba.Une autre approche consiste à utiliser Terminal (aka shell ou invite de commande) pour créer / éditer (doit être effectué en tant que super-utilisateur, voir sudo) le fichier:
/etc/launchd-user.conf
ajouter la ligne:
umask 000
enregistrer et redémarrer. De nouveaux fichiers / dossiers (y compris les fichiers modifiés par enregistrer sous) permettront à tout le monde de lire / écrire.
Cela fonctionne en modifiant les autorisations de création de fichiers par défaut pour les programmes, tandis que l'approche ACL fonctionne en termes de règles d'accès liées à des fichiers et dossiers particuliers.
Sans ce réglage, des fichiers sont créés permettant à l'utilisateur: lecture-écriture, groupe et autres: lecture seule.
Si vous partagez entre plusieurs ordinateurs, vous devez le faire pour tous les ordinateurs qui utiliseront le partage.
Si vous avez des fichiers et des dossiers existants dans la zone partagée, vous devez les rendre tous lisibles / inscriptibles par tout le monde en utilisant:
sudo chmod -R og+w <shared-folder-name>
La commande se lit en anglais comme mode de changement, récursive à travers tous les sous-dossiers et fichiers, les autres autorisations de groupe et ajouter un accès en écriture, en commençant par le dossier avec.
Cette approche est mentionnée dans les forums pour fonctionner avec au moins dès 10.6 et fonctionne toujours sur 10.7.
D'autres facteurs affectent toujours l'accès au contenu. Par exemple, les autorisations définies dans le panneau de configuration de partage, les autorisations / ACL du dossier de base et, lors de l'utilisation de Terminal, tout umask en vigueur pour le shell.
Rechercher les autorisations de fichiers umask et Posixpour plus de détails sur ces concepts Unix. Dans les écritures, le répertoire de mots est le langage Unix synonyme de dossier. Vous rencontrerez également les termes UID et GID: identifiants d'utilisateur et de groupe, qui définissent la propriété Posix des programmes (processus) en cours d'exécution. Notez que les UID et GID sont des nombres qui peuvent être identiques ou différents pour un nom d'utilisateur donné sur différents ordinateurs. Ces numéros sont attribués à des noms dans les comptes de commande créés sur un ordinateur donné, généralement en commençant par l'ID 501. Les réseaux domestiques n'ont pas de mécanisme pour harmoniser ces affectations entre les ordinateurs. Par conséquent, sur les partages réseau, un fichier peut sembler appartenir à différents utilisateurs, car la liaison de l'ID utilisateur au nom d'utilisateur est déterminée du point de vue de l'ordinateur accédant au fichier. Les partages permettent donc toujours à tout le monde d'accéder aux fichiers à différents degrés. En d'autres termes, l'autorisation Posix "autre" est une limite indéfinie d'accès allant de permettre un degré d'accès tout à fait prévisible mais apparemment incertain en fonction des ID utilisateur attribués sur différents ordinateurs. Cela conduit à des variations apparemment absurdes des expériences, où sur certains réseaux, par exemple une configuration avec un seul compte utilisateur jamais créé sur chaque Mac, pourra partager sans aucune modification des autorisations car tous les comptes auront le même UID (501, no peu importe le nom des comptes), tandis qu'un autre réseau utilisant plusieurs comptes d'utilisateurs par Mac verra immédiatement des problèmes. Ainsi, certains groupes ne lutteront jamais avec cela, tandis que d'autres peuvent voir des problèmes qui se développent avec le temps, ou des problèmes qui apparaissent / disparaissent spontanément,
C'est un mystère pourquoi Apple a laissé un tel défaut d'utilisation dans la configuration d'une telle capacité de partage de fichiers.
Sur les disques externes, ce problème est résolu avec l'option "Ignorer les autorisations sur ce volume". Il peut y avoir une fonctionnalité similaire pour le partage de fichiers Apple, mais où est-elle?
Si vous lancez votre propre configuration de service Samba, il existe d'autres mécanismes pour gérer ces problèmes, mais Samba n'est pas du tout facile à utiliser.
la source
launchctl
. Voir support.apple.com/en-us/HT201684