Como o Unix implementa as permissões de arquivo?

7

Eu tenho um arquivo de texto chamado foo.txt com permissão de root em uma distribuição Linux. Eu copiei para outra distribuição Linux em outro computador.

As permissões de arquivo ainda seriam mantidas por foo.txt ?

Se sim, como o Linux do Unix / Linux sabe, e duplica as permissões do arquivo?

Adiciona bytes extras (o que indica as permissões) ao arquivo?

    
por Aashiz Poudel 12.05.2015 / 05:24

3 respostas

12

Para adicionar a resposta de Eric (não tem representante para comentar), as permissões não são armazenadas no arquivo, mas inode do arquivo (ponteiro do sistema de arquivos para a localização física do arquivo no disco) como metadados junto com o proprietário e os registros de data e hora. Isso significa que copiar o arquivo para um sistema de arquivos não-POSIX, como NTFS ou FAT, eliminará os dados da permissão e do proprietário.

O proprietário e o grupo de arquivos são apenas um par de números, ID de usuário (UID) e ID de grupo (GID), respectivamente. O UID raiz é 0 como padrão, portanto, o arquivo será mostrado como pertencente ao root em (quase) todos os sistemas compatíveis com unix. Por outro lado, o proprietário não raiz não será salvo de maneira significativa.

Então, em suma, a propriedade de raiz será preservada se tarball'd ou copiada via usbstick extX ou algo semelhante. A propriedade não raiz não é confiável.

    
por 12.05.2015 / 06:14
4

Isso depende de como você copia. Se você colocá-lo em uma tar bola e copiou isso, então descompacte-o, tar irá preservar as permissões. Se você usar rsync , também, dependendo dos sinalizadores, preservará as permissões. Esses aplicativos são responsáveis pelas permissões. Se você fosse para scp , as permissões não seriam preservadas.

O comando que faz a cópia é responsável por gerenciar as permissões no arquivo recém-criado.

    
por 12.05.2015 / 05:29
0

Para o proprietário / grupo, depende de quem faz a cópia e como.

  • um usuário comum: sempre será o proprietário das cópias por todos os comandos
  • root usuário também, com cp (exceto com a opção --preserve )
  • "preservar" será o padrão para root com tar
por 12.05.2015 / 15:11