Mengapa Anda ingin melakukan ini? MAXSYMLINKS didefinisikan dalam header sistem (mis. /usr/include/x86_64-linux-gnu/sys/param.hPada sistem saya), dan tidak dimaksudkan untuk dimodifikasi oleh pengguna.
ire_and_curses
1
Harus memanggil readlink () lebih dari 20 kali untuk mendapatkan file nyata tidak akan bagus untuk kinerja.
jordanm
5
Saya mengambil kelas peretasan etika di sekolah, yang cukup keren. Salah satu HACKS disebut TOCTTOU, di mana Anda ingin memengaruhi kinerja dengan membuat direktori rumit / labirin tautan simbolik.
grebwerd
Jawaban:
16
Di Linux (setidaknya 3.5), hardcoded ke 40 (lihat follow_link()difs/namei.c ), dan perhatikan bahwa jumlah tautan diikuti ketika menyelesaikan semua komponen jalan, Anda hanya dapat mengubahnya dengan mengkompilasi ulang 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
Pada sistem saya), dan tidak dimaksudkan untuk dimodifikasi oleh pengguna.Jawaban:
Di Linux (setidaknya 3.5), hardcoded ke 40 (lihat
follow_link()
difs/namei.c
), dan perhatikan bahwa jumlah tautan diikuti ketika menyelesaikan semua komponen jalan, Anda hanya dapat mengubahnya dengan mengkompilasi ulang kernel.sumber