Jak mogę zwiększyć 143-bajtowy limit nazw plików Ubuntu dla zaszyfrowanych katalogów?

13

W zaszyfrowanych katalogach Ubuntu (co najmniej 15.10) wydaje się mieć limit bajtów nazw plików wynoszący 143 B - znacznie mniejszy niż limit systemu plików ext4 wynoszący 255 B. Gdzie jest ten specjalny zestaw limitów, dlaczego jest ustawiony na pierwszym miejscu i czy istnieje sposób na jego zwiększenie?

BipedalShark
źródło
Mogę mieć nazwy plików o długości 145 bajtów.
Tim
Cześć! Czy używasz szyfrowania systemu plików w swoim systemie?
Armand Bozsik
Aby przetestować limit nazw plików, patrz stackoverflow.com/questions/6571435/… - moje Ubuntu ext4 ma limit 255 zgodnie z oczekiwaniami. Powiązane również: askubuntu.com/questions/166764/how-long-can-file-names-be
Takkat
@ArmandBozsik, który wydaje się być przyczyną. Czy istnieje sposób na zwiększenie limitu nazw plików w zaszyfrowanym katalogu?
BipedalShark
1
Używasz eCryptfs? EncFS może mieć inny limit lub kontener LUKS o stałym rozmiarze może używać zwykłego rozszerzenia ... Lub niestosowanie szyfrowania plików może zmienić limit
Xen2050

Odpowiedzi:

10

Gdzie jest ustawiony limit Ubuntu,

Jest to limit systemu plików. Wszystkie „ext” mają limit 255 znaków. Oto lista wielu systemów plików . ReiserFS pokazuje 4032 bajtów (ale jest ograniczony do 255 znaków z powodu Linux VFS ).

Limit 144 znaków dla zakodowanego pliku jest niepoprawny. Jest 143 ( od twórcy narzędzi ecryptfs ). Pozostałe znaki są potrzebne do szyfrowania, więc nie można go pominąć (szyfrowanie nie działa na plikach zawierających więcej niż 143 znaki).

i czy istnieje sposób, aby to zwiększyć?

Nie


Więcej informacji. Pokażą limit rozmiaru pliku i katalogu w znakach:

 getconf NAME_MAX /dev/sda
 getconf PATH_MAX /dev/sda

Zobacz /usr/include/linux/limits.hdeklarację tych 2 zmiennych:

#ifndef _LINUX_LIMITS_H
#define _LINUX_LIMITS_H

#define NR_OPEN         1024

#define NGROUPS_MAX    65536    /* supplemental group IDs are available */
#define ARG_MAX       131072    /* # bytes of args + environ for exec() */
#define LINK_MAX         127    /* # links a file may have */
#define MAX_CANON        255    /* size of the canonical input queue */
#define MAX_INPUT        255    /* size of the type-ahead buffer */
#define NAME_MAX         255    /* # chars in a file name */
#define PATH_MAX        4096    /* # chars in a path name including nul */
#define PIPE_BUF        4096    /* # bytes in atomic write to a pipe */
#define XATTR_NAME_MAX   255    /* # chars in an extended attribute name */
#define XATTR_SIZE_MAX 65536    /* size of an extended attribute value (64k) */
#define XATTR_LIST_MAX 65536    /* size of extended attribute namelist (64k) */

#define RTSIG_MAX     32

#endif

Możesz zmienić tę wartość, ale będziesz musiał ponownie skompilować przynajmniej funkcję fopen (), aby była użyteczna. I nie będzie kompatybilności z innymi systemami operacyjnymi.

Więc zmieniam odpowiedź na: Tak, ale proszę nie :)

Rinzwind
źródło