Não foi possível gravar no diretório / tmp no macOS, não foi possível corrigir as permissões: "Operação não permitida"

13

O macOS El Capitan (10.11) não consegue instalar nenhuma atualização de software ou software, porque /tmpas /private/tmppastas e não parecem graváveis.

Executando isso:

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

Dá-me este erro:

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

Existe uma maneira de excluir manualmente as pastas tmp e recriá-las? Quando tentei renomear ou excluir /tmpou /private/tmpcontinuei obtendo operação não permitida. sudo chmod 1777também falhou da mesma maneira em ambas as pastas /tmpe/private/tmp

O Utilitário de Disco diz que o disco está íntegro, sem problemas detectados ao executar os primeiros socorros.

Existe alguma maneira de redirecionar o tmplocal para outra pasta gravável?

Todos
fonte
1
Você desativou o SIP primeiro? De recuperação; Terminalcsrutil disable
Tetsujin 10/10
2
Eu tenho o mesmo problema. Seguiu o conselho de Tetsujin, reiniciou no modo de recuperação e foi executado csrutil disable. Depois disso, consegui executar repair_packagescom sucesso e acessar / tmp como de costume. No entanto, depois de voltar ao modo de recuperação e executar csrutil enable, meu sistema está tendo o mesmo problema. Parece que a única maneira de obter acesso ao / tmp é desabilitando a Proteção de Integridade do Sistema.
Andrew Ferk
4
Acabei voltando ao modo de recuperação e executando csrutil disable. Após reiniciar, removi a pasta tmp sudo rm /tmp; sudo rm /private/tmp:, criei a pasta tmp sudo mkdir /private/tmp; sudo chown root:wheel /private/tmp; sudo chmod 1777 /private/tmp, criei o link simbólico: sudo ln -s /private/tmp /tmpe executei repair_pacakgesnovamente. Depois de voltar ao modo de recuperação e execução csrutil enable, tudo está funcionando novamente! No entanto, as permissões de / private / tmp costumavam ser drwxrwxrwt@e agora são drwxrwxrwt. Não tenho certeza do que @é e se isso vai me causar problemas.
Andrew Ferk
1
@AndrewFerk: veja essas postagens apple.stackexchange.com/questions/42177/… unix.stackexchange.com/questions/10/what-does-the-mean-in-ls-l para obter explicação sobre o marcador de @ permissões estendidas
Adam Michalik

Respostas:

22
  1. Reinicie o seu Mac no modo de recuperação
  2. Abra o menu Utilitários na barra superior> abra o Terminal

    csrutil disable
    
  3. Reiniciar

  4. Remova a pasta tmp

    sudo rm -i /tmp
    sudo rm -i /private/tmp
    
  5. Criar pasta tmp

    sudo mkdir /private/tmp
    sudo chown root:wheel /private/tmp
    sudo chmod 1777 /private/tmp
    
  6. Crie o link simbólico

    sudo ln -s /private/tmp /tmp
    
  7. Executar repair_packages(talvez você não precise fazer isso)

    sudo /usr/libexec/repair_packages --repair --standard-pkgs --volume /
    
  8. Reinicie de volta ao modo de recuperação e execute

    csrutil enable
    
  9. Reiniciar


Adereços para Andrew Ferk por descobrir uma solução; retirando seu comentário como uma resposta wiki da comunidade, para que fique mais legível.

ENTO
fonte
2
Obrigado!!! Passei 3 dias puxando meu cabelo por causa disso. Não faço ideia de como as permissões foram tão danadas em primeiro lugar, mas um dia liguei o mac para uma seleção de avisos, programas que não estavam funcionando e incapacidade de instalar qualquer coisa. Isso corrigiu esse problema.
johngeorgewright
Por que você fez essa CW?
Revetahw diz Restabelecer Monica
1
Porque eu não queria obter crédito para uma resposta que eu simplesmente convertido de comentário de outra pessoa
ento
Tudo bem, legal. BTW, eu não vi seu comentário até agora, pois não havia @Fiksdal.
Revetahw diz Restabelecer Monica 3/11
10.13: sudo: / usr / libexec / repair_packages: comando não encontrado
Даниил Пронин
1
sudo chmod 1777 /private/tmp

Fez isso por mim.

Renetik
fonte
0

Corrigi isso restaurando meu sistema a partir de um Time Machine Backup. Mas vale a pena tentar outras sugestões nos comentários.

Todos
fonte
0

Se você recebeu esta mensagem no terminal (ou iTerm) usando o maxOS Mojave

operação não permitida

Acontece que eu precisava adicionar meu aplicativo de terminal ao Settings.app "Segurança e privacidade"> "Acesso total ao disco"
(adicionei ambos terminal.appe iTerm.app)

Aiden Moon
fonte
-1

Tente criar e modificar permissões na /private/tmppasta sem executar csrutil disable. Isso funcionou para mim, depois de tentar excluir sem êxito e a mensagem de erro na inicialização desapareceu.

user69083
fonte
Bem-vindo ao superusuário. Não poste uma resposta para confirmar que outra resposta funcionou. O formato de perguntas e respostas do site reserva respostas para soluções para a pergunta, e cada resposta deve contribuir com outra solução. A maneira de indicar que uma resposta foi útil é investir um pouco de tempo no site e você obterá privilégios suficientes para aprovar as respostas que desejar.
fixer1234