Sim, o Mac tem muitos aprimoramentos no Unix na área de arquivos. Ignorando toda a coisa fork do recurso que não é mais usada, existem:
- as permissões padrão do Unix
ugo
rwx
e assim por diante. Aplicam-se ferramentas normais do Unix.
-
ACL , visível com
ls -le
e alterável com chmod [ -a | +a | =a ]
.
-
sinalizadores de arquivo visíveis com
ls -lO
e alteráveis com chflags
.
-
atributos estendidos , visíveis com
ls -l@
(somente chaves de atributos) e visíveis e alteráveis com xattr
. (Use xattr -h
para ajuda se man xattr
não der nada a você.)
- A partir do OS X 10.11 "El Capitan", Proteção de integridade do sistema ( O SIP protege ainda mais alguns arquivos contra alterações de processos comuns, mesmo quando usa
sudo
para ser executado como root
. Os arquivos protegidos pelo SIP serão listados por ls -lO
como tendo o sinalizador restricted
.
Você pode ter suas operações negadas em um arquivo por causa de permissões do UNIX, ACLs, sinalizadores de arquivo ou SIP. Para desbloquear completamente um arquivo:
sudo chmod -N file # Remove ACLs from file
sudo chmod ugo+rw file # Give everyone read-write permission to file
sudo chflags nouchg file # Clear the user immutable flag from file
sudo chflags norestricted file # Remove the SIP protection from file
Se a proteção de integridade do sistema (SIP) estiver ativada, sudo chflags norestricted
também retornará um erro "Operação não permitida". Para limpar o sinalizador restricted
, você precisa inicializar em recuperação do macOS e executar chflags norestricted
do Terminal (você pode ser necessário primeiro usar o Utilitário de Disco para desbloquear e montar sua unidade de inicialização e, em seguida, lembre-se de que seus arquivos estarão em /Volumes/Macintosh HD
ou o nome da sua unidade de inicialização) ou disable SIP completamente e, em seguida, reinicie e sudo chflags norestricted
deverá funcionar. Esteja ciente, no entanto, de que futuras atualizações do sistema operacional provavelmente restaurarão o sinal restricted
em qualquer arquivo do qual você o removeu.
A desativação do SIP não é recomendada , pois remove muita proteção contra malware e danos acidentais, além de não ser necessário quando você pode simplesmente remover a proteção em uma execução. base de arquivos. Se você desabilitar o SIP, reative-o quando terminar de fazer alterações.
Observe que, se ls -lO
mostrar o sinalizador schg
definido, você precisará entrar no modo de usuário único para desativá-lo. Eu não vou entrar nisso aqui, pois há questões maiores sobre por que o arquivo tem essa flag set e porque você está tentando mexer com ele e quais serão as consequências.