在 CentOS 上,“readdir 如何加密”通常指两类需求之一,我分开说明,你可以按需选择。
适合:用户目录、特定目录加密
yum install ecryptfs-utils
mkdir /secret
mkdir /secret_plain
mount -t ecryptfs /secret /secret_plain
按提示设置:
挂载后:
/secret_plain # 明文
/secret # 密文(readdir 看到的是乱码)
卸载后:
umount /secret_plain
此时 readdir /secret 只能看到加密数据。
适合:不想动内核、简单使用
yum install encfs
encfs ~/.secret_enc ~/.secret
~/.secret_enc:加密存储~/.secret:明文访问readdir 直接看 ~/.secret_enc 是密文。
适合:服务器、云主机
cryptsetup luksFormat /dev/sdb1
cryptsetup open /dev/sdb1 secret
mkfs.ext4 /dev/mapper/secret
mount /dev/mapper/secret /data
未解密前:
readdir /dev/sdb1 # 无意义数据
如果是 C/C++ 程序:
readdir() 本身不支持加密示例(伪逻辑):
DIR *d = opendir("/secret_plain");
struct dirent *e;
while ((e = readdir(d))) {
// e->d_name 已经是解密后的
}
| 需求 | 推荐方案 |
|---|---|
| 单目录加密 | eCryptfs |
| 用户级简单加密 | EncFS |
| 服务器安全 | LUKS |
| 程序级控制 | 应用层加密 |
如果你能说明:
我可以给你精确到命令级别的方案。