Comment puis-je augmenter la limite de nom de fichier d'Ubuntu de 143 octets pour les répertoires chiffrés?


13

Dans les répertoires chiffrés, Ubuntu (au moins 15,10) semble avoir une limite d'octets de nom de fichier de 143 B - beaucoup plus petite que la limite du système de fichiers ext4 de 255 B. Où est cette limite spéciale définie, pourquoi est-elle définie en premier lieu , et existe-t-il un moyen de l'augmenter?


Je peux avoir des noms de fichiers de 145 octets.
Tim

Salut! Utilisez-vous le cryptage du système de fichiers sur votre système?
Armand Bozsik

Pour tester la limite de nom de fichier, voir stackoverflow.com/questions/6571435/… - mon Ubuntu ext4 a une limite de 255 comme prévu. Également lié: askubuntu.com/questions/166764/how-long-can-file-names-be
Takkat

@ArmandBozsik qui semble être la cause. Existe-t-il un moyen d'augmenter la limite de nom de fichier dans un répertoire chiffré?
BipedalShark

1
Vous utilisez eCryptfs? EncFS peut avoir une limite différente, ou un conteneur LUKS de taille fixe peut utiliser une extension régulière ... Ou, ne pas utiliser le chiffrement de nom de fichier peut modifier la limite
Xen2050

Réponses:


10

Où se situe la limite d'Ubuntu,

Il s'agit d'une limite du système de fichiers. Tous les "ext" ont une limite de 255 caractères. Voici une liste de nombreux systèmes de fichiers . ReiserFS affiche 4032 octets (mais il est limité à 255 caractères en raison de Linux VFS ).

La limite de 144 caractères pour le fichier chiffré est incorrecte. Il s'agit du 143 ( du créateur des utilitaires ecryptfs ). Les caractères restants sont nécessaires pour le cryptage afin que vous ne puissiez pas les parcourir (le cryptage ne fonctionne pas sur les fichiers de plus de 143 caractères).

et existe-t-il un moyen de l'augmenter?

Non


Quelques informations supplémentaires. Ceux-ci afficheront la taille limite des fichiers et des répertoires en caractères:

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

Voir /usr/include/linux/limits.hpour la déclaration de ces 2 variables:

#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

Vous pouvez changer cette valeur mais vous devrez recompiler au moins la fonction fopen () pour qu'elle soit utilisable. Et il n'y aura aucune compatibilité avec les autres systèmes d'exploitation.

Je change donc ma réponse en: Oui, vous pouvez, mais ne le faites pas :)

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.