5 votes

Aucun droit d'ouvrir le fichier une fois qu'il est copié sur le bureau

Je suis nouveau sur Mac, donc je n'ai peut-être pas le vocabulaire correct.

  • Nous avons un Mac 10.5.x configuré pour partager des fichiers avec AFP et SMB.
  • Nous avons 4 autres Mac en tant que clients, de diverses versions entre 10.5 et 10.6.
  • Chacun d'eux accède au serveur avec le bon utilisateur + mot de passe.
  • Le partage est maintenant configuré pour ignorer les permissions, mais le problème était identique avant cela.
  • Nous pouvons créer/ouvrir/modifier/supprimer/renommer/etc des fichiers sur le serveur, depuis tous les clients.

Le problème :
Lorsque nous copions un fichier du serveur sur le bureau d'un client, le fichier copié ne peut pas être ouvert. Le message d'erreur indique que les permissions ne permettent pas la lecture du fichier.
Cela se produit pour chaque fichier du serveur, sur les 4 clients.
Les fichiers sont copiés avec le finder, à partir du client.

Édition :
J'ai vérifié les permissions.
Sur le partage du serveur, lorsque je regarde les permissions depuis un ordinateur client, tous les fichiers sont -------rw- cedric cedric (lecture-écriture pour tout le monde) avec l'utilisateur et le groupe identiques aux personnes connectées (ici cedric, mais c'est un autre utilisateur lorsque vu depuis un autre ordinateur). < br> Une fois le fichier copié sur le bureau, les permissions et le propriétaire sont les mêmes. Il n'est donc pas possible d'ouvrir le fichier car les permissions ne sont pas correctes (j'ai juste testé sur Linux, lorsque qu'un fichier est en lecture-écriture pour tout le monde, le propriétaire ne peut pas l'ouvrir).

Alors, y a-t-il un moyen de copier automatiquement les fichiers avec de meilleures permissions ? Ou bien de partager correctement les fichiers ?

Édition :
Chaque ordinateur client est maintenant mis à niveau vers 10.6.x pour le plus ancien, et 10.7.x pour les deux autres. Le problème est exactement le même.
J'ai aussi remarqué qu'un ordinateur ne peut pas enregistrer des fichiers à partir de logiciels Adobe sur le serveur. L'utilisateur enregistre les fichiers sur son bureau, puis utilise le finder pour les déplacer sur le serveur.

0 votes

Comment faites-vous la copie ? En utilisant le Finder ? Initiez-vous la copie à partir du client ?

0 votes

@Huygens : question mise à jour avec des détails

0 votes

Vos clients Mac utilisent-ils des identifiants d'utilisateur émis et gérés par le serveur Mac OS?

6voto

gosmond Points 1144

Il existe des problèmes connus (bugs créés par Apple) avec plusieurs révisions d'OS X 10.5 Leopard Client et l'accès aux fichiers AFP, y compris des problèmes de permission et dans certains cas même la possibilité de perdre ou d'écraser complètement des fichiers.

Il n'y a pas de solution de contournement pour ces bugs, ils sont dans le système d'exploitation lui-même et peuvent être reproduits sur 2 Macs récemment formatés et installés exécutant Leopard 10.5, et la plupart, voire toutes, les révisions ultérieures, c'est-à-dire 10.5.1, 10.5.2, etc.

Votre meilleure solution est de vous assurer de mettre à jour tous les Macs 10.5 en 10.6.8 Snow Leopard. À défaut, mettre à jour tout en 10.5.8 (la dernière version de Leopard) peut résoudre vos problèmes.

Voici une liste de références qui vont dans le détail :

http://support.grouplogic.com/?p=1508

https://discussions.apple.com/thread/1423847

http://www.insanelymac.com/forum/topic/67625-preping-for-105-permissions-issues-with-afp-shares/

http://lists.apple.com/archives/macos-x-server/2010/Dec/msg00267.html

http://www.mailinglistarchive.com/html/xsan-users@lists.apple.com/2008-07/msg00409.html

1voto

bispymusic Points 4042

Il semble que vous utilisiez un Mac non serveur pour agir en tant que serveur. Est-ce correct? Si c'est le cas, je vous recommande vivement de passer à une version de OS X Server.

Si je comprends bien, votre problème est causé par l'utilisation des autorisations standard Mac (ou POSIX) pour gérer votre partage de fichiers. C'est la seule option que vous avez pour un Mac standard lorsque vous partagez des fichiers. Cela provoque des problèmes de permissions, que vous utilisiez des protocoles AFP ou SMB (bien que SMB soit pire à cet égard).

Si vous pouvez passer à OS X Server, vous voudrez d'abord nettoyer les autorisations sur le dossier que vous souhaitez partager (résolvant ainsi tout problème existant). Ensuite, créez des utilisateurs et des groupes pour modéliser la structure de votre organisation. Ensuite, créez un nouveau partage de fichiers en utilisant l'application Serveur. Ne modifiez pas les autorisations par défaut qu'il donne. Au lieu de cela, cliquez sur le bouton "+" pour ajouter une nouvelle entrée de contrôle d'accès. Il s'agit d'un type spécial d'autorisation que OS X Server peut accorder, et il résout tous les problèmes de permissions qu'un Mac standard vous donnera dans une telle configuration.

Peachpit Press propose un excellent compte-rendu de tout cela dans leurs manuels OS X Server, bien que je n'aie pas pu trouver de lien direct pour cela. J'espère que cela vous aidera.

0 votes

La question dit qu'il utilise une machine OS X 10.5 pour servir des partages AFP et SMB. Donc, c'est un serveur Mac.

2 votes

Vous ne pouvez pas faire cette supposition en toute sécurité. Tout système OS X 10.5 peut servir des partages AFP et SMB. Allez dans Préférences Système > Partage de fichiers. Créez un dossier partagé. Cochez l'option de partage aux utilisateurs Windows également. Vous avez alors créé un partage AFP et SMB. Mais en utilisant uniquement des autorisations POSIX. Même s'il utilise un véritable serveur OS X, il voudra s'assurer d'avoir provisionné l'accès en utilisant des ACEs au lieu des autorisations POSIX. En tant qu'administrateur de systèmes Mac moi-même, cela me semble être une limitation classique des POSIX.

2 votes

Deuxièmement, il utilise maintenant 10.6 et 10.7 et le problème persiste.

0voto

jayands Points 1

La manière la plus simple de faire cela est d'utiliser le Terminal. Pour ce faire, vous devez avoir un accès sudo, ce que je suppose que vous connaissez, du moins conceptuellement, puisque vous avez mentionné Linux.

TL;DR: find . \! -perm 666 -type f -exec sudo chmod 666 {} \; est une commande en une seule ligne qui fera l'affaire, en supposant que vous l'exécutez depuis le dossier exact que vous souhaitez, par exemple, $HOME/Desktop/files_are_in_this_folder. S'il ne s'agit que d'un seul fichier, cependant, vous pouvez simplement exécuter sudo chmod 666 /chemin/vers/le/fichier.

Laissez-moi vous expliquer, du mieux que je peux, ce qui se passe.

find(1) est un utilitaire de recherche extrêmement puissant, bien plus que whereis. La raison pour laquelle il est si puissant est qu'il offre de nombreuses options différentes; pour un exemple plus simple, essayez find $HOME -size +100M; cela trouvera tous les fichiers, de manière récursive, de plus de 100 Mo et vous affichera une liste d'entre eux. Voici la sortie de la mienne :

    /Users/jayands/.rvm/gems/ruby-1.9.3-p385/gems/libv8-3.11.8.13-x86_64-darwin-10/vendor/v8/out/x64.release/libv8_base.a
    /Users/jayands/.rvm/gems/ruby-1.9.3-p385/gems/libv8-3.11.8.13-x86_64-darwin-10/vendor/v8/out/x64.release/obj.host/tools/gyp/libv8_base.a
    /Users/jayands/.rvm/gems/ruby-1.9.3-p385@rails-4.0/gems/libv8-3.11.8.3-x86_64-darwin-10/vendor/v8/out/x64.release/libv8_base.a
    /Users/jayands/.rvm/gems/ruby-2.0.0-rc2@rails-4.0/gems/libv8-3.11.8.13-x86_64-darwin-10/vendor/v8/out/x64.release/libv8_base.a
    /Users/jayands/.rvm/gems/ruby-2.0.0-rc2@rails-4.0/gems/libv8-3.11.8.13-x86_64-darwin-10/vendor/v8/out/x64.release/obj.host/tools/gyp/libv8_base.a
    /Users/jayands/Documents/2013-02-10.wav
    /Users/jayands/Documents/2013-02-17.wav
    /Users/jayands/Documents/2013-02-24.wav
    /Users/jayands/Documents/2013-03-03.wav
    /Users/jayands/Library/Application Support/Steam/SteamApps/common/regnum/data0.sdb
    /Users/jayands/Library/Application Support/Steam/SteamApps/common/regnum/data1.sdb
    /Users/jayands/Library/Application Support/Steam/SteamApps/common/regnum/data2.sdb
    /Users/jayands/Library/Application Support/Steam/SteamApps/common/regnum/data4.sdb
    /Users/jayands/Library/Caches/com.apple.Safari/Cache.db
    /Users/jayands/Music/iTunes/iTunes Media/Podcasts/Bronyville/93 Bronyville Episode 093 – Friendship Gives You Wings!.mp3

Comme vous pouvez le voir, il trouvera tout, même des choses que vous ne voulez pas modifier. S'ils ont une convention de nommage spécifique, par exemple, *.wav, vous pouvez spécifier la commande find pour rechercher par nom également. find . -name '*.wav'

J'ai dit tout cela pour vous familiariser avec la partie plus facile de find; ce qui suit est la partie qui tend à embrouiller les gens. find a des directives que vous pouvez lui faire exécuter sur ce qu'il trouve. -print est tellement commun qu'il est celui par défaut et n'a généralement pas besoin d'être spécifié. -print0, cependant, est un peu plus intéressant : il fait principalement la même chose que -print, mais le 0 est un caractère NUL remplaçant les sauts de ligne ; cela facilite le passage à xargs. Cependant, ce qui nous intéresse est la directive -exec, qui vous permet d'exécuter la plupart des commandes shell simples sur chaque fichier, ce qui nous amène à {} et \;. Le \; est pour échapper à un point-virgule pour la terminaison de la commande exec et les accolades viennent de awk, si je me souviens bien. Elles sont remplacées par ce qui est trouvé.

chmod existe toujours depuis l'époque Unix ; en fait, bon nombre des commandes que vous pouvez exécuter dans Linux dans xterm ont un analogue dans le terminal Mac. chmod 666 vous donnera un accès en lecture-écriture pour tout le monde ; cependant, si vous ne vous en souvenez pas, essayez chmod a=rw. Les deux commandes signifient : "prenez le fichier que je vais vous dire et définissez les autorisations sur un accès en lecture-écriture pour tout le monde".

Aussi, puisque vous collaborez, vous voudrez peut-être envisager d'exécuter un serveur git privé, Perforce (p4) ou Mercurial (hg), car ces systèmes de gestion gèrent également les autorisations des fichiers.

Plus d'informations

find

  1. man find depuis le Terminal
  2. Ce tutoriel

chmod

  1. man chmod

sudo

  1. man sudo

git : Depuis la page d'accueil de git

Si vous avez besoin d'aide supplémentaire, n'hésitez pas à demander.

Oh, avant que j'oublie : sudo demande votre mot de passe administrateur pour cette machine.

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