Как установить разрешения для основного файла по умолчанию

8

Процесс, который я запускаю, иногда генерирует основной файл, и этот файл имеет следующие права доступа:

server:~ # ls -l /mnt/process/core/core_segfault 
-rw------- 1 root root 245760 Dec  2 11:29 /mnt/process/core/core_segfault

Проблема в том, что только rootпользователь может открыть его для расследования, в то время как я хотел бы, чтобы каждый, кто имеет к нему доступ, мог прочитать его, а я не устанавливал разрешения вручную.

Как я могу установить разрешения по умолчанию для чего-то вроде -rw-rw-rw- ?

crollywood
источник

Ответы:

13

Поскольку основные файлы содержат полный макет памяти процесса в момент его сбоя, они могут содержать конфиденциальную информацию. По этой причине основные файлы создаются с владельцем, установленным в uid процесса во время его сбоя, а права доступа довольно ограничены. Там нет настройки, чтобы изменить это легко.

Тем не менее, то , что вы можете сделать , это установить kernel.core_patternпараметр SYSCTL на программу (которая должна начинаться с символом трубы, |). Затем ядро ​​будет вызывать эту программу при создании файла ядра, а не записывать его на диск. Эта программа должна иметь возможность генерировать основной файл с разрешениями, которые вы хотите.

Примеры программ, которые так systemd-coredumpи делают apport.

Воутер Верхелст
источник
Больше о трубах в core_patterns можно найти здесь по ссылке
crollywood