Да, и RHEL7.4 - 3.10.0, поэтому я не понимаю комментарий о 4.7.
Гагелло
Да, некоторые старые ядра не предоставляют информацию о umask, например, 2.6.18. Тем не менее, функция уже есть в 3.10.0. Таким образом, вы не должны говорить, что это решение не работает до ядра 4.7.
Гагелло
Стефан был достаточно любезен, чтобы отредактировать мой пост, чтобы связать его с коммитом, в котором четко сказано, что когда он был добавлен, он намного новее, чем 3.10. Может быть, это появилось намного раньше в исправленном ядре RHEL, но еще не в основном ядре, я не знаю.
egmont
15
Примечание: этот ответ относится к ядрам Linux 4.6 и более ранним версиям. Смотрите ответ @ egmont для более новых версий ядра.
Umask не выставляется в procfs. Была попытка добавить его без особого успеха.
Существует способ получить Umask gdb, как было объяснено здесь ранее :
Точно так же этот ответ также появляется при поиске этих терминов, он также объясняет, как изменить umask запущенного процесса (так как для его получения требуется временное изменение). Я изначально отклонил это при поиске этого.
Выполнение a cat /proc/4321/statвызовет эту проверку того, do_task_statгде мы можем получить доступ к fs->umaskполю соответствующего процесса ' task_structв ядре.
Ответы:
Начиная с ядра Linux 4.7 ( commit ), umask доступен в
/proc/<pid>/status
.источник
Примечание: этот ответ относится к ядрам Linux 4.6 и более ранним версиям. Смотрите ответ @ egmont для более новых версий ядра.
Umask не выставляется в procfs. Была попытка добавить его без особого успеха.
Существует способ получить Umask
gdb
, как было объяснено здесь ранее :Помните, что GDB останавливает процесс и его потоки, поэтому временное изменение umask незначительно.
Если это хорошо для вашего случая, вы можете использовать этот oneliner:
Другой вариант, если вы можете управлять запущенным процессом, записать umask в файл, вывод или что-то подобное и получить его оттуда.
источник
В Linux, с
systemtap
(какroot
), вы можете сделатьВыполнение a
cat /proc/4321/stat
вызовет эту проверку того,do_task_stat
где мы можем получить доступ кfs->umask
полю соответствующего процесса 'task_struct
в ядре.источник