7
votes

OSError: [Erreur 1] Opération non autorisée

J'essaie d'exécuter un script Python qui utilise un fichier binaire (xfiles.bin.addr_percat) créé par un postlinker. Cependant, je reçois cette erreur.

-rwxrwxrwx 1 nobody  nogroup 


7 commentaires

Vous devez montrer le code que vous utilisez. Que fais-tu réellement? Ils pourraient plusieurs cas ici qui provoque ce problème.


Quel est le chemin complet (ish) de mypath ? Est-ce dans un root -In-huistique? Est-ce dans / TMP ? Est-ce quelque part sous votre dossier à domicile?


Peut-être que cela peut aider - Stackoverflow.com/Questtions/10922020/...


@ Linux_ios.rb.cpp.c.lisp.m.sh myPath est / home / autresFolder / ...


@ user1357576: Et c'est votre domaire?


Ok le problème est que vous l'exécutez dans un mauvais endroit. / home / autres autres ne possède pas de vous. Juste cp le script à / tmp ou à ~ (votre propre dossier à domicile).


Ou donner la sortie de pwd s'il vous plaît


4 Réponses :


12
votes

Vous pouvez essayer (de la ligne de commande, mais je suis sûr qu'il y a une syntaxe en python): xxx

Remarque: le groupe est généralement juste votre nom d'utilisateur. Je pense que quelque chose ne va pas avec ces autorisations cependant. Lire l'exécution de l'écriture pour que tout le monde semble être éteint. Comment ce fichier a-t-il été créé? Comment a-t-il été créé par l'utilisateur personne ?


8 commentaires

@ user1357576: avec le sudo ? Et ce que ne fonctionne pas? Les autorisations ne changent-elles pas? Y a-t-il une erreur? Quel est le nom de fichier ls -l sortie?


-RWXRWXRWX 1 MyUSNAME NOGROUP est le changement. Cependant, je voulais dire ça ne marche pas. Comme dans l'erreur ne disparaît pas


Quelles sont les autorisations pour le dossier myPath ?


drwxrwxrwx est la permission pour le chemin


@ Linux_ios.rb.cpp.c.lisp.m.sh j'ai essayé le script édité. Maintenant, je suis le propriétaire et le groupe est défini aussi bien que l'erreur ne va pas disparaître. Je suis toujours confronté au même problème.


@ user1357576: Que se passe-t-il si vous essayez quelque chose comme Echo Bork> TheFile ?


@ Linux_ios.rb.cpp.c.lisp.m.sh Merci beaucoup pour votre aide. Le script a fonctionné. J'étais tellement stupide. Je définissais le mauvais nom d'utilisateur. Fondamentalement, j'ai un nom de connexion différent et un nom d'utilisateur différent, je faisais le mauvais nom du propriétaire et je n'ai donc pas pu résoudre le problème. Merci à tous tellement et désolé de ma stupidité et de gaspiller votre temps. À la fin, alls bien :)


Nous ne devrions vraiment pas avoir à changer les propriétaires sur des fichiers uniquement pour copier (et assez souvent, cela ne sera pas autorisé de toute façon). La réponse n'est-elle pas la même chose que Stackoverflow.com/Questtions/11835833/... - Utiliser shuttilis.copyfile () à la place?



1
votes

Je suppose que vous devriez regarder les autorisations pour le dossier myPath à la place. On dirait que vous ne pouvez pas vous écrire, d'où le problème. Essayez ls -l myPath /.. et voir les autorisations pour myPath . Si tel est le problème, modifiez les autorisations sur le dossier avec chmod .

P.s. Voir également Google Top Résultat sur Permissions de fichier Linux .


3 commentaires

Peut-être que chmod , mais plus probable chown .


J'ai vérifié la permission de tout le chemin. Tous les annuaires ont une autorisation complète et aucun d'entre eux n'est protégé en écriture


Namei -M MyPath / est un joli raccourci pour vérifier toutes les autorisations sur un chemin.



3
votes

Code Python Pour modifier la permission:

from getpwnam import pwd
from getgrnam import grp
import os

uid = getpwnam("YOUR_USERNAME")[2]
gid = grp.getgrnam("YOUR_GROUPNAME")[2]
os.chown("myPath/xFiles.bin.addr_patched", uid, gid)


2 commentaires

Ce n'est pas la meilleure idée d'exécuter vos propres scripts avec pseudo ... surtout si vous ne savez pas s'ils fonctionnent.


@Fatarslan La chose est, je ne veux pas me mêler du code Python car il s'agit d'une application standard et de modifier ce script peut être un mal de tête. J'exécute un script de shell externe qui appelle le script Python. Pensez-vous que je peux apporter des modifications dans ce script shell?



1
votes

J'ai eu ce problème lors de l'exécution d'un script Python sur mon Mac (10.14 Mojave) en essayant d'accéder à / users / xxx / images / photos bibliothèque.photoslibrary . La solution complète peut être trouvée dans http: //OSXXDaily.com/2018/10/09/fix-OPERATION-NOT-PERMIDE-TERMINE-Error-Macos/

Résumé: Aller aux préférences du système> Sécurité et confidentialité> Confidentialité> Accès complet de disque et ajoutez votre interpréteur IDE ou Python à la liste.


1 commentaires

Oui, c'était la seule solution car Apple a changé (encore) quelque chose pour le rendre plus inconfortable. Je ne peux pas attendre que je reçois mon système Linux. Merci.