Tl; dr
Tanto para mover como para copiá-lo depende da ferramenta usada para mover / copiar o arquivo e para copiar também na umask do usuário. No entanto:
- Se o arquivo for movido: normalmente SIM , como para uma ferramenta destinada a mover arquivos para alterar arbitrariamente as permissões dos arquivos movidos, faz pouco sentido;
-
Se o arquivo for copiado: geralmente NO , como por convenção, os arquivos copiados têm permissões
666
menos a umask do usuário, que por padrão é002
; Não importa as permissões do arquivo original, em 99% dos casos, um arquivo copiado terá permissões664
;
Copiando um arquivo = ~ lendo um arquivo e escrevendo em outra posição = ~ criando um novo arquivo com o conteúdo do arquivo original .
As permissões de um arquivo copiado / movido de / para o mesmo sistema de arquivos ou copiado / movido de / para outro sistema de arquivos dependem:
- Na ferramenta copiando / movendo o arquivo.
- Ao copiar, também no umask do usuário, como copiar um arquivo = ~ ler um arquivo e gravá-lo em outra posição = ~ criar um novo arquivo com o conteúdo do arquivo original, assim restrições que se aplicam a arquivos recém-criados também aplicar aos arquivos copiados.
Então, é totalmente até a combinação dos dois. No entanto:
- A convenção é que um arquivo copiado de / para o mesmo sistema de arquivos ou de / para outro sistema de arquivos terá as permissões definidas como
666
pela ferramenta; o umask padrão é002
, portanto, em 99% dos casos, o arquivo terá permissões664
; - A convenção é que um arquivo movido de / para o mesmo sistema de arquivos ou de / para outro sistema de arquivos terá as permissões definidas para as permissões do arquivo original pelo ferramenta;
O download de um arquivo da Internet não tem nada a ver com metadados, pois os metadados são uma coisa do sistema de arquivos; As permissões definidas para um arquivo baixado da Internet são definidas seguindo as mesmas "regras" que se aplicam a um arquivo copiado de / para o mesmo sistema de arquivos ou de / para outro sistema de arquivos, isto é, dependendo da ferramenta e da umask do usuário. >
Portanto, quando você faz o download de um arquivo da Internet, as permissões do arquivo baixado geralmente são definidas como 664
:
% wget 'http://downloads.sourceforge.net/project/resolutionx/ResolutionX.tar.gz?r=http%3A%2F%2Fsourceforge.net%2Fprojects%2Fresolutionx%2F&ts=1446571625&use_mirror=netassist'
--2015-11-03 18:28:07-- http://downloads.sourceforge.net/project/resolutionx/ResolutionX.tar.gz?r=http%3A%2F%2Fsourceforge.net%2Fprojects%2Fresolutionx%2F&ts=1446571625&use_mirror=netassist
Resolving downloads.sourceforge.net (downloads.sourceforge.net)... 216.34.181.59
Connecting to downloads.sourceforge.net (downloads.sourceforge.net)|216.34.181.59|:80... connected.
HTTP request sent, awaiting response... 302 Found
Location: http://netassist.dl.sourceforge.net/project/resolutionx/ResolutionX.tar.gz [following]
--2015-11-03 18:28:08-- http://netassist.dl.sourceforge.net/project/resolutionx/ResolutionX.tar.gz
Resolving netassist.dl.sourceforge.net (netassist.dl.sourceforge.net)... 62.205.134.42, 2a01:d0:0:37::2
Connecting to netassist.dl.sourceforge.net (netassist.dl.sourceforge.net)|62.205.134.42|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 8280 (8,1K) [application/x-gzip]
Saving to: ‘ResolutionX.tar.gz?r=http%3A%2F%2Fsourceforge.net%2Fprojects%2Fresolutionx%2F&ts=1446571625&use_mirror=netassist’
ResolutionX.tar.gz? 100%[=====================>] 8,09K --.-KB/s in 0,007s
2015-11-03 18:28:22 (1,07 MB/s) - ‘ResolutionX.tar.gz?r=http%3A%2F%2Fsourceforge.net%2Fprojects%2Fresolutionx%2F&ts=1446571625&use_mirror=netassist’ saved [8280/8280]
% ls -l
total 12
-rw-rw-r-- 1 user user 8280 set 1 11:55 ResolutionX.tar.gz?r=http%3A%2F%2Fsourceforge.net%2Fprojects%2Fresolutionx%2F&ts=1446571625&use_mirror=netassist
No entanto, arquivos extraídos de um tarball terão as permissões definidas com base nas restrições específicas do Tar ;
Se o usuário que extrair o tarball for root ou se o Tar for chamado de passar a opção -p
, --preserve-permissions
ou --same-permissions
, as permissões dos arquivos extraídos serão definidas para as permissões dos arquivos originais:
user@user-X550CL ~/tmp % touch foo
user@user-X550CL ~/tmp % chmod 777 foo
user@user-X550CL ~/tmp % tar cf foo.tar foo
user@user-X550CL ~/tmp % rm foo
user@user-X550CL ~/tmp % tar xf foo.tar -p
user@user-X550CL ~/tmp % ls -l
total 12
-rwxrwxrwx 1 user user 0 nov 4 07:45 foo
-rw-rw-r-- 1 user user 10240 nov 4 07:45 foo.tar
Se o usuário que extraiu o tarball não raiz e Tar não é chamado passando o -p
, --preserve-permissions
ou --same-permissions
switch, as permissões dos arquivos extraídos serão configuradas para as permissões dos arquivos originais menos a umask do usuário :
user@user-X550CL ~/tmp % tar xf foo.tar
user@user-X550CL ~/tmp % ls -l
total 12
-rwxrwxr-x 1 user user 0 nov 4 07:45 foo
-rw-rw-r-- 1 user user 10240 nov 4 07:45 foo.tar