O que acontece com os UIDs na montagem do sistema de arquivos?

3

Eu tenho uma pergunta muito básica e ainda não consegui encontrar a resposta após ~ 10 solicitações do google e vasculhando meu livro-texto unix, então:

Considere um sistema com 2 discos rígidos, tendo o sistema de arquivos raiz em /dev/sda1 e a partição / home em /dev/sdb1 . Agora, um processo com UID = 1000: GID = 1000 deseja montar o sistema de arquivos /dev/sdb1 em /mnt/backup . Eu posso imaginar dois cenários de como isso acontece:

Eumepergunto,sobquaisUIDseGIDselemontourecentementeosistemadearquivosévisível:

1.OsUIDseosGIDspodemserpreservados,comonaimagem.

2. Os UIDs e os GIDs no sistema de arquivos montado podem ser definidos como UID e GID = 1000 do processo de montagem. Se não houver UIDs e GIDs no sistema de arquivos, esse caso ocorre:

Minhas perguntas são:

  1. Em quais situações os casos 1 e 2 ocorrem? Quais parâmetros de mount chamada do sistema determinam, qual deles ocorre?
  2. No caso 2, como determino os UIDs e os GIDs reais dos arquivos. No meu exemplo, /mnt/backup/john e /mnt/backup/jane no sistema de arquivos montado são definidos como UID = 1000, mas na verdade seus UIDs eram 1002 e 1003. Como os conheço?
  3. No caso 1, o que acontece se o UID de Jane = 1003 não existir no sistema?
por Boris Burkov 24.05.2013 / 23:27

2 respostas

3

Se você usar o comando ls -n , poderá ver os UIDs em um determinado disco / partição montado.

$ ls -n
total 24
drwxrwxr-x 2 500 501  4096 May 24 15:44 bin
-rw-rw-r-- 1 500 501 11650 May 24 15:44 bouncer.log
drwxrwxr-x 5 500 501  4096 May 23 14:56 testdata
drwxrwxr-x 5 500 501  4096 May 24 14:55 testresults

Você também pode usar o comando stat para ver mais detalhes sobre o UID / GID de um determinado arquivo:

$ stat bouncer.log 
  File: 'bouncer.log'
  Size: 11650       Blocks: 24         IO Block: 4096   regular file
Device: fd02h/64770d    Inode: 11023682    Links: 1
Access: (0664/-rw-rw-r--)  Uid: (  500/    saml)   Gid: (  501/    saml)
Access: 2013-05-24 15:44:17.322878327 -0400
Modify: 2013-05-24 15:44:25.484211596 -0400
Change: 2013-05-24 15:44:25.484211596 -0400

Os UIDs são absolutos. Eles são o que está no sistema. Os nomes são mapeados pelas várias ferramentas como ls procurando nos arquivos /etc/passwd e /etc/group do sistema.

Se um número não estiver representado em nenhum desses arquivos, o número do UID / GID que está no disco é exibido.

É responsabilidade do administrador do sistema certificar-se de que UIDs / GIDs semelhantes nos discos sejam realmente o mesmo usuário e / ou grupo. O Unix não fornece nenhum mecanismo para garantir isso para você.

    
por 25.05.2013 / 00:57
3

As IDs de usuário são armazenadas como parte do arquivo para sistemas de arquivos compatíveis com UNIX. Não há conversão. Para sistemas de arquivos não unix, como o fat, você especifica qual ID usar para todos os arquivos ao montá-lo. Se o ID armazenado for mapeado para o usuário errado ou nenhum usuário, ele parecerá ter a propriedade errada.

    
por 24.05.2013 / 23:56