Os links para diretórios são possíveis em sistemas de arquivos ext2 / 3/4?

0

Eu li que o comando (e talvez a chamada do sistema, também) para criar hard links não permite criar hard links para diretórios. Também entendo que os hard links podem representar problemas para a segurança baseada em caminhos, como DAC, Linux Security Modules e IMA / EVM. Se os links físicos não puderem ser criados para diretórios, isso resolverá os problemas de segurança que podem ser colocados com tais. Mas, é possível criar dois ou mais hard links para um diretório inode editando um sistema de arquivos no nível de armazenamento?

    
por Melab 09.09.2016 / 03:17

2 respostas

1

Diretórios do possuem links físicos ... cada vez que você mkdir um novo diretório, a entrada .. é um link para o mesmo inode que o diretório pai.

por exemplo

$ ls -lid .
23855134 drwxr-xr-x 2 sweh sweh 4096 Sep  8 21:57 .
$ mkdir foo
$ ls -lid . foo/..
23855134 drwxr-xr-x 3 sweh sweh 4096 Sep  8 21:57 .
23855134 drwxr-xr-x 3 sweh sweh 4096 Sep  8 21:57 foo/..

Podemos ver que a contagem de links no diretório subiu 1 (de 2 a 3) e o inode de "." e "foo / .." são ambos 23855134. Você percebe que começou com uma contagem de links de dois; isso é porque "." e a entrada no diretório pai também compartilha o número do inode

$ ls -lid foo foo/.
23855343 drwxr-xr-x 2 sweh sweh 4096 Sep  8 21:57 foo
23855343 drwxr-xr-x 2 sweh sweh 4096 Sep  8 21:57 foo/.

Agora, se você fosse capaz de criar outro link através da edição do sistema de arquivos, você poderia facilmente acabar com fsck de reclamação.

Não faça: -)

    
por 09.09.2016 / 04:02
1

Tecnicamente, você também pode fazê-lo facilmente: debugfs tem um comando ln que pode criar links físicos de diretório. Isso produz um sistema de arquivos em funcionamento com vários diretórios apontando para o mesmo inode (além de .. como em Stephen Harris 'answer), embora você precise manipular a contagem de links manualmente se quiser que isso apareça corretamente.

Como Stephen diz, isso tornará e2fsck insatisfeito, e removerá as entradas de diretório duplicadas (você não perderá dados, mas deixará um diretório).

(Eu não tentei nada realmente quebrado, loops diretório em particular ...)

    
por 09.09.2016 / 07:37