Sí, y RHEL7.4 es 3.10.0, por lo que no entiendo el comentario sobre 4.7.
hagello
Correcto, algunos núcleos más antiguos no proporcionan información sobre la umask, por ejemplo 2.6.18. Sin embargo, la característica ya está allí en 3.10.0. Por lo tanto, no debe decir que esta solución no funciona antes del kernel 4.7.
Hagello
Stéphane tuvo la amabilidad de editar mi publicación para vincularla al commit que claramente dice que cuando se agregó, es mucho más reciente que 3.10. Tal vez apareció mucho antes en el kernel parcheado de RHEL, pero aún no en el kernel principal, no lo sé.
egmont
15
Nota: esta respuesta se aplica a los núcleos de Linux 4.6 y anteriores. Vea la respuesta de @ egmont para las versiones más nuevas del núcleo.
El umask no está expuesto en procfs. Hubo un intento de agregarlo sin mucho éxito.
Hay una manera de usar umask gdb, como se explicó anteriormente :
Solo para que esta respuesta también aparezca al buscar en Google esos términos, también explica cómo modificar umask del proceso en ejecución (ya que obtenerlo requiere cambiarlo temporalmente). Inicialmente lo descarté al buscar esto.
Hacer un cat /proc/4321/statactivaría esa sonda sobre do_task_statdónde podemos acceder al fs->umaskcampo del proceso correspondiente ' task_structen el núcleo.
Respuestas:
A partir de Linux kernel 4.7 ( commit ), la umask está disponible en
/proc/<pid>/status
.fuente
Nota: esta respuesta se aplica a los núcleos de Linux 4.6 y anteriores. Vea la respuesta de @ egmont para las versiones más nuevas del núcleo.
El umask no está expuesto en procfs. Hubo un intento de agregarlo sin mucho éxito.
Hay una manera de usar umask
gdb
, como se explicó anteriormente :Tenga en cuenta que gdb detiene el proceso y sus hilos, por lo que el cambio temporal de umask es insignificante.
Si eso es bueno para su caso, puede usar este oneliner:
Otra alternativa es, si puede controlar el proceso en ejecución, escribir la umask en un archivo, una salida o algo similar y obtenerla desde allí.
fuente
En Linux, con
systemtap
(asroot
), podrías hacerHacer un
cat /proc/4321/stat
activaría esa sonda sobredo_task_stat
dónde podemos acceder alfs->umask
campo del proceso correspondiente 'task_struct
en el núcleo.fuente