onde o Ubuntu salva a permissão do usuário de um arquivo?

1

Eu não sei o motivo, mas as permissões de usuário do Linux não estão funcionando no sistema de arquivos NTFS ... de qualquer forma, se um arquivo foi copiado do Windows para o Ubuntu, o Ubuntu tem que dar uma propriedade e uma permissão de usuário .. então onde o Ubuntu salva a permissão do usuário de um arquivo? O problema é que mover um arquivo da distribuição Linux para outro não altera as permissões. por isso deve estar dentro do arquivo com certeza. o Ubuntu reescreve cada arquivo?

    
por Srinesh 02.12.2014 / 13:48

2 respostas

2

O Linux usa o NTFS via software chamado NTFS3G (google para detalhes, se estiver interessado). Linux e NTFS têm conceitos totalmente diferentes de usuários, grupos e permissões de arquivos. Isso significa que não é simples traduzir permissões entre sistemas.

Para ajustar as permissões NTFS no formato Linux O NTFS3G tem duas possibilidades: (a) simplesmente ignorar o que o NTFS tem e definir todos os arquivos e todos os diretórios para os mesmos aks; ou (b) desde que o mapeamento do usuário tenha sido feito, ele tenta adivinhar o significado da permissão do Linux resultante de permissões NTFS de um arquivo / diretório paricular.

Caso (a) as permissões fornecidas pelo Linux não sejam armazenadas em qualquer lugar e qualquer tentativa de alterá-las seja ignorada. Caso (b) lê e armazena permissões de arquivo no NTFS.

    
por Vladimir Kovalchuk 02.12.2014 / 20:49
4

No sistema de arquivos ext , que é usado no Linux, inodes são usados para descrever os arquivos armazenados. Um inode contém atributos de um arquivo, assim como seus locais de blocos de dados (esses são os blocos que contêm o conteúdo real do arquivo). O que se segue é brevemente o que é armazenado em um inode:

Número do inode Acesso a arquivos, modificação e alteração de timestamps Tamanho do arquivo Permissões Proprietário Grupo Locais de Bloqueio de Dados

Então, para responder a sua pergunta, o Unix armazena as permissões de um arquivo em seu inode, que está no sistema de arquivos, por exemplo ext4 .

Se você quiser ver as informações do inode de um arquivo, você pode usar o comando stat :

$ stat /bin/bash
  File: ‘/bin/bash’
  Size: 635933          Blocks: 624        IO Block: 65536  regular file
Device: 2e208854h/773883988d    Inode: 281474976901122  Links: 1
Access: (0755/-rwxr-xr-x)  Uid: ( 1000/    Alaa)   Gid: (  513/    None)
Access: 2014-10-18 13:45:13.375853300 -0400
Modify: 2014-10-08 16:54:16.000000000 -0400
Change: 2014-10-18 13:45:13.438253400 -0400
 Birth: 2014-10-18 13:45:13.375853300 -0400

Para apontar algo em sua pergunta: por padrão, quando você copia um arquivo de uma distribuição Linux para outra, as permissões não são copiadas. O que acontece é que os blocos de dados (o conteúdo real) são copiados, mas todos os outros atributos não são. Assim, por exemplo, se você estiver copiando arquivos do disco rígido interno para o externo (ambos formatados como ext4 ), o proprietário dos dados copiados no disco rígido externo se tornará (acho) o usuário que fez o comando de cópia. Se você quisesse preservar as permissões (e outros atributos) de um arquivo, teria que usar um sinalizador extra, como -p (ou --preserve ) no comando cp :

   -p     same as --preserve=mode,ownership,timestamps

   --preserve[=ATTR_LIST]
      preserve   the   specified   attributes   (default:  mode,owner-
      ship,timestamps), if possible  additional  attributes:  context,
      links, xattr, all

Em que mode são as permissões. Usando opções como -p copia os atributos do inode para o novo arquivo.

O Windows usa o FAT32 ou NTFS, que são sistemas de arquivos completamente diferentes que não entendem inodes. É por isso que, quando você copia algo do Linux ( ext4 ) para o Windows (NTFS ou FAT32), o Windows aplica seus próprios atributos ao arquivo.

Quando você monta um sistema de arquivos NTFS no Ubuntu, ele define permissões em tudo na partição usando o comando umask (ou as opções fmask e dmask in fstab ). Quando você copia algo para essa partição montada, esses arquivos aceitam o que o comando umask implica, e as permissões não podem ser alteradas a menos que você remonte a partição inteira com novas opções.

Para mais informações, leia a manpage do ntfs-3g aqui: link .

    
por Alaa Ali 02.12.2014 / 23:05