38 votes

Permissions pour les nouveaux fichiers dans le répertoire partagé

Nous venons d'avoir un nouvel iMac et nous utilisons le logiciel /Users/Shared pour stocker les ressources multimédia (images, audio, vidéo) que nous voulons rendre accessibles à tous les utilisateurs de la machine. Après avoir copié tous les fichiers au départ, 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 permissions et nous devons répéter tout le processus d'autorisation avant que tout le monde puisse y accéder.

Existe-t-il un moyen de définir les autorisations pour tous les nouveaux fichiers/répertoires créés dans ce répertoire ?

0 votes

Les attributs étendus vous permettront de définir des autorisations d'accès très libérales, et de leur demander de se propager à l'intérieur du répertoire, et de continuer à le faire sur les nouvelles créations, mais je n'arrive pas à trouver d'instructions. Je ne peux le faire que sur les serveurs OSX en utilisant les outils d'administration du serveur, ce qui, je suppose, n'est pas une option viable ici ?

0 votes

Nope. Nous n'avons accès qu'aux disques d'OS fournis avec l'iMac.

1 votes

Si vous aimez travailler dans le terminal este peut être la réponse que vous cherchez.

39voto

Gordon Davisson Points 30215

Vous ne pouvez pas le faire avec les permissions traditionnelles de type POSIX, mais vous pouvez le faire avec les entrées de contrôle d'accès héritables. Pour autoriser l'accès en lecture et en écriture de l'ensemble du groupe "staff" à tout ce qui se trouve dans /Users/Shared/reallyshared, vous utiliserez :

sudo chmod -R +a "staff allow list,add_file,search,add_subdirectory,delete_child,readattr,writeattr,readextattr,writeextattr,readsecurity,file_inherit,directory_inherit" /Users/Shared/reallyshared

El file_inherit,directory_inherit signifie que cette entrée de contrôle d'accès sera automatiquement ajoutée aux nouveaux fichiers et dossiers créés à l'intérieur de ce dossier, mais qu'elle ne s'appliquera pas automatiquement aux éléments qui s'y trouvent déjà (c'est pourquoi j'ai ajouté la balise -R pour 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és dans ce dossier (je ne connais pas de moyen de contourner cela, désolé).

1 votes

J'aimerais vraiment trouver un moyen pour que cela fonctionne même pour les fichiers qui sont déplacés dans un répertoire partagé. Il est frustrant d'avoir des fichiers dans un répertoire partagé qui ne sont finalement pas entièrement partagés.

0 votes

Cela ne permet toujours pas d'écrire dans un dossier si les permissions posix ne le permettent pas. Par exemple, je crée ce dossier dans le Finder : 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 a été appliquée en utilisant votre commande ci-dessus, mais Windows indique toujours que la permission est refusée si j'essaie d'écrire un fichier dans ce dossier. Seulement chmod g+w untitled\ folder me permet d'y écrire. C'est peut-être parce que j'ai installé Samba pour contourner l'horrible nouvelle implémentation SMB d'OSX.

0 votes

@ChrisDragon : il semble que samba ne respecte pas correctement l'ACL. J'ai trouvé une suggestion aquí à ajouter nt acl support = no a la [Global] de /etc/smb.conf, mais je ne suis pas sûr que cela soit encore pertinent dans les versions actuelles de samba.

6voto

Levi Points 2111

Une autre approche consiste à utiliser le Terminal (alias shell ou invite de commande) pour créer/modifier (doit être effectué en tant que super-utilisateur, voir sudo) le fichier :
/etc/launchd-user.conf
en ajoutant la ligne :
umask 000
sauvegarder et redémarrer. Les nouveaux fichiers/dossiers (y compris les fichiers modifiés par l'enregistrement 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 cette modification, les fichiers sont créés en permettant à l'utilisateur : lecture-écriture, groupe et autres : lecture seule.

Si vous effectuez un partage entre plusieurs ordinateurs, vous devez effectuer cette opération 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 lisibles/inscriptibles par tous les utilisateurs :
sudo chmod -R og+w <shared-folder-name>

La commande se lit en anglais comme suit : change mode, recursive through all sub folders and files, other & group permissions add write access, starting at folder with .

Cette approche est mentionnée dans les forums pour fonctionner au moins dès la 10.6 et fonctionne toujours sur la 10.7.

D'autres facteurs affectent encore l'accès au contenu. Par exemple, les autorisations définies dans le panneau de configuration Partage, les autorisations/ACL du dossier d'accueil et, lorsque vous utilisez Terminal, tout umask en vigueur pour le shell.

Regardez en haut umask y Permissions de fichiers Posix pour plus de détails sur ces concepts Unix. Dans les textes, le mot répertoire est synonyme de dossier dans le langage Unix. Vous rencontrerez également les termes UID et GID : identifiants d'utilisateur et de groupe, qui définissent la propriété Posix des programmes en cours d'exécution (processus). Notez que les UID et GID sont des numéros qui peuvent être identiques ou différents pour un nom d'utilisateur donné sur différents ordinateurs. Ces numéros sont attribués aux noms dans l'ordre de création des comptes sur un ordinateur donné, en commençant généralement par l'ID 501. Les réseaux domestiques ne disposent pas d'un mécanisme permettant d'harmoniser ces attributions entre les ordinateurs. Par conséquent, sur les partages réseau, un fichier peut sembler appartenir à différents utilisateurs, car la liaison entre l'ID utilisateur et le nom d'utilisateur est déterminée du point de vue de l'ordinateur qui accède au fichier. Ainsi, les partages permettent toujours à tout le monde d'accéder aux fichiers à différents degrés de tout le monde. En d'autres termes, la permission Posix "autre" est une limite indéfinie sur l'accès allant de l'autorisation d'un degré d'accès tout à fait prévisible mais apparemment incertain en fonction des identifiants d'utilisateur attribués sur différents ordinateurs. Cela conduit à des variations apparemment absurdes dans les expériences, où sur certains réseaux, par exemple une configuration avec un seul compte utilisateur créé sur chaque Mac, pourra partager sans aucune modification des permissions parce que tous les comptes auront le même UID (501, quel que soit le nom des comptes) alors qu'un autre réseau utilisant plusieurs comptes utilisateurs par Mac verra des problèmes immédiatement. Ainsi, certains groupes n'auront jamais de problème, tandis que d'autres verront des problèmes se développer au fil du temps, ou des problèmes apparaître/disparaître spontanément, en fonction du moment/de la manière dont les comptes utilisateurs supplémentaires sont créés/utilisés avec le dossier partagé.

C'est un mystère qu'Apple ait laissé un tel défaut d'utilisation dans la configuration d'une fonction de partage de fichiers aussi facile à utiliser.

Sur les disques externes, ce problème est résolu par l'option "Ignorer les permissions sur ce volume". Il existe peut-être une fonction similaire pour le partage de fichiers sur Apple, mais où est-elle ?

Si vous roulez 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.

1 votes

Le fichier /etc/launchd-user.conf n'est plus utilisé en faveur de l'utilisation du fichier launchctl . Voir support.apple.com/fr/HT201684

1 votes

Merci à JessBowers. Je suppose que c'est le cas. sudo launchctl config user umask 000 est ce qu'il faut maintenant.

LesApples.com

LesApples est une communauté de Apple où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres utilisateurs d'appareils Apple, poser vos propres questions ou résoudre celles des autres.

Powered by:

X