Nota: esta resposta aplica-se aos kernels 4.6 e anteriores do Linux. Veja a @ resposta do egmont para versões mais recentes do kernel.
O umask não é exposto no procfs. Houve uma tentativa de adicioná-lo sem muito sucesso.
Existe uma maneira de obter o umask usando gdb
, como foi explicado aqui antes :
$ gdb --pid=4321
(gdb) call/o umask(0)
$1 = 077
(gdb) call umask($1)
$3 = 0
Lembre-se de que o gdb interrompe o processo e seus threads, portanto, a alteração temporária da umask é insignificante.
Se isso for bom para o seu caso, você pode usar este oneliner:
$ gdb --batch -ex 'call/o umask(0)' -ex 'call umask($1)' --pid=4321 2> /dev/null | awk '$1 == "$1" {print $3}'
077
Outra alternativa é, se você pode controlar o processo em execução, gravar o umask em um arquivo, uma saída ou algo semelhante e obtê-lo de lá.