Sto cercando di determinare se, in Linux, le variabili di ambiente per un processo sono osservabili da altri utenti (non root).
Il caso d'uso immediato sta mettendo segreti in variabili d'ambiente. Questo è discusso in molti punti del Web come insicuro, ma non sono stato in grado di concentrarmi sull'esatto punto di esposizione in Linux.
Si noti che sto non parlando di mettere in chiaro segreti in file. Si noti inoltre che sto non parlando l'esposizione verso l'account root (visualizzare materiale tentativo di nascondere i segreti da un avversario con la radice di come nonstarter).
Questa domanda sembra rispondere alla mia, con commenti che classificano le variabili d'ambiente come completamente senza sicurezza, o semplicemente semplicemente offuscate, ma come si accede a esse?
Nei miei test un utente senza privilegi non può osservare le variabili di ambiente per un altro utente attraverso la tabella dei processi ('ps auxwwe'). I comandi che impostano le variabili di ambiente (es. Export) sono builtin della shell che non arrivano alla tabella dei processi e per estensione non sono in / proc / $ pid / cmdline. / proc / $ pid / environment è leggibile solo dall'UID del proprietario del processo.
Forse la confusione è tra diversi sistemi operativi o versioni. Varie fonti (recenti) sul web denigrano l'insicurezza delle variabili di ambiente, ma il mio controllo a campione delle diverse versioni di Linux sembra indicare che ciò non è possibile risalire almeno al 2007 (probabilmente oltre ma non ho caselle attive) mano per testare).
In Linux, come può un utente non privilegiato osservare le variabili di ambiente per i processi di un altro?