LINUX.ORG.RU

Не дают прочитать /proc/self/io !

 ,


0

1

Потребовалось собрать статистику чтения/записи данных запросами php

Смотрим, что в /proc/self/io есть все необходимое.

патчим php-fpm.

Получаем EPERM при попытке открыть /proc/self/io

Охреневаем, смотрим procfs

cat /proc/26647/status 
Name:	php-fpm
Umask:	0022
State:	S (sleeping)
Tgid:	26647
Ngid:	0
Pid:	26647
PPid:	26644
TracerPid:	0
Uid:	99	99	99	99
Gid:	98	98	98	98

ls -l /proc/26647/{status,io}
-r--------  1 root root 0 янв 11 19:59 /proc/26647/io
-r--r--r--  1 root root 0 янв 11 19:50 /proc/26647/status

ls -l /proc/26647 | grep nobody
dr-xr-xr-x 59 nobody nobody 0 янв 11 20:08 net/
dr-xr-xr-x  3 nobody nobody 0 янв 11 20:06 task/
Что за дерьмо? Процесc форкнулся и безвозвратно сменил uid. Схрена ли владельцем файлов до сих пор root?

Схрена ли io нельзя читать посторонним, а status можно всем?

Как получить эти данные из /proc/self/io?

Или можно открыть этот файл еще до смены gid/uid/euid и потом его перечитывать?

★★★★★

Открытие файла до смены uid решает проблему.

vel ★★★★★ ()
Ограничение на отправку комментариев: только для зарегистрированных пользователей