Jak Gilles vysvětlil ve velmi obsáhlé odpovědi na podobnou otázku na security.stackexchange.com, prostředí procesů jsou přístupná pouze uživateli, který proces vlastní (a samozřejmě root).
Proměnné prostředí jsou dostatečně bezpečné. Otázka, na kterou jste odkazovali, říká, že pokud je systém kompromitován, jedinou bezpečnostní výhodou používání proměnných prostředí v konfiguračním souboru je nejasnost. To znamená, že pokud někdo získal root přístup, může se dostat k oběma.
Je také diskutabilní, zda je použití proměnných prostředí pro tajná data považováno za „obskurní“. Jedná se o velmi běžnou praxi, a proto bych ji za takovou nepovažoval.
K datům uloženým v proměnné prostředí máte přístup pouze na 2 místech:
1. Běžící prostředí procesu
Když je proces spuštěn, lze k proměnným prostředí tohoto procesu přistupovat prostřednictvím /proc/$PID/environ
. K tomuto souboru však má přístup pouze uživatel, který proces vlastní, neboli root.
2. Zdroj proměnných prostředí
Pokud používáte init skript a proměnné jsou uloženy v tomto init skriptu, proměnné lze samozřejmě získat přečtením tohoto skriptu.
Nebo pokud proměnné prostředí přicházejí odjinud, pak kdekoli.
3. výstup 'ps'
Jo, vím, že jsem řekl 2, a v každém slušném systému to bude 2. Pokud však admin neví, co dělá, je možné otevřít třetí cestu.
Pokud je proces spuštěn pomocí něčeho jako sh -c 'cd /foo/bar; POP=tart /my/executable'
, pak sh
proces bude viditelný v ps
:
$ sh -c 'cd /; POP=tart sleep 10' &
[1] 3085
$ ps ax | grep POP
phemmer 3085 14 5 0.0 0.0 SN 00:00 sh -c cd /; POP=tart sleep 10