Impossibile scrivere nella directory / tmp in macOS, impossibile correggere le autorizzazioni: "Operazione non consentita"


13

macOS El Capitan (10.11) non è in grado di installare alcun aggiornamento software o di installare alcun software poiché /tmple /private/tmpcartelle e non sembrano essere scrivibili.

Eseguendo questo:

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

Mi dà questo errore:

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

C'è un modo per eliminare manualmente le cartelle tmp e ricrearle? Quando ho provato a rinominare o eliminare /tmpo /private/tmpho continuato a ottenere operazioni non consentite. sudo chmod 1777anche fallito allo stesso modo su entrambe /tmpe /private/tmpcartelle

Utility Disco dice che il disco è integro e non sono stati rilevati problemi durante l'esecuzione del pronto soccorso.

C'è un modo per reindirizzare la tmpposizione in un'altra cartella scrivibile?


1
Prima hai disabilitato SIP? Dal recupero; Terminalcsrutil disable
Tetsujin,

2
Ho lo stesso problema. Seguito il consiglio di Tetsujin, riavviato in modalità di ripristino ed eseguito csrutil disable. Dopo ciò, sono stato in grado di eseguire repair_packagescon successo e sono stato in grado di accedere a / tmp come al solito. Tuttavia, dopo essere tornato alla modalità di ripristino ed eseguire csrutil enable, il mio sistema ha lo stesso problema. Sembra che l'unico modo in cui posso accedere a / tmp sia disabilitando System Integrity Protection.
Andrew Ferk,

4
Ho finito per tornare alla modalità di ripristino e l'esecuzione csrutil disable. Dopo un riavvio, ho rimosso la cartella tmp sudo rm /tmp; sudo rm /private/tmp:, creato la cartella tmp sudo mkdir /private/tmp; sudo chown root:wheel /private/tmp; sudo chmod 1777 /private/tmp, creato il collegamento simbolico: sudo ln -s /private/tmp /tmped eseguito di repair_pacakgesnuovo. Dopo essere tornati in modalità di ripristino e in esecuzione csrutil enable, tutto funziona di nuovo! Tuttavia, le autorizzazioni di / private / tmp erano drwxrwxrwt@e ora lo sono drwxrwxrwt. Non sono sicuro di cosa @sia e se questo mi causerà problemi.
Andrew Ferk,

1
@AndrewFerk: vedi questi post apple.stackexchange.com/questions/42177/… unix.stackexchange.com/questions/10/what-does-the-mean-in-ls-l per la spiegazione del marker di @ permessi estesi
Adam Michalik

Risposte:


22
  1. Riavvia il Mac in modalità di ripristino
  2. Apri il menu Utilità nella barra in alto> apri Terminale

    csrutil disable
    
  3. Reboot

  4. Rimuovere la cartella tmp

    sudo rm -i /tmp
    sudo rm -i /private/tmp
    
  5. Crea cartella tmp

    sudo mkdir /private/tmp
    sudo chown root:wheel /private/tmp
    sudo chmod 1777 /private/tmp
    
  6. Crea il link simbolico

    sudo ln -s /private/tmp /tmp
    
  7. Esegui repair_packages(potrebbe non essere necessario farlo)

    sudo /usr/libexec/repair_packages --repair --standard-pkgs --volume /
    
  8. Riavvia in modalità di ripristino ed esegui

    csrutil enable
    
  9. Reboot


Puntelli ad Andrew Ferk per aver trovato una soluzione; tirando fuori il tuo commento come una risposta wiki della comunità in modo che sia più leggibile.


2
Grazie!!! Avevo trascorso 3 giorni a strapparmi i capelli per questo. Non ho idea di come le autorizzazioni siano state così rovinate in primo luogo, ma un giorno ho acceso il mac per una selezione di avvisi, programmi non funzionanti e l'incapacità di installare nulla. Questo risolto quel problema.
johngeorgewright,

Perché hai realizzato questo CW?
Revetahw dice di reintegrare Monica il

1
Perché non volevo ottenere credito per una risposta che ho semplicemente convertito dal commento di qualcun altro
ento

Va bene, fico. A proposito, non ho visto il tuo commento fino ad ora poiché non c'era @Fiksdal.
Revetahw dice di reintegrare Monica il

10.13: sudo: / usr / libexec / repair_packages: comando non trovato
Даниил Пронин


0

Ho risolto il problema ripristinando il mio sistema da un backup di Time Machine. Ma vale la pena provare anche gli altri suggerimenti nei commenti.


0

Se hai ricevuto questo messaggio nel terminale (o iTerm) usando maxOS Mojave

operazione non permessa

Si è scoperto che dovevo aggiungere la mia app terminale a Settings.app "Sicurezza e privacy"> "Accesso completo al disco"
(ho aggiunto entrambi terminal.appe iTerm.app)


-1

Prova a creare e modificare le autorizzazioni per la /private/tmpcartella senza eseguirlo csrutil disable. Questo ha funzionato per me, dopo aver tentato di eliminare senza successo e il messaggio di errore all'avvio è sparito.


Benvenuto in Super User. Non inviare una risposta per confermare che ha funzionato un'altra risposta. Il formato di domande e risposte del sito riserva le risposte per le soluzioni alla domanda e ogni risposta dovrebbe contribuire con un'altra soluzione. Il modo per indicare che una risposta è stata utile è investire un po 'di tempo nel sito e otterrai privilegi sufficienti per valutare le risposte che ti piacciono.
fixer1234,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.