Le fichier ne peut pas être déplacé par la racine sous OS X


53

J'ai essayé de déplacer quelques fichiers vers un sous-dossier sous OS X. L'un d'eux a refusé de le déplacer. C'est dit Operation not permitted. J'ai réessayé en tant que root:

$ sudo mv file subfolder/
mv: rename file to subfolder/file: Operation not permitted
$ sudo mv file filex
mv: rename file to filex: Operation not permitted
$ lsattr file
lsattr: Inappropriate ioctl for device While reading flags on file

J'ai essayé lsattrsur d'autres fichiers; tous les fichiers que j'ai essayés m'ont donné le même message:Inappropriate ioctl for device While reading...

Venant de Linux, je ne connaissais pas les drapeaux, voici donc le résultat de ls -leO@ file:

$ ls -leO@ file otherfile
-rwxrwxrwx  1 eeytan  staff  uchg 79549 Nov 11  2010 file
-rw-r--r--  1 eeytan  staff  -     5071 Sep  7 02:37 otherfile

J'ai essayé l'utilitaire de disque OS X; il a dit qu'il n'y avait aucune erreur sur mon disque. Que se passe t-il ici?


1
lsattrn'est pas une commande standard d'OS X; essayez ls -leO@plutôt. De plus, sur quel volume se trouve le fichier? Essayez mountde voir quels attributs le volume est monté.
Gordon Davisson

1
@GordonDavisson, il semble que vous soyez sur la bonne voie. ls -leo @ dit que ce fichier est le seul avec l'attribut "uchg", qui ressemble beaucoup à "non modifiable" pour moi.
eje211

Bienvenue à Ask Different! Je vais supprimer les modifications, en faire une question et laisser la réponse dans la section des réponses ...
bmike

Réponses:


30

On dirait que le fichier est verrouillé sur moi, c'est pourquoi l'attribut uchg apparaît. Vous devriez pouvoir utiliser la commande suivante pour supprimer l'attribut verrouillé:

chflags nouchg file

ou cliquez avec le bouton droit sur le fichier dans le Finder, cliquez sur "Obtenir des informations" puis décochez la case "Verrouillé".


1
Ha! Il semblerait que vous ayez répondu à votre propre question au moment où je postais cette réponse!
binarybob

84

Pour les personnes trébuchant sur cela dans un OS X ère 10.11+ (El Capitan ou plus récent): Apple a ajouté une toute nouvelle couche de sécurité dans OS X . Ils ont enlevé certains privilèges à la racine. Le fichier que vous essayez de modifier a un restrictedindicateur. Seuls les restrictedprocessus signés par Apple pourront modifier ces fichiers. Cependant, vous pouvez désactiver ce système de sécurité en démarrant en mode de récupération et la désactivation dans un terminal en faisant: csrutil disable.

Alternativement, vous pouvez également simplement démarrer Terminal en mode de récupération et supprimer le fichier là-bas. Ou même essayez de démarrer dans un environnement Linux avec support HFS + (du moins si vous n'êtes pas encore sur APFS) pour changer le fichier.


1
Que signifie le RSE dans Csrutil?
Michael Terry

12
Je crois que c’est Benjamin Franklin qui a déclaré: "Ceux qui sacrifient la facilité d’utilisation pour la sécurité ne méritent pas non plus". Ou quelque chose.
jeudi

5

Essayer:

chflags -f -R nouchg directory

sur un répertoire de niveau supérieur pour arrêter ce problème.


FWIW: J'ai eu ce problème zsh: locking failed for /Users/me/.zhistory: operation not permitted: reading anywayet le fait d'exécuter cette commande sur mon répertoire personnel a corrigé le problème
raine

1

J'ai eu un fichier que je ne pouvais pas supprimer dans le terminal:

$ sudo ls -leO@ foo@example.com/Documents/.%cb_defense/cb.doc
-rw-rw-rw-  1 root  wheel  - 41984  1 Mar 11:20 foo@example.com/Documents/.%cb_defense/cb.doc

$ sudo rm -rf foo@example.com/Documents/.%cb_defense/cb.doc
rm: foo@example.com/Documents/.%cb_defense/cb.doc: Operation not permitted

Ce qui a fonctionné pour moi a été d'ouvrir le Finder et de supprimer le répertoire entier. Si je comprends bien, le Finder supprime les répertoires comme une unité ignorant totalement leur contenu. Par conséquent, il n’est pas soumis aux mêmes restrictions que les autres utilisateurs rm -rf.


0

J'ai eu ce problème aussi, et j'ai découvert que le dossier dans lequel se trouvait le fichier était verrouillé. Alors assurez-vous que ce n'est pas vrai. Faites 'obtenir des informations' sur le dossier dans le viseur et assurez-vous que la case à cocher verrouillée n'est pas cochée.


0

Je réalise que c'est un sujet très ancien, mais je ne vois pas ce fil qui aborde mon symptôme, alors j'ai pensé poster un autre avis.

Cela est arrivé à un disque externe qui fonctionnait parfaitement sur un iMac Snow Leopard, qui a été mis à niveau vers El Capitan en cours de route. Plus tôt cette année, j’ai pris ce lecteur pour le mettre dans une nouvelle boîte Windows 10 qui exécutait Paragon HFS pour Windows. Je copiais des centaines de Go de fichiers DE de Windows TO HFS + sur ce lecteur et rebranché dans l'iMac. Tout a bien fonctionné, à l'exception d'un script de shell que j'ai stocké qui a stocké des fichiers de sauvegarde a rencontré ce problème d'ughg.

En bref: les fichiers et les dossiers créés sous El Capitan ou Windows 10 à l'aide de Paragon HFS, lorsqu'ils sont ramenés dans une boîte Snow Leopard, la case "Verrouillé" n'est PAS cochée lorsque vous sélectionnez Get Infocette option dans le Finder. Cependant, les suggestions des autres ont bien fonctionné pour moi:

  • vérifier que c'est le problème en exécutant ls -leO@(c'est une capitale oh) sur un fichier suspect
  • en tant que root, exécutez chflags -R nouchgle répertoire parent (il n'y a pas -f dans Snow Leopard)

Cela fonctionnera, mais ne vous attendez pas aux mêmes repères visuels si votre disque a passé entre des systèmes d'exploitation ou si vous utilisez Paragon HFS.


chflags -f -R Le répertoire nouchg ne fonctionne pas, merci
odjeezeus
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.