sudo chown falha com operação não permitida

8

Encontrei perguntas semelhantes aqui, mas as respostas fornecidas a essas perguntas não resolvem meu problema.

Se eu fizer:

sudo chown <username> main.m

Eu recebo uma operação que não permite erros.

A solução geral para erros anteriores foi:

sudo chflags nouchg main.m

para limpar um sinalizador de bloqueio. No entanto, depois de fazer isso, ainda não posso chown o arquivo. Eu também tentei:

chflags noschg main.m

no modo de usuário único, sem qualquer sorte - eu recebo uma operação não permitida erro.

Se alguém tiver algum pensamento, eu estaria interessado.

    
por ericg 23.08.2011 / 01:05

1 resposta

8

Os arquivos do Mac podem ser protegidos em quatro três diferentes maneiras que eu conheço:

  1. Propriedade e permissões padrão do Unix, como r / w / x para usuário / grupo / outras que você vê com ls -l e correção com chown(1) e chmod(1) .
  2. Sinalizadores de arquivo como uchg e schg que você vê com ls -lO e corrige com chflags(1) .
  3. O metadado antigo do Finder "Lock bit" que você vê com GetFileInfo filename . Você também pode ver a presença dos metadados do Finder, mas não o seu significado, com ls -l@ . Você pode consertá-lo com SetFile(1) . Não importa, isso é mapeado para o uchg agora.
  4. Access Control Lists (ACLs) que você vê com ls -le e corrige com os argumentos relacionados à ACL para chmod(1) .

Então, vamos ver o que há com o seu arquivo, combinando todos esses sinalizadores para ls :

ls -lO@e main.m

Parece que você já sabe como lidar com os números 1 e 2.

Se você vir uma ACL (# 4), poderá corrigi-la com os argumentos relacionados à ACL para chmod(1) .

Se você ainda estiver perplexo, atualize sua Resposta com a saída do comando combinado ls sugerido acima, para que possamos ver o que está acontecendo.

    
por 23.08.2011 / 07:36