Estou tentando determinar se, no Linux, variáveis de ambiente de um processo são observáveis por outros usuários (não raiz).
O caso de uso imediato é colocar segredos nas variáveis de ambiente. Isso é discutido em muitos lugares da Web como inseguro, mas não consegui me concentrar no ponto exato de exposição no Linux.
Observe que não estou falando sobre colocar segredos de texto não criptografado em arquivos. Observe também que estou não falar de exposição para a conta root (I Vista tentando esconder segredos de um adversário com raiz como uma impossibilidade).
Essa pergunta parece abordar a minha, com comentários que classificam as variáveis de ambiente como completamente sem segurança ou simplesmente ocultas, mas como alguém as acessa?
Nos meus testes, um usuário não privilegiado não pode observar variáveis de ambiente para outro usuário através da tabela de processos ('ps auxwwe'). Os comandos que configuram variáveis de ambiente (por exemplo, exportação) são shellins internos que não entram na tabela de processos e, por extensão, não estão em / proc / $ pid / cmdline. / proc / $ pid / environ é legível apenas pelo UID do proprietário do processo.
Talvez a confusão esteja entre diferentes sistemas operacionais ou versões. Várias fontes (recentes) na Web criticam a insegurança de variáveis de ambiente, mas minha verificação pontual de diferentes versões do Linux parece indicar que isso não é possível desde pelo menos até 2007 (provavelmente mais, mas não tenho caixas em mão para testar).
No Linux, como um usuário não privilegiado pode observar variáveis de ambiente para os processos de outros?