在 Debian(以及一般的 Linux 系统)里,readdir 本身只是读取目录内容的系统调用/库函数,无法直接“加密”。通常所说“readdir 加密”一般指 目录内容对未授权用户不可见 / 不可读,常见做法有下面几种。
适合加密某个用户目录(如 ~/private)
sudo apt install ecryptfs-utils
ecryptfs-setup-private
挂载后:
readdir 只能看到解密后的内容(已挂载时)适合整个分区或磁盘
cryptsetup luksFormat /dev/sdX
cryptsetup open /dev/sdX cryptdir
mkfs.ext4 /dev/mapper/cryptdir
mount /dev/mapper/cryptdir /mnt/secure
未解密时:
readdir 完全看不到内容Debian 11+ 支持较好
sudo apt install fscrypt
fscrypt setup
fscrypt encrypt /path/to/dir
特点:
readdir 看不到真实文件名如果你是自己写 C / C++ 程序:
struct dirent *entry;
DIR *dir = opendir(path);
while ((entry = readdir(dir))) {
if (should_hide(entry->d_name))
continue;
}
⚠️ 这只是逻辑隐藏,不是加密,root 或无权限用户仍可绕过。
readdir 某目录| 需求 | 推荐方案 |
|---|---|
| 用户目录加密 | eCryptfs |
| 整个分区 | LUKS |
| 目录级、现代方案 | fscrypt |
| 程序逻辑隐藏 | 自写 readdir 过滤 |
如果你能说明:
我可以给你更精确的 Debian 配置方案。