Verzeichnis mit korrekten Berechtigungen ist nicht beschreibbar

Ich habe High Sierra auf einem neuen Computer installiert und dann einige Verzeichnisse in meinem Haus von meiner externen Time Machine-Festplatte kopiert.

Die Sicherung wurde mit einem anderen Computer und einer anderen Betriebssystemversion von einem Benutzer erstellt, der den gleichen Namen hat wie der, der kürzlich in der neuen Installation erstellt wurde.

90% der Dinge liefen gut.

Aus unbekannten Gründen sind einige Unterverzeichnisse meiner Heimat (aus dem Backup kopiert) nicht beschreibbar.

Ich habe jede mögliche Kombination von chmod-Befehlen ausprobiert, und theoretisch sollte alles richtig funktionieren:

  • cmd+i, allgemein:
    • Artikel nicht gesperrt
    • Element nicht geteilt
  • cmd+i, Freigabe und Erlaubnis:
    • myuser: Lesen und schreiben
    • Mitarbeiter: Nur lesen
    • alle: Nur lesen
  • statzeigt an:
    • Zugang: (0755/drwxr-xr-x) Uid: ( 501/ myuser) Gid: ( 20/ staff)
    • 501 ist die korrekte ID meines aktuellen Benutzers

Ich denke, es ist kein Unix-Berechtigungsproblem, da die Berechtigungen so funktionieren sollten, wie sie sind.

Ich habe es auch chflags nouchg my_foldervergeblich versucht.

Nicht sicher, was dies verursachen könnte.

Was ls -leO@dzeigt auf ihnen?
Erzeugt dieser Befehl eine Ausgabe? -sudo find "$HOME" ! -user "$(id -un)"
@GordonDavisson Ich habe cd in my_folder und dann den Befehl ausgeführt, ls -leO@dder Folgendes erzeugt hat: drwxr-xr-x+ 20 myuser staff - 640 May 6 11:26 . 0: group:everyone deny add_file,delete,add_subdirectory,delete_child,writeattr,writeextattr,chown. Ich vermute, dass "alle leugnen" hier der Übeltäter ist
@fd0 dieser Befehl hat keine Ausgabe erzeugt
Das ist gut. Es bestätigt, dass Sie alle Dateien in Ihrem Home-Ordner besitzen.

Antworten (1)

Die Schreibberechtigung kann durch Datei-/Ordnermodi, Benutzer-Flags, Nichtbesitz, Zugriffssteuerungslisten (ACLs) und/oder erweiterte Attribute blockiert werden. Unten sind einige Befehle, die diese Art von Fehlern beheben können.

Hinweis: Ich gehe davon aus, my_folderdass keine symbolischen Links enthalten sind. Wenn symbolische Links vorhanden sind, müssen diese Befehle möglicherweise geändert werden.

Sie können den Ordnermodus rekursiv auf 755 (drwxr-xr-x) ändern, indem Sie den unten angegebenen Befehl verwenden.

find my_folder -type d -execdir chmod 755 {} \;

Sie können den regulären Dateimodus rekursiv auf 644 (-rw-r--r--) ändern, indem Sie den unten angegebenen Befehl verwenden.

find my_folder -type f -execdir chmod 644 {} \;

Sie können Benutzer-Flags rekursiv entfernen, indem Sie den unten angegebenen Befehl verwenden.

sudo chflags -R nouchg,nohidden,noopaque,dump,nouappnd my_folder

Sie können den Benutzerbesitz der Dateien und Ordner rekursiv ändern, indem Sie den unten angegebenen Befehl verwenden.

sudo chown -R $USER my_folder

Sie können die Gruppe der Dateien und Ordner rekursiv ändern, staffindem Sie den unten angegebenen Befehl verwenden.

sudo chgrp -R staff my_folder

Sie können alle Zugriffssteuerungslisten (ACLs) rekursiv entfernen, indem Sie den unten angegebenen Befehl verwenden.

chmod -RN my_folder

Sie können alle erweiterten Attribute rekursiv entfernen, indem Sie den unten angegebenen Befehl verwenden.

xattr -rc my_folder

Oft kann die Suche nach gesperrten Dateien und/oder Ordnern nützlich sein. Unten ist ein Befehl dafür.

find my_folder -flags +uchg -exec ls -dF {} \;
chmod -RN my_folderscheint zu funktionieren, alle anderen Befehle haben nichts bewirkt