7 votes

Refus d'accès en lecture à un fichier dont je suis propriétaire et sur lequel j'ai toutes les permissions de lecture et d'écriture

J'ai reçu un courriel avec une pièce jointe en texte brut (nommée 'noname') via Gmail et je l'ai téléchargé avec Chrome depuis gmail.com. Il s'agit d'un rapport automatisé récurrent. Chaque jour, je reçois le fichier, je le télécharge, je l'ouvre, je le lis et je profite de la vie. Certains jours, comme aujourd'hui, je reçois le fichier, je le télécharge et TextEdit sur OS X ne me permet pas de l'ouvrir.

TextEdit signale "Le document "noname.txt" n'a pas pu être ouvert. Vous n'avez pas les autorisations nécessaires."

A Obtenir des informations dans le Finder indique les autorisations :

ram (Me) Read & Write
Personnel Lecture seule
Tout le monde Lecture seule

À partir d'un terminal, je peux faire ce que je veux (lire, écrire, renommer...). Un ls -l montre :
-rw-r--r--@ 1 ram staff

Un ls -le montre la même chose (c'est-à-dire qu'aucune ACL n'est montrée).

Qu'est-ce qui se passe ?

0 votes

Trois questions sans lien entre elles : Avez-vous envisagé une défaillance du disque dur ? Avez-vous essayé de l'ouvrir avec vi dans un terminal ? Le fichier téléchargé comporte-t-il des attributs étendus (quarantaine ou autre) ?

0 votes

Désolé, je n'ai pas vu le "@". Quels sont alors les attributs étendus du fichier ?

0 votes

Le fichier est un fichier texte brut créé en exécutant un script script qui produit du texte brut et en le transférant dans le fichier mail

4voto

Blaisorblade Points 656

Lors du débogage d'un autre problème (qui s'est manifesté comme suit deny file-read-data dans la console, voir l'autre réponse), il semble que sandboxd empêche les applications en bac à sable de lire les données en quarantaine, donc Je pense que vous devrez supprimer l'attribut avec : xattr -d com.apple.quarantine /path/to/file (voir par exemple https://superuser.com/a/28394/46794 ). Vous devez faire précéder la commande du préfixe sudo si le fichier n'appartenait pas à votre utilisateur, mais d'après vos informations, c'est le cas.

L'autre utilisateur a indiqué que l'utilisation d'une application non sandboxée avait résolu le problème, ce qui confirmerait que le sandboxing est en cause.

Une parenthèse : Quand les ls avec @ à côté du champ d'autorisation, il n'est pas nécessaire d'utiliser des attributs étendus pour les rapports. ls -le file mais au lieu de cela ls -l@ file .

0 votes

Merci pour la capture ls -l@. Je me suis totalement trompé et je n'ai donc pas vu les attributs qui ont clarifié et confirmé les réponses suggérant la mise en quarantaine. Tous les fichiers affectés ont, depuis une mise à jour (d'Apple ?), été étiquetés avec com.apple.quarantine.

2 votes

L'IIUC encourage les applications qui téléchargent à partir d'Internet à marquer les fichiers téléchargés comme étant en quarantaine, de sorte que l'utilisateur soit averti lorsqu'il les ouvre en double-cliquant. Le mécanisme est apparemment en place depuis OS X 10.5, et Chrome a peut-être été mis à jour pour l'utiliser. Une API permettant de le faire est décrite ici : ilostmynotes.blogspot.de/2012/06/ qui indique developer.apple.com/library/ios/documentation/general/Reference/ pour certains documents officiels.

0voto

Je ne sais pas si c'est le même problème que j'ai eu, mais de temps en temps, TextEdit (et aucune autre application) a commencé à afficher une boîte de dialogue comme celle-ci lorsque j'essayais d'ouvrir un fichier :

Le document "test.txt" n'a pas pu être ouvert. Vous n'avez pas l'autorisation.

Pour afficher ou modifier les autorisations, sélectionnez l'élément dans le Finder et choisissez Fichier > Obtenir des informations.

Des messages de ce type ont été diffusés dans system.log :

9/13/12 10:41:42.952 PM sandboxd[21081]: ([357]) TextEdit(357) deny file-read-data /Users/lauri/Desktop/test.txt
9/13/12 10:41:55.118 PM TextEdit[357]: NSFileVersion tried to tried to add a new generation and failed. Versioned file URL: file://localhost/Users/lauri/Notes/test.txt, contents URL: file://localhost/Users/lauri/Notes/test.txt.sb-de6477ff-BhVNrq, error: Error Domain=GSLibraryErrorDomain Code=1 "The operation couldn’t be completed. (GSLibraryErrorDomain error 1.)"
9/13/12 10:41:55.118 PM TextEdit[357]: NSDocument failed to preserve the old version of a document. Here's the error:
Error Domain=GSLibraryErrorDomain Code=1 "The operation couldn’t be completed. (GSLibraryErrorDomain error 1.)"
9/13/12 10:41:55.119 PM TextEdit[357]: <Document: 0x7f971d00a510>: An error occurred while attempting to preserve the backup file at file://localhost/Users/lauri/Notes/test.txt.sb-de6477ff-BhVNrq: Error Domain=GSLibraryErrorDomain Code=1 "The operation couldn’t be completed. (GSLibraryErrorDomain error 1.)"

J'ai pu ouvrir des fichiers normalement après avoir quitté et rouvert TextEdit.

Je n'ai pas vu ces dialogues après avoir remplacé TextEdit par TextEditPlus qui est en fait une version non standardisée de TextEdit.

-2voto

butterflydust Points 1

Quittez, ne fermez pas simplement, mais quittez TextEdit. Lorsque TextEdit redémarrera, il se "souviendra" de votre identité.

Quand Text Edit a le menu principal Cmd-Q ou Menu principal / TextEdit / Quitter ou Cliquez avec le bouton droit de la souris sur l'icône du dock de TaskEdit et choisissez Quitter.

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