MAXSYMLINKSを増やす方法

MAXSYMLINKSを増やす方法

Pythonスクリプトでは、互いにリンクされた複数のシンボリックリンクを作成します。

例: リンク1->リンク2->リンク3->.....->somefile.txt

最大シンボリックリンク数を20個より大きく変更する方法を知りたいです。

答え1

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

関連情報