O arquivo não pode ser movido pela raiz no OS X

53

Tentei mover alguns arquivos para uma subpasta no OS X. Um recusou-se a mover. Dizia Operation not permitted. Eu tentei novamente como root:

$ sudo mv file subfolder/
mv: rename file to subfolder/file: Operation not permitted
$ sudo mv file filex
mv: rename file to filex: Operation not permitted
$ lsattr file
lsattr: Inappropriate ioctl for device While reading flags on file

Eu tentei lsattrem outros arquivos; todos os arquivos que tentei me deram a mesma mensagem:Inappropriate ioctl for device While reading...

Vindo do Linux, eu não sabia sobre sinalizadores, então aqui está a saída de ls -leO@ file:

$ ls -leO@ file otherfile
-rwxrwxrwx  1 eeytan  staff  uchg 79549 Nov 11  2010 file
-rw-r--r--  1 eeytan  staff  -     5071 Sep  7 02:37 otherfile

Eu tentei o OS X Disk Utility; ele disse que não havia erros no meu disco. Oque esta acontecendo aqui?

eje211
fonte
11
lsattrnão é um comando padrão do OS X; tente em ls -leO@vez disso. Além disso, em que volume está o arquivo? Tente mountver com quais atributos o volume está montado.
Gordon Davisson
11
@GordonDavisson, parece que você está no caminho certo. ls -leo @ diz que o arquivo é o único com o atributo "uchg", que me parece "imutável".
EJr211
Bem-vindo ao perguntar diferente! Vou remover as edições e fazer deste uma pergunta e deixar a resposta para a seção resposta ...
bmike

Respostas:

30

Parece que o arquivo está bloqueado para mim, e é por isso que o atributo uchg está aparecendo. Você deve poder usar o seguinte comando para remover o atributo bloqueado:

chflags nouchg file

ou clique com o botão direito do mouse no arquivo no Finder, clique em "Obter informações" e desmarque a caixa de seleção "Bloqueado"

binarybob
fonte
11
Ha! Parece que você respondeu sua própria pergunta, assim como eu estava postando esta resposta!
binarybob 9/09/13
84

Para as pessoas tropeçar em cima deste em uma época OS X 10.11+ (El Capitan ou mais recente): a Apple adicionou uma nova camada de segurança no OS X . Eles tiraram alguns privilégios da raiz. O arquivo que você está tentando modificar possui um restrictedsinalizador. Somente restrictedprocessos assinados pela Apple poderão modificar esses arquivos. No entanto, você pode desativar esse sistema de segurança por arrancar em modo de recuperação e desativá-lo em um Terminal fazendo: csrutil disable.

Como alternativa, você também pode simplesmente iniciar o Terminal no modo de recuperação e excluir o arquivo lá. Ou tente inicializar em um ambiente Linux com suporte a HFS + (pelo menos se você ainda não estiver no APFS) para alterar o arquivo.

Martijn Courteaux
fonte
11
O que significa o csr no csrutil?
Michael Terry
12
Acredito que foi Benjamin Franklin quem disse "Aqueles que não sacrificam a facilidade de uso por merecedores de segurança". Ou alguma coisa.
Dgig 21/07
5

Experimentar:

chflags -f -R nouchg directory

em um diretório de nível superior para parar esse problema.

dvand
fonte
FWIW: Eu tive esse problema zsh: locking failed for /Users/me/.zhistory: operation not permitted: reading anywaye executar esse comando no meu diretório home fixa-lo
Raine
1

Eu tinha um arquivo que não consegui excluir no terminal:

$ sudo ls -leO@ [email protected]/Documents/.%cb_defense/cb.doc
-rw-rw-rw-  1 root  wheel  - 41984  1 Mar 11:20 [email protected]/Documents/.%cb_defense/cb.doc

$ sudo rm -rf [email protected]/Documents/.%cb_defense/cb.doc
rm: [email protected]/Documents/.%cb_defense/cb.doc: Operation not permitted

O que funcionou para mim foi abrir o Finder e excluir o diretório inteiro. Pelo que entendi, o Finder exclui diretórios como uma unidade que desconsidera completamente seu conteúdo, portanto não está sujeita às mesmas restrições que o normal rm -rf.

Leons
fonte
0

Também tive esse problema e descobri que a pasta em que o arquivo estava estava bloqueada. Portanto, verifique se isso não é verdade. 'Obtenha informações' na pasta do localizador e verifique se a caixa de seleção bloqueada não está marcada.

abbaroo
fonte
0

Sei que esse é um tópico muito antigo, mas não vejo esse tópico abordando meu sintoma, então pensei em postar outra opinião.

Isso aconteceu com uma unidade externa que estava funcionando perfeitamente em um Snow Leopard iMac, que foi atualizado para o El Capitan ao longo do caminho. No início deste ano, peguei essa unidade e a coloquei em uma nova caixa do Windows 10 que estava executando o Paragon HFS for Windows. Copiei centenas de GB de arquivos DE do Windows PARA HFS + nessa unidade e ligado de volta para o iMac. Tudo funcionou bem, exceto por um script de shell que eu tinha que os arquivos temporários para backup encontraram esse problema uchg.

Resumindo: arquivos e pastas criados no El Capitan ou Windows 10 usando o Paragon HFS, quando retornados para uma caixa do Snow Leopard, a caixa de rádio "bloqueada" NÃO será marcada quando você selecionar Get Infono Finder. No entanto, as sugestões de outras pessoas funcionaram bem para mim:

  • verifique se esse é o problema executando ls -leO@(em maiúsculas) em um arquivo suspeito
  • como root, execute chflags -R nouchgno diretório pai (não há -f no Snow Leopard)

Funcionará, mas não espere exatamente as mesmas dicas visuais se a sua unidade tiver sido operada entre sistemas operacionais ou se você usar o Paragon HFS.

Mike Hockurtz
fonte
O diretório chflags -f -R nouchg funciona graças
odjeezeus 4/18