Eu tenho algumas idéias ...
Use ZIP
O formato ZIP faz armazenar informações de permissão (pelo menos as implementações do Info-ZIP, usadas pelo Mint / Ubuntu / Debian), mas aparentemente não usuários / grupos (pelo menos a versão no Mint "This é Zip 3.0 (05 de julho de 2008), por Info-ZIP. "). Se os arquivos pertencerem ao seu usuário sem nenhum usuário ou grupo especial, o zip deverá funcionar bem o suficiente.
Testado com um diretório, usando também o Archive Manager 3.10.2.1, e ele preservou as permissões dos arquivos & diretórios OK. O usuário: grupo aparentemente está configurado para você: você.
Veja Wikipedia sobre o formato de arquivo do Zip :
The Info-ZIP implementations of the .ZIP format adds support for Unix filesystem features, such as user and group IDs, file permissions, and support for symbolic links. The Apache Ant implementation is aware of these to the extent that it can create files with predefined Unix permissions. The Info-ZIP implementations also know how to use the error correction capabilities built into the .ZIP compression format. Some programs (such as IZArc) do not, and will fail on a file that has errors.
The Info-ZIP Windows tools also support NTFS filesystem permissions, and will make an attempt to translate from NTFS permissions to Unix permissions or vice versa when extracting files. This can result in potentially unintended combinations, e.g. .exe files being created on NTFS volumes with executable permission denied.
7z parece armazenar o arquivo & permissões de diretórios OK também, e nenhuma informação de usuário / grupo também.
Use um sistema de arquivos em um arquivo
Especialmente porque o espaço não é problema, você pode criar um único arquivo muito grande e tratá-lo como uma partição grande, formatá-lo para ext (ou seu formato linux favorito) para armazenar todos os seus arquivos.
Uma vez montado, o Linux tratará como outra partição e você poderá copiar & ler arquivos para ele preservando todas as permissões / usuários.
Os passos são basicamente
-
Crie um arquivo grande vazio / zero.
head
works, oudd
etc. Este exemplo cria um arquivo 5M cheio de zeros:head -c 5M /dev/zero > bigfile
(substitua 5M por qualquer tamanho desejado, usando o sufixo multiplicador desejado: "b 512, kB 1000, K 1024, MB 1000 * 1000, M 1024 * 1024, GB 1000 * 1000 * 1000, G 1024 * 1024 * 1024, e assim por diante para T, P, E, Z, Y. ")
-
Formate o arquivo. Algumas instruções dizem para configurar primeiro um arquivo de loop, com
losetup
, mas as distribuições modernas podem fazer a parte do loop elas mesmas.$ mke2fs -v bigfile mke2fs 1.42.9 (4-Feb-2014) bigfile is not a block special device. Proceed anyway? (y,n) y ... Writing superblocks and filesystem accounting information: done
-
Monte o sistema de arquivos & use-o
$ sudo mount -v bigfile mountpoint mount: enabling autoclear loopdev flag mount: going to use the loop device /dev/loop1 mount: you didn't specify a filesystem type for /dev/loop1 I will try type ext2 /home/user/bigfile on /home/user/mountpoint type ext2 (rw)
Eu vi alguns programas para Windows que podem ler partições ext, mas eu não sei ao certo se alguém pode fazer isso de um arquivo como este, então os arquivos podem não estar acessíveis no Windows.