Ich habe versucht, ein paar Dateien in einen Unterordner unter OS X zu verschieben. Eine hat sich geweigert, sie zu verschieben. Es sagte Operation not permitted
. Ich habe es nochmal als root probiert:
$ 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 lsattr
andere Dateien ausprobiert; Alle Dateien, die ich ausprobiert habe, gaben mir die gleiche Meldung:Inappropriate ioctl for device While reading...
Da ich von Linux komme, wusste ich nichts über Flags, also ist hier 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-Festplattendienstprogramm ausprobiert; es sagte, dass es keine Fehler auf meiner Festplatte gab. Was ist denn hier los?
Klingt so, als wäre die Datei für mich gesperrt, weshalb das uchg-Attribut angezeigt wird. Sie sollten in der Lage sein, den folgenden Befehl zu verwenden, um das gesperrte Attribut zu entfernen:
chflags nouchg file
oder klicken Sie mit der rechten Maustaste auf die Datei im Finder, klicken Sie auf „Informationen abrufen“ und deaktivieren Sie das Kontrollkästchen „Gesperrt“.
Für Leute, die in einer Ära von OS X 10.11+ (El Capitan oder neuer) darüber stolpern: Apple hat OS X eine ganz neue Sicherheitsebene hinzugefügt . Sie haben root einige Privilegien weggenommen. Die Datei, die Sie ändern möchten, hat ein restricted
Flag. Nur restricted
von Apple signierte Prozesse können diese Dateien ändern. Sie können dieses Sicherheitssystem jedoch deaktivieren, indem Sie im Wiederherstellungsmodus booten und es in einem Terminal deaktivieren, indem Sie Folgendes tun: csrutil disable
.
Alternativ können Sie Terminal auch einfach im Wiederherstellungsmodus starten und dort die Datei löschen. Oder versuchen Sie sogar, in einer Linux-Umgebung mit HFS+-Unterstützung zu booten (zumindest wenn Sie noch nicht auf APFS sind), um die Datei zu ändern.
restricted
Flag mit hat/bin/ls -lO
Versuchen:
chflags -f -R nouchg directory
in einem Verzeichnis auf höherer Ebene, um dieses Problem zu beheben.
zsh: locking failed for /Users/me/.zhistory: operation not permitted: reading anyway
und das Ausführen dieses Befehls in meinem Home-Verzeichnis hat es behobenIch hatte eine Datei, die ich im Terminal nicht löschen konnte:
$ 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
Was für mich funktioniert hat, war das Öffnen des Finder und das Löschen des gesamten Verzeichnisses. So wie ich es verstehe, löscht Finder Verzeichnisse als Einheit, ohne deren Inhalt zu berücksichtigen, so dass es nicht den gleichen Einschränkungen unterliegt wie normale rm -rf
.
Ich hatte dieses Problem auch und stellte fest, dass der Ordner, in dem sich die Datei befand, gesperrt war. Stellen Sie also sicher, dass das nicht stimmt. Führen Sie im Finder „Informationen“ zu dem Ordner aus und vergewissern Sie sich, dass das Kontrollkästchen „Gesperrt“ nicht aktiviert ist.
Unter OS 10.15 hat das bei mir funktioniert:
-f
erzwingt nichts, es beantwortet nur einige Berechtigungsfragen y
automatisch.Eine frühere Antwort sagte zu verwenden:
chflags -f -R nouchg directory
Es gibt zwei verschiedene Attribute, die das Ändern einer Datei verhindern. "uchg" hindert den Benutzer daran, die Datei zu ändern; "schg" verhindert, dass das System eine Änderung vornimmt. Verwenden Sie ls -le0@, um zu sehen, was Ihr Problem ist, oder verwenden Sie apple-I: Wenn "locked" aktiviert, aber nicht ausgegraut ist, ist "uchg" gesetzt. Wenn "locked" angekreuzt UND ausgegraut ist, dann ist "schg" gesetzt.) Wenn "uchg" gesetzt ist, funktioniert die vorherige Antwort. Wenn "schg" gesetzt ist, dann mache stattdessen Folgendes:
chflags -f -R noschg directory
Das Terminal hat möglicherweise keine Berechtigung zum Zugriff auf Ihre present working directory
.
pwd
) ein.System Preferences > Security & Privacy > Privacy > Files and Folders
Wenn Terminal über Berechtigungen verfügt und der Befehl immer noch einen Fehler erhält, überprüfen Sie die in anderen Antworten bereitgestellten Lösungen.
Mir ist klar, dass dies ein sehr altes Thema ist, aber ich sehe diesen Thread nicht, der sich mit meinem Symptom befasst, also dachte ich, ich würde eine andere Meinung posten.
Ich hatte das mit einem externen Laufwerk, das auf einem Snow Leopard iMac, der unterwegs auf El Capitan aktualisiert wurde, perfekt funktioniert hatte. Anfang dieses Jahres nahm ich dieses Laufwerk und steckte es in eine neue Windows 10-Box, auf der Paragon HFS für Windows lief. Ich habe Hunderte von GB an Dateien von Windows auf HFS + auf dieses Laufwerk kopiert und es wieder an den iMac angeschlossen. Alles funktionierte gut, mit Ausnahme eines Shell-Skripts, das ich hatte, bei dem für die Sicherung bereitgestellte Dateien auf dieses uchg-Problem stießen.
Kurz gesagt: Dateien und Ordner, die unter El Capitan oder Windows 10 mit Paragon HFS erstellt wurden, wenn sie zurück in eine Snow Leopard-Box verschoben werden, wird das "gesperrte" Optionskästchen NICHT aktiviert, wenn Sie Get Info
im Finder auswählen. Die Vorschläge anderer funktionierten jedoch gut für mich:
ls -leO@
(das ist ein großes oh) auf eine verdächtige Datei ausführenchflags -R nouchg
im übergeordneten Verzeichnis ausführen (in Snow Leopard gibt es kein -f)Es wird funktionieren, aber erwarten Sie nicht genau die gleichen visuellen Hinweise, wenn Ihr Laufwerk zwischen verschiedenen Betriebssystemen gewechselt hat oder wenn Sie Paragon HFS verwenden.
Gordon Davisson
lsattr
ist kein Standard-OS-X-Befehl; versuchen Sie esls -leO@
stattdessen. Und auf welchem Volume befindet sich die Datei? Versuchen Siemount
zu sehen, mit welchen Attributen das Volume gemountet ist.eje211
Fahrrad