2

Я вижу, что обычный пользовательский процесс получает права на чтение для пользователя:

-r-------- 1 1000 1000 0 Nov 19 13:51 /proc/9083/environ

но, например Демон SCREEN получает права root :

-r-------- 1 root root 0 Nov 19 13:47 /proc/9167/environ

Тем не менее, 9167 также UID пользователя:

# ps axnu|grep 9167
    1000  9167  0.0  0.0  23488  2008 ?   Ss   13:47   0:00 SCREEN

1 ответ1

2

В большинстве систем /usr/bin/screen устанавливается с битом setuid для root, что означает, что он сначала будет начинаться с эффективного UID 0, а только позже удаляет привилегии (возвращаясь к обычному UID).

(Это используется для реализации функции "совместного использования сеанса", так как в противном случае ваш экран не сможет подключиться к сокетам экрана других пользователей.)

Но поскольку привилегированные процессы могут потенциально хранить конфиденциальную информацию в памяти, ядро предоставляет им особую защиту - даже если они отбрасывают все привилегии и переключаются на ваш UID, вы все равно не можете отправлять им сигналы, подключать отладчик или создавать дампы ядра.

Параметр "без дампов ядра", также известный как параметр fs.suid_dumpable , является причиной того, что файлы Screen /proc постоянно принадлежат пользователю root независимо от его эффективного UID.

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