Як збільшити MAXSYMLINKS


10

У сценарії python я створюю купу символічних посилань, пов'язаних разом.

приклад: link1-> link2-> link3 -> .......-> somefile.txt

Мені було цікаво, як ви можете змінити максимальну кількість символьних посилань на 20?


5
Чому б ти хотів це зробити? MAXSYMLINKS визначений у заголовках системи (наприклад, /usr/include/x86_64-linux-gnu/sys/param.hу моїй системі), і не призначений для модифікації користувачами.
ire_and_curses

1
Потрібно зателефонувати readlink () понад 20 разів, щоб дійти до реального файлу, не буде корисним для продуктивності.
Йорданм

5
Я беру в школу етичний хакерський клас, який досить класно. Один з ХАКСів називається TOCTTOU, де ви хочете вплинути на продуктивність, створивши продуманий каталог / символічний лабіринт посилань.
grebwerd

Відповіді:


16

В Linux (щонайменше 3,5) це жорстко закодовано до 40 (див. follow_link()Вfs/namei.c ), і зауважте, що це кількість посилань, якими керуються при вирішенні всіх компонентів шляху, ви можете змінити його лише перекомпілювавши ядро.

$ 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
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.