Як я можу збільшити ліміт імен файлів Ubuntu на 143 байти для зашифрованих каталогів?


13

У зашифрованих каталогах Ubuntu (принаймні 15.10), схоже, має обмеження на байт імені файлу 143 B - набагато менше, ніж обмеження файлової системи ext4 у 255 B. Де встановлений цей спеціальний ліміт, чому він встановлюється в першу чергу , а чи є спосіб її збільшити?


Я можу мати імена файлів, що мають 145 байт.
Тім

Привіт! Чи використовується шифрування файлової системи у вашій системі?
Арман Бозік

Щоб перевірити ліміт імен файлів, див. Stackoverflow.com/questions/6571435/… - мій Ubuntu ext4 має обмеження 255, як очікувалося. Також пов’язано: askubuntu.com/questions/166764/how-long-can-file-names-be
Таккат

@ArmandBozsik, що, здається, є причиною. Чи є спосіб збільшити ліміт імен файлів у зашифрованому каталозі?
BipedalShark

1
Ви використовуєте eCryptfs? EncFS може мати інший ліміт, або контейнер LUKS фіксованого розміру може використовувати звичайний ext ... Або, якщо не використовується шифрування файлу, можливо змінити ліміт
Xen2050

Відповіді:


10

Де встановлений ліміт Ubuntu,

Це обмеження файлової системи. Усі "ext" мають обмеження 255 символів. Ось список безлічі файлових систем . ReiserFS показує 4032 байти (але він обмежений 255 символами через Linux VFS ).

Ліміт 144 символів для зашифрованого файлу невірний. Це 143 ( від творця утиліт ecryptfs ). Решта символів потрібні для шифрування, тому ви не можете перейти через це (шифрування не працює у файлах з більш ніж 143 символами).

і чи є спосіб її збільшити?

Ні


Ще трохи інформації. Вони покажуть обмеження розміру файлів і каталогів у таблицях:

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

Дивіться /usr/include/linux/limits.hдекларацію цих двох змінних:

#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

Ви можете змінити це значення, але для його використання вам потрібно буде перекомпілювати принаймні функцію fopen (). І сумісність з будь-якими іншими операційними системами не буде.

Тому я міняю свою відповідь на: Так, ви можете, але будь ласка, не робіть :)

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