Por que tudo está definido como imutável e como eu o inverto?

2

Não consigo alterar as permissões (muito menos excluir) qualquer coisa em diretórios como /usr/local(que eu deveria estar). Minha pesquisa indicou que é devido ao OSX definir automaticamente tudo para ser imutável. Consegui solucionar meu problema inicializando no modo de usuário único e remontando a partição -uw. De lá eu pude usar chflagspara remover a imutabilidade.

No entanto, eu realmente adoraria não ter que fazer isso o tempo todo. Existe uma maneira de desativar a imutabilidade globalmente em todo o sistema? Existe uma razão para eu não dever?

n0pe
fonte
Eu acho que você precisa começar descobrindo por que todo o seu sistema de arquivos está sendo marcado como imutável. Isso acontece de forma reproduzível? Você tem alguma mensagem em algum dos seus logs? Você já tentou executar o Reparo de permissões do Utilitário de Disco? Você tentou redefinir as permissões do diretório inicial ?
DW
@ DW então, eu continuei cavando mais fundo. Acontece que, em algum momento da linha, um novo usuário chamado rootfoi criado no meu sistema. Eu tive que forçar uid=0esse usuário. Agora as coisas correm muito mais suavemente. Embora a imutabilidade ainda seja interessante. Alguma razão pela qual o OSX faz dessa maneira?
n0pe
O OS X não faz dessa maneira - algo mais está fazendo isso (e provavelmente também criou a conta raiz falsa), e você terá que fazer alguma solução de problemas / isolamento de falhas para descobrir o que é isso. BTW, o usuário root que você mencionou: isso além da conta root normal ou apenas atrapalhou a conta root normal?
Gordon Davisson

Respostas:

1

O usuário root sempre deve poder alterar as permissões no sistema de arquivos. Eu acredito que as coisas são imutáveis ​​por padrão para ajudar a evitar armas de fogo por pessoas que tentam copiar / colar coisas da Internet. Exigir uma senha root pode dar às pessoas alguma pausa ou, pelo menos, dar a elas a ideia de que alterar os arquivos aleatoriamente em / usr / local pode não ser uma boa idéia.

O Homebrew, o gerenciador de pacotes do Mac, torna o / usr / local gravável para poder instalar pacotes da Web sem precisar usar o sudocomando todas as vezes. Ele executa os dois comandos a seguir para conseguir isso:

sudo chmod 775 /usr/local
sudo /usr/bin/chgrp "admin" /usr/local/<unwritable directories/files below this>
Kevin Burke
fonte