温馨提示×

centos readdir怎么关闭

小樊
47
2026-10-09 01:36:00
栏目: 智能运维

在 CentOS(其实是 Linux 内核/managed 文件系统层面)里,readdir 不是可以“直接关闭”的命令或开关,它本质是:

  • glibc 的 readdir() 系统调用封装
  • 用于读取目录内容(ls、find 等底层都用它)

所以“关闭 readdir”一般有以下几种真实含义 + 实现方式:


一、你想「禁止用户读取某个目录内容」

✅ 这是最常见需求

方法 1:修改目录权限(推荐)

chmod 700 /path/dir

或

chmod o-rx /path/dir

这样非 owner 无法 readdir

方法 2:改目录 owner

chown root:root /path/dir

二、你想「禁止 ls / find 读取目录」

本质就是 禁止 readdir 调用

方法:用 SELinux 限制(CentOS 特色)

semanage fcontext -a -t private_dir_t "/path/dir(/.*)?"
restorecon -Rv /path/dir

或直接 audit + deny:

auditctl -w /path/dir -p r -k dir_read

三、你想「禁止某个程序调用 readdir」

使用 seccomp(高级)

// 示例:禁止 readdir 相关 syscall
// getdents / getdents64

或通过:

systemtap

拦截 vfs_readdir


四、你其实是想「关闭 NFS / SMB 的 readdir」

如果是 网络文件系统:

NFS

exportfs -o ro,sync,no_subtree_check /data

Samba

[share]
read only = yes

五、你只是不想让 ls 显示内容

chmod a-r /path/dir

⚠️ 连 root 之外都进不去


总结一句话

CentOS 不能“关闭 readdir 函数”,只能限制谁、在哪、用什么方式调用它

如果你能说清楚:

  • 是 用户?进程?目录?服务?
  • 想防 ls / 扫描 / 遍历?

我可以给你精确命令。

0 踩