Como o hardlink e o softlink funcionam em segundo plano?

0

Estou procurando uma explicação sobre o seguinte:

  • o que acontece no Linux quando criamos links e hardlinks
  • como eles são acessíveis
  • por que os links simbólicos sempre exibem 777 permissões
por Rahul Patil 20.02.2013 / 05:51

1 resposta

5

No Unix, um arquivo (ou qualquer objeto do sistema de arquivos) é representado por um inode (nó indireto). Todas as informações sobre o arquivo (tamanho, registros de data e hora, permissões) são armazenadas no inode, um diretório é essencialmente apenas um nome de mapeamento de arquivo para inodes. Um inode pode ser mencionado várias vezes, no mesmo diretório com nomes diferentes ou em diretórios diferentes. Cada um será exatamente o mesmo arquivo, não há primário e secundário aqui. Um dos dados no inode é o número de links, a exclusão de um arquivo simplesmente apaga o nome do diretório e diminui o número de links. Quando a contagem atinge 0, o arquivo não pode mais ser encontrado e pode ser destruído. Cada uma das menções do arquivo é chamada de link físico .

Um link simbólico é essencialmente um arquivo especial que contém o nome de um arquivo. Sempre que o link simbólico é seguido, o nome do arquivo contido é lido e esse arquivo é então procurado normalmente. Observe que o destino do link simbólico pode ter sido removido, não há como saber onde esses links podem existir para corrigi-los. O resultado é um link quebrado.

As permissões no link simbólico são completamente irrelevantes, o que é relevante são as permissões no caminho para o destino. Convencionalmente links simbólicos têm permissão 0777 (octal).

Observe que há algumas restrições: Os links físicos podem ser adicionados a um arquivo somente no mesmo sistema de arquivos (os inodes são conhecidos apenas localmente) e não podem se referir a diretórios (exceto para as entradas . e .. ). O último é evitar loops, o que exigiria coleta de lixo cara para descobrir se algo pode ser excluído ou não.

Links simbólicos podem cruzar sistemas de arquivos e apontar para diretórios. Mas eles estão sujeitos às permissões do caminho apontado e podem ser quebrados.

    
por 20.02.2013 / 06:11