Por que você quer fazer isso? MAXSYMLINKS é definido nos cabeçalhos do sistema (por exemplo, /usr/include/x86_64-linux-gnu/sys/param.hno meu sistema) e não se destina a ser modificado pelos usuários.
Ire_and_curses 28/10/12
11
Ter que chamar readlink () mais de 20 vezes para acessar um arquivo real não será bom para o desempenho.
Jordanm #
5
Estou fazendo uma aula de hackers éticos na escola, o que é muito legal. Um dos HACKS é chamado TOCTTOU, onde você quer impactar o desempenho criando um labirinto elaborado de diretório / link simbólico.
grebwerd
Respostas:
16
No Linux (pelo menos 3.5), ele é codificado para 40 (veja follow_link()emfs/namei.c ), e observe que é o número de links seguidos ao resolver todos os componentes de um caminho, você só pode alterá-lo recompilando o kernel.
$ ln -s . 0
$ n=0; repeat 50 ln -s $((n++)) $n
$ ls -LdF 39
39/
$ ls -LdF 40
ls: cannot access 40: Too many levels of symbolic links
$ ls -LdF 20/18 10/10/10/6
10/10/10/6/ 20/18/
$ ls -LdF 20/19 10/10/10/7
ls: cannot access 20/19: Too many levels of symbolic links
ls: cannot access 10/10/10/7: Too many levels of symbolic links
/usr/include/x86_64-linux-gnu/sys/param.h
no meu sistema) e não se destina a ser modificado pelos usuários.Respostas:
No Linux (pelo menos 3.5), ele é codificado para 40 (veja
follow_link()
emfs/namei.c
), e observe que é o número de links seguidos ao resolver todos os componentes de um caminho, você só pode alterá-lo recompilando o kernel.fonte