Wie kann ich Ubuntus Dateinamenlimit von 143 Byte für verschlüsselte Verzeichnisse erhöhen?

13

In verschlüsselten Verzeichnissen scheint Ubuntu (mindestens 15.10) ein Dateinamen-Byte-Limit von 143 B zu haben - viel kleiner als das Limit des ext4-Dateisystems von 255 B. Wo ist dieses spezielle Limit festgelegt, warum ist es überhaupt festgelegt? , und gibt es eine Möglichkeit, es zu erhöhen?

Zweibeinerhai
quelle
Ich kann Dateinamen haben, die 145 Bytes sind.
Tim
Hallo! Verwenden Sie die Dateisystemverschlüsselung auf Ihrem System?
Armand Bozsik
Zum Testen des Dateinamenlimits siehe stackoverflow.com/questions/6571435/… - mein Ubuntu ext4 hat erwartungsgemäß ein Limit von 255. Also related: askubuntu.com/questions/166764/how-long-can-file-names-be
Takkat
@ArmandBozsik das scheint die Ursache zu sein. Gibt es eine Möglichkeit, das Dateinamenlimit in einem verschlüsselten Verzeichnis zu erhöhen?
BipedalShark
1
Sie verwenden eCryptfs? EncFS kann eine andere Grenze haben, oder eine feste Größe LUKS Behälter regelmäßig ext verwenden könnte ... Oder nicht Dateinamen - Verschlüsselung kann den Grenzwert
Xen2050

Antworten:

10

Wo ist das Ubuntu-Limit eingestellt,

Es ist ein Dateisystemlimit. Alle "ext" haben ein Limit von 255 Zeichen. Hier ist eine Liste vieler Dateisysteme . ReiserFS zeigt 4032 Bytes an (wegen Linux VFS ist es jedoch auf 255 Zeichen begrenzt ).

Das 144 Zeichen-Limit für verschlüsselte Dateien ist falsch. Es ist 143 ( vom Ersteller der Dienstprogramme ecryptfs ). Die verbleibenden Zeichen werden für die Verschlüsselung benötigt, damit Sie nicht darüber nachdenken können (die Verschlüsselung funktioniert nicht bei Dateien mit mehr als 143 Zeichen).

und gibt es eine Möglichkeit, es zu erhöhen?

Nein


Noch ein paar Infos. Diese zeigen die maximale Größe von Dateien und Verzeichnissen in Zeichen an:

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

Siehe /usr/include/linux/limits.hfür die Deklaration dieser 2 Variablen:

#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

Sie können diesen Wert ändern, müssen jedoch mindestens die Funktion fopen () neu kompilieren, damit sie verwendet werden kann. Und es wird keine Kompatibilität mit anderen Betriebssystemen geben.

Also ändere ich meine Antwort auf: Ja das kannst du aber bitte nicht :)

Rinzwind
quelle