Perda de dados através da alteração de permissões?

1

Parece que eu deletei alguns arquivos na minha unidade de mídia, simplesmente alterando as permissões.

A história

Eu tenho muitos sistemas operacionais instalados no meu computador e alterno constantemente entre eles. Eu comprei um HD de 1 TB e formatado como HFS + (não registrado no diário). Funcionou bem entre o OSX e todas as minhas instalações linux, tendo muito melhor suporte de metadados do que o NTFS. Eu nunca sincronizei os UIDs dos meus sistemas operacionais para que as permissões estivessem sempre fazendo coisas engraçadas. Ontem tentei corrigir as permissões alterando primeiro os UIDs dos outros sistemas operacionais para corresponderem ao OSX e, em seguida, alterando a propriedade de todos os arquivos no disco para corresponder ao OSX. Cerca de 50% dos arquivos da unidade eram originalmente propriedade da OSX, a outra metade era de propriedade das várias instalações do Linux. Comecei a tentar mudar as permissões de arquivo para as pastas, e foi aí que foi para o sul.

Os comandos

Esses comandos foram executados recursivamente na única seção da unidade.

sudo chflags nouchg
sudo chflags -N
sudo chown myusername
sudo chmod 666
sudo chgrp staff

O mau

Em algum momento durante a execução desses comandos, todos os arquivos pertencentes ao OSX foram excluídos. Se uma pasta tivesse arquivos baseados em linux, ela permaneceria intacta, mas qualquer pasta contendo exclusivamente arquivos OSX foi apagada. Se uma pasta contendo arquivos linux contivesse também uma subpasta com apenas arquivos OSX, a subpasta permaneceria, mas seria inacessível e exibiria um tamanho de arquivo de 0 bytes.

Felizmente, esses comandos foram executados apenas na pasta de vídeos, eu também tenho uma pasta de música com o mesmo problema, mas eu não executei nenhum desses comandos nela. Efetivamente eu tenho exemplos das permissões de arquivo para todos os 3 estados - os arquivos linux antes e depois, e os arquivos OSX antes.

Arquivo OSX Antes

-rw-r--r--@ 1 charliehorse  1000  3634241 15 Nov  2008 /path/to/file
    com.apple.FinderInfo         32 

Arquivo Linux antes:

-rw-r--r--@ 1 charliehorse  1000  5321776 20 Sep  2002 /path/to/file/
    com.apple.FinderInfo         32 

Linux File After (somente leitura): (arquivo diferente, mas acredito nas mesmas permissões originalmente)

-rw-rw-rw-@ 1 charliehorse staff  366982610 17 Jun  2008 /path/to/file
    com.apple.FinderInfo           32 

Esses arquivos ainda existem, portanto, se houver algum outro comando para executá-los para determinar o que aconteceu aqui, posso fazer isso.

EDITAR

A execução de ls em uma das pastas "vazias" excluídas do OSX gera isso:

ls: .: Permission denied
ls: ..: Permission denied
ls: subdirA: Permission denied
ls: subdirB: Permission denied
ls: subdirC: Permission denied
ls: subdirD: Permission denied

Acredito que meus arquivos ainda possam estar lá, mas as permissões estão erradas.

    
por charliehorse55 09.07.2012 / 06:31

1 resposta

1

Bem, seu diretório estava "vazio" porque você tirou o "bit de execução" dos diretórios através de seu chmod recursivo, o qual você precisa poder listar os arquivos em um diretório.

Por que o "root" não seria capaz de alterar as permissões: Eu suponho que você tenha executado os comandos "root" através do sudo, o que não funcionaria porque o shell do usuário não poderia "ver" o diretório. Rodar os comandos através de um shell root verdadeiro não teria os mesmos problemas.

    
por 30.07.2012 / 04:08