os sparsebundles podem ser bloqueados para torná-los somente leitura?

5

Com arquivos sparseimage, posso definir o atributo Locked em 'Get Info' para evitar a modificação de seu conteúdo. Fazer isso com sparsebundles não tem efeito, parece.

No momento, estou armazenando meu sparsebundle dentro de uma imagem esparsa para obter essa funcionalidade de bloqueio fácil.

Eu estou negligenciando uma maneira mais fácil de tornar meu volume esparso só de leitura?

    
por noop 29.01.2013 / 14:16

1 resposta

5

Parece que o Finder não aplica o sinalizador Locked (ou a permissão muda na caixa de diálogo Obter Informações para esse assunto) recursivamente para o pacote inteiro. Se isso é algo que você precisa regularmente, você pode querer escrever um serviço para as sugestões a seguir, para que você possa fazer isso do Finder em vez do Terminal.

Você pode remover permissões de gravação para o pacote na linha de comando executando chmod :

chmod -R a-w 

Digite este comando (incluindo um caractere de espaço à direita) e, em seguida, arraste o ícone do pacote esparso para a janela do Terminal. Deve ficar assim, dependendo do nome do seu pacote esparso e de onde ele está armazenado:

chmod -R a-w /path/to/container.sparsebundle

Execute chmod -R u+w /path/to/container.sparsebundle para obter permissões de gravação novamente. Esses comandos podem demorar um pouco para grandes pacotes esparsos.

Como alternativa, você pode definir o sinalizador bloqueado em todos os arquivos do pacote executando o comando chflags :

chflags -R uimmutable /path/to/container.sparsebundle

Para reverter, execute chflags -R nouimmutable /path/to/container.sparsebundle .

Você também pode montar o pacote somente leitura, para impedir temporariamente as alterações. Para fazer isso, execute o seguinte no Terminal:

hdiutil attach /path/to/container.sparsebundle -readonly

Note que você precisará sempre montá-lo desta forma para evitar alterações.

Se você puder tolerar a imagem usando um ponto de montagem diferente do habitual, execute o configure do sistema para montar sempre esta imagem como somente leitura.

Primeiro, determine o volume UUID. Monte o pacote esparso e execute diskutil list na linha de comando. Procure uma entrada com o mesmo nome do volume, da seguinte maneira:

/dev/disk8
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:     Apple_partition_scheme                        *102.4 MB   disk8
   1:        Apple_partition_map                         32.3 KB    disk8s1
   2:                  Apple_HFS Disk Image              102.4 MB   disk8s2

Neste exemplo, o volume aparece como "Imagem de Disco" no Finder. Observe o identificador à direita ( disk8s2 ). Você precisa inseri-lo para o seguinte comando após /dev/ :

diskutil info /dev/disk8s2

Procure a linha que começa com Volume UUID e anote o valor à direita, por ex. D7C6180C-2178-32EF-98E6-7FB71AED2ABC

Agora só precisamos criar um ponto de montagem personalizado. Geralmente, cada volume é montado em /Volumes , mas esses pontos de montagem são excluídos durante a desmontagem e a próxima tentativa de montagem de um volume referenciado em fstab falhará porque o ponto de montagem não existe. Então, basta criar uma pasta chamada "Imagem" no seu diretório pessoal.

Agora podemos o OS X para sempre montá-lo somente leitura. No Terminal, execute sudo vifs e digite sua senha. Eu suponho que você esteja familiarizado o suficiente com vi / vim , se não, agora é um bom momento para ler sobre isso.

Adicione uma linha como a seguinte, substituindo os valores corretos por UUID e ponto de montagem aplicáveis ao seu sistema:

UUID=D7C6180C-2178-32EF-98E6-7FB71AED2A56 /Users/danielbeck/Image hfs ro

Em seguida, salve e feche. Agora você pode montar a imagem com um clique duplo, ela será mostrada no Finder e será somente leitura.

    
por 29.01.2013 / 14:51