Sim, e RHEL7.4 é 3.10.0, então não entendo o comentário sobre 4.7.
hagello 18/02
Certo, alguns kernels antigos não fornecem informações sobre o umask, por exemplo 2.6.18. No entanto, o recurso já existe na 3.10.0. Portanto, você não deve dizer que esta solução não funciona antes do kernel 4.7.
hagello 18/02
Stéphane teve a gentileza de editar minha postagem para vincular ao commit que diz claramente que quando foi adicionada, é muito mais recente que a 3.10. Talvez tenha aparecido muito antes no kernel corrigido do RHEL, mas ainda não no kernel da linha principal, não sei.
egmont 18/02
15
Nota: esta resposta se aplica aos kernels Linux 4.6 e versões anteriores. 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 :
Para que essa resposta também apareça ao pesquisar esses termos, ele também explica como modificar umask do processo em execução (já que obtê-lo requer uma alteração temporária). Inicialmente, eu o ignorei ao pesquisar isso.
Hugues M.
4
No Linux, com systemtap(as root), você poderia fazer
Fazer um cat /proc/4321/statdispararia essa sonda sobre do_task_statonde podemos acessar o fs->umaskcampo do processo correspondente ' task_structno kernel.
Respostas:
A partir do kernel 4.7 do Linux ( confirmação ), o umask está disponível no
/proc/<pid>/status
.fonte
Nota: esta resposta se aplica aos kernels Linux 4.6 e versões anteriores. 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 :Lembre-se de que o gdb interrompe o processo e seus threads; portanto, a alteração temporária do umask é desprezível.
Se isso for bom para o seu caso, você pode usar este oneliner:
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 a partir daí.
fonte
No Linux, com
systemtap
(asroot
), você poderia fazerFazer um
cat /proc/4321/stat
dispararia essa sonda sobredo_task_stat
onde podemos acessar ofs->umask
campo do processo correspondente 'task_struct
no kernel.fonte