Die Datei kann unter OS X nicht von root verschoben werden

52

Ich habe versucht, ein paar Dateien in einen Unterordner unter OS X zu verschieben. Einer hat sich geweigert, sie zu verschieben. Es hieß Operation not permitted. Ich habe es nochmal als root versucht:

$ 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

Ich habe lsattrandere Dateien ausprobiert . Alle Dateien, die ich ausprobiert habe, gaben mir die gleiche Nachricht:Inappropriate ioctl for device While reading...

Von Linux kommend wusste ich nichts über Flags. Hier ist die Ausgabe von 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

Ich habe das OS X-Festplatten-Dienstprogramm ausprobiert. Es hieß, auf meiner Festplatte seien keine Fehler aufgetreten. Was ist hier los?

eje211
quelle
1
lsattrist kein Standard-OS-X-Befehl; versuche es ls -leO@stattdessen. Auf welchem ​​Volume befindet sich die Datei? Versuchen Sie festzustellen, mountmit welchen Attributen das Volume bereitgestellt wird.
Gordon Davisson
1
@ GordonDavisson, Sie scheinen auf dem richtigen Weg zu sein. ls -leo @ sagt, dass die Datei die einzige mit dem Attribut "uchg" ist, was für mich nach "unveränderlich" klingt.
Eje211
Willkommen bei Ask Different! Ich werde die Änderungen entfernen und dies zu einer Frage machen und die Antwort für den Antwortbereich
belassen

Antworten:

28

Klingt so, als wäre die Datei für mich gesperrt, weshalb das Attribut uchg angezeigt wird. Sie sollten den folgenden Befehl verwenden können, um das gesperrte Attribut zu entfernen:

chflags nouchg file

oder klicken Sie mit der rechten Maustaste auf die Datei im Finder, klicken Sie auf "Get Info" und deaktivieren Sie das Kontrollkästchen "Locked"

binarybob
quelle
1
Ha! Es sieht so aus, als hättest du deine eigene Frage beantwortet, als ich diese Antwort gepostet habe!
Binarybob
80

Für Leute, die in einer OS X 10.11+ -Ära darauf stoßen (El Capitan oder neuer): Apple hat in OS X eine ganz neue Sicherheitsebene hinzugefügt . Sie haben root einige Privilegien genommen. Die Datei, die Sie ändern möchten, hat eine restrictedMarkierung. Nur restrictedvon Apple signierte Prozesse können diese Dateien ändern. Allerdings können Sie dieses Sicherheitssystem deaktivieren im Recovery - Modus durch Boote und es in einem Terminal deaktivieren , indem Sie: csrutil disable.

Alternativ können Sie Terminal auch einfach im Wiederherstellungsmodus starten und die Datei dort löschen. Oder versuchen Sie sogar, in einer Linux-Umgebung mit HFS + -Unterstützung zu booten (zumindest, wenn Sie noch kein APFS verwenden), um die Datei zu ändern.

Martijn Courteaux
quelle
1
Wofür steht das csr in csrutil?
Michael Terry
10
Ich glaube, es war Benjamin Franklin, der sagte: "Diejenigen, die die Benutzerfreundlichkeit für Sicherheitsbedürftige opfern, auch nicht". Oder so.
dgig
4

Versuchen:

chflags -f -R nouchg directory

auf einem übergeordneten Verzeichnis, um dieses Problem zu beenden.

Dennis
quelle
FWIW: Ich hatte dieses Problem zsh: locking failed for /Users/me/.zhistory: operation not permitted: reading anywayund das Ausführen dieses Befehls in meinem Home-Verzeichnis hat es behoben
raine
0

Ich hatte auch dieses Problem und stellte fest, dass der Ordner, in dem sich die Datei befand, gesperrt war. Stellen Sie also sicher, dass das nicht stimmt. Holen Sie sich Informationen über den Ordner im Finder und vergewissern Sie sich, dass das gesperrte Kontrollkästchen nicht aktiviert ist.

abbaroo
quelle
0

Mir ist klar, dass dies ein sehr altes Thema ist, aber ich sehe diesen Thread nicht, der mein Symptom anspricht, also dachte ich, ich würde eine andere Meinung posten.

Ich hatte dies mit einem externen Laufwerk zu tun, das auf einem Snow Leopard iMac einwandfrei funktioniert hatte, der unterwegs auf El Capitan aktualisiert wurde. Anfang dieses Jahres nahm ich dieses Laufwerk und legte es in eine neue Windows 10-Box, auf der Paragon HFS für Windows ausgeführt wurde. Ich habe Hunderte von GB Dateien VON Windows NACH HFS + auf dieses Laufwerk kopiert und es wieder in den iMac gesteckt. Alles hat gut funktioniert, bis auf ein Shell-Skript, bei dem Dateien für die Sicherung bereitgestellt wurden, ist dieses uchg-Problem aufgetreten.

Kurz gesagt: Dateien und Ordner, die unter El Capitan oder Windows 10 mit Paragon HFS erstellt wurden und in ein Snow Leopard-Kontrollkästchen verschoben wurden, werden bei Auswahl Get Infoim Finder NICHT aktiviert. Die Vorschläge anderer haben jedoch für mich gut funktioniert:

  • Überprüfen Sie, ob dies das Problem ist, indem Sie ls -leO@eine verdächtige Datei ausführen (das ist ein Großbuchstabe)
  • Führen Sie als Root chflags -R nouchgdas übergeordnete Verzeichnis aus (in Snow Leopard gibt es kein -f).

Es wird funktionieren. Erwarten Sie nur nicht die exakt gleichen visuellen Hinweise, wenn Ihr Laufwerk zwischen Betriebssystemen gewechselt ist oder Sie Paragon HFS verwenden.

Mike Hockurtz
quelle
chflags -f -R nouchg Verzeichnis funktioniert dank
odjeezeus
0

Ich hatte eine Datei, die ich im Terminal nicht löschen konnte:

$ sudo ls -leO@ [email protected]/Documents/.%cb_defense/cb.doc
-rw-rw-rw-  1 root  wheel  - 41984  1 Mar 11:20 [email protected]/Documents/.%cb_defense/cb.doc

$ sudo rm -rf [email protected]/Documents/.%cb_defense/cb.doc
rm: [email protected]/Documents/.%cb_defense/cb.doc: Operation not permitted

Für mich hat es funktioniert, den Finder zu öffnen und das gesamte Verzeichnis zu löschen. So wie ich es verstehe, löscht Finder Verzeichnisse als eine Einheit, ohne Rücksicht auf deren Inhalt. Es unterliegt daher nicht den gleichen Einschränkungen wie bei regulären Verzeichnissen rm -rf.

Leons
quelle