In macOS kann nicht in das Verzeichnis / tmp geschrieben werden, Berechtigungen können nicht korrigiert werden: "Vorgang nicht zulässig"

13

macOS El Capitan (10.11) kann keine Softwareupdates oder Software installieren, da /tmpdie /private/tmpOrdner und die Ordner nicht beschreibbar zu sein scheinen.

Führen Sie dies aus:

sudo /usr/libexec/repair_packages --repair --standard-pkgs --volume /

Gibt mir diesen Fehler:

unable to set owner and group on "tmp" Error 1 Operation not permitted
unable to set permissions on "tmp" Error 1 Operation not permitted

Gibt es eine Möglichkeit, die tmp-Ordner manuell zu löschen und neu zu erstellen? Wenn ich versuchte, umzubenennen oder zu löschen, /tmpoder wenn ich /private/tmpimmer wieder eine Operation erhielt, war dies nicht zulässig. sudo chmod 1777auch auf die gleiche Weise auf beiden /tmpund /private/tmpOrdnern fehlgeschlagen

Das Festplatten-Dienstprogramm gibt an, dass die Festplatte fehlerfrei ist und beim Ausführen der Ersten Hilfe keine Probleme festgestellt wurden.

Gibt es eine Möglichkeit, den tmpSpeicherort in einen anderen beschreibbaren Ordner umzuleiten ?

Ali
quelle
1
Haben Sie zuerst SIP deaktiviert? Von der Genesung; Terminalcsrutil disable
Tetsujin
2
Ich habe das gleiche Problem. Befolgte Tetsujins Rat, startete im Wiederherstellungsmodus neu und lief csrutil disable. Danach konnte ich repair_packagesmit Erfolg ausführen und wie gewohnt auf / tmp zugreifen. Nach dem Zurückkehren in den Wiederherstellungsmodus und dem Ausführen csrutil enablehat mein System jedoch das gleiche Problem. Der einzige Weg, wie ich auf / tmp zugreifen kann, besteht darin, den Systemintegritätsschutz zu deaktivieren.
Andrew Ferk
4
Am Ende kehrte ich in den Wiederherstellungsmodus zurück und führte ihn aus csrutil disable. Nach einem Neustart entfernte ich den Ordner tmp : sudo rm /tmp; sudo rm /private/tmp, erstellte den Ordner tmp sudo mkdir /private/tmp; sudo chown root:wheel /private/tmp; sudo chmod 1777 /private/tmp, erstellte den Symlink: sudo ln -s /private/tmp /tmpund führte ihn repair_pacakgeserneut aus. Nachdem Sie in den Wiederherstellungsmodus zurückgekehrt sind und ausgeführt wurden csrutil enable, funktioniert alles wieder! Die Berechtigungen von / private / tmp waren drwxrwxrwt@und sind es jetzt drwxrwxrwt. Ich bin mir nicht sicher, was das @ist und ob dies mir Probleme bereiten wird.
Andrew Ferk
1
@AndrewFerk: siehe diese Beiträge apple.stackexchange.com/questions/42177/... unix.stackexchange.com/questions/10/what-does-the-mean-in-ls-l zur Erläuterung des @ erweiterten Berechtigungen Markers
Adam Michalik

Antworten:

22
  1. Starten Sie Ihren Mac im Wiederherstellungsmodus neu
  2. Öffnen Sie das Menü Dienstprogramme in der oberen Leiste> öffnen Sie das Terminal

    csrutil disable
    
  3. Starten Sie neu

  4. Entfernen Sie den tmp-Ordner

    sudo rm -i /tmp
    sudo rm -i /private/tmp
    
  5. Erstellen Sie einen tmp-Ordner

    sudo mkdir /private/tmp
    sudo chown root:wheel /private/tmp
    sudo chmod 1777 /private/tmp
    
  6. Erstellen Sie den Symlink

    sudo ln -s /private/tmp /tmp
    
  7. Ausführen repair_packages(möglicherweise müssen Sie dies nicht tun)

    sudo /usr/libexec/repair_packages --repair --standard-pkgs --volume /
    
  8. Starten Sie den Wiederherstellungsmodus neu und führen Sie ihn aus

    csrutil enable
    
  9. Starten Sie neu


Props an Andrew Ferk für das Herausfinden einer Lösung; Ziehen Sie Ihren Kommentar als Community-Wiki-Antwort heraus, damit er besser lesbar ist.

ento
quelle
2
Vielen Dank!!! Ich hatte 3 Tage damit verbracht, mir darüber die Haare auszureißen. Keine Ahnung, wie die Berechtigungen überhaupt so durcheinander gebracht wurden, aber eines Tages schaltete ich den Mac auf eine Auswahl von Warnungen, nicht funktionierenden Programmen und der Unfähigkeit, irgendetwas zu installieren. Dies hat das Problem behoben.
Johngeorgewright
Warum hast du dieses CW gemacht?
Revetahw sagt Reinstate Monica
1
Da wollte ich nicht Kredit für eine Antwort zu bekommen , die ich nur von jemand anderem Kommentar umgewandelt
ento
Alles klar, cool. Übrigens habe ich Ihren Kommentar bis jetzt nicht gesehen, da es kein @Fiksdal gab.
Revetahw sagt Reinstate Monica
10.13: sudo: / usr / libexec / Reparaturpakete: Befehl nicht gefunden
Даниил Пронин
1
sudo chmod 1777 /private/tmp

Hab es für mich getan.

Renetik
quelle
0

Ich habe dies behoben, indem ich mein System von einem Time Machine Backup wiederhergestellt habe. Aber auch die anderen Vorschläge in den Kommentaren sind einen Versuch wert.

Ali
quelle
0

Wenn Sie diese Nachricht im Terminal (oder iTerm) mit maxOS Mojave erhalten haben

Operation unzulässig

Es stellte sich heraus, dass ich meine Terminal-App zur Settings.app "Sicherheit & Datenschutz"> "Vollständiger Datenträgerzugriff"
hinzufügen musste (ich habe beide hinzugefügt terminal.appund iTerm.app)

Aiden Moon
quelle
-1

Versuchen Sie, Berechtigungen für /private/tmpOrdner zu erstellen und zu ändern, ohne sie auszuführen csrutil disable. Dies funktionierte bei mir, nachdem ich erfolglos versucht hatte zu löschen und die Fehlermeldung beim Booten verschwunden war.

user69083
quelle
Willkommen bei Super User. Bitte senden Sie keine Antwort, um zu bestätigen, dass eine andere Antwort funktioniert hat. Das Q & A-Format der Site reserviert Antworten für Lösungen auf die Frage, und jede Antwort sollte eine andere Lösung beitragen. Der Weg, um anzuzeigen, dass eine Antwort nützlich war, besteht darin, ein wenig Zeit in die Website zu investieren, und Sie erhalten ausreichende Berechtigungen , um die von Ihnen gewünschten Antworten zu verbessern.
Fixer1234