Yen*_*rst 5 linux permissions file-permissions
我正在尝试编写一个脚本来检查正在运行的进程的内存使用情况。为此,它需要读取 /proc/*/smaps 文件。
root 拥有的进程的权限设置为“-r--r--r--”,每个人都应该可读,对吗?
ls -l 的示例输出 [编辑:现在具有目录权限]
ls -l /proc/939/smaps
-r--r--r-- 1 root root 0 2012-07-11 12:11 /proc/939/smaps
ls -ld /proc/939/smaps
-r--r--r-- 1 root root 0 2012-07-11 12:11 /proc/939/smaps
Run Code Online (Sandbox Code Playgroud)
尝试阅读:
cat /proc/939/smaps
cat: /proc/939/smaps: Permission denied
Run Code Online (Sandbox Code Playgroud)
我在这里缺少什么明显的东西吗?
EDIT2:经过进一步调查,其他文件(例如 /proc//cmdline)是可读的,因此它可能只是 smaps 文件的特殊情况?
出于安全原因,阅读/proc/PID/smaps需要这种CAP_SYS_PTRACE能力。
您可以使用 将此功能添加到您的应用程序中sudo setcap cap_sys_ptrace+ep YOUR_APPLICATION。