在加密目录中,Ubuntu(至少 15.10)似乎具有 143 B 的文件名字节限制 - 比 ext4 文件系统的 255 B 的限制小得多。这个特殊限制是在哪里设置的,为什么首先设置它,有没有办法增加它?
答案1
Ubuntu 限制在哪里设置?
这是文件系统限制。所有“ext”都有 255 个字符的限制。下面列出了许多文件系统。ReiserFS 显示 4032 字节(但由于Linux虚拟文件系统)。
加密文件的 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() 函数才能使用。并且不会与任何其他操作系统兼容。
所以我把我的答案改成:是的,你可以,但请不要:)