3

Я пытаюсь написать скрипт, который проверяет использование памяти для запуска процессов. Для этого ему нужно прочитать файлы /proc /* /smaps.

Процессы, принадлежащие root, имеют права доступа '-r-r-r--', которые должны быть доступны каждому, верно?

Пример вывода команды ls -l [EDIT: теперь с правами доступа к каталогу]

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

попытаться прочитать:

cat /proc/939/smaps
cat: /proc/939/smaps: Permission denied

Есть ли что-то очевидное, что я здесь упускаю?

РЕДАКТИРОВАТЬ 2: При дальнейшем исследовании, другие файлы, такие как /proc //cmdline, доступны для чтения, так что это может быть просто особый случай для файла smaps?

1 ответ1

0

По соображениям безопасности для чтения /proc/PID/smaps требуется возможность CAP_SYS_PTRACE .

Вы можете добавить эту возможность в свое приложение, используя sudo setcap cap_sys_ptrace+ep YOUR_APPLICATION .

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .