Действительно ли переменные среды видимы непривилегированным пользователям на Linux?

Можно хотеть смешать с noatime атрибут в Вашей файловой системе монтируется.

Я полагаю, что существует теперь очень мало причин сохранить файловую систему, обновляющую atime (могут быть некоторые оставленные, например, старые почтовые программы раньше использовали их, чтобы знать, были ли некоторые файлы считаны с прошлого раза человек получил доступ к почтовой программе... Но это должно быть действительно старым поведением теперь). Однако это все еще - значение по умолчанию во многих файловых системах и системах unix/linux. Я приветствовал бы информацию о том, почему она все еще необходима в наше время...

Больше информации там: http://tldp.org/LDP/solrhe/Securing-Optimizing-Linux-RH-Edition-v1.3/chap6sec73.html

(Я взял первую ссылку, когда я искал "noatime" в своей поисковой системе... Должно быть достаточно хорошим, но можно, вероятно, найти больше информации в другом месте),

12
23.05.2017, 15:40
2 ответа

Как объяснил Жиль в очень исчерпывающем ответе на аналогичный вопрос на security.stackexchange.com, среды процессов доступны только пользователю, который владеет процессом (и root конечно).

7
27.01.2020, 19:56

Переменные среды достаточно безопасны. Вопрос, на который вы ссылаетесь, заключается в том, что если система скомпрометирована, единственным преимуществом безопасности от использования переменных среды над файлом конфигурации является неясность. Это означает, что если кто-то получил root-доступ, он может получить и то, и другое.
Также остается спорным вопрос о том, считается ли использование переменных среды для секретных данных «непонятным». Это очень распространенная практика, и поэтому я бы так не считал.

Вы можете получить доступ к данным, хранящимся в переменной среды, только в 2 местах:

1. Рабочая среда процесса

Когда процесс запущен, переменные среды этого процесса могут быть доступны через / proc / $ PID / Environment . Однако только пользователь, владеющий процессом или root, может получить доступ к этому файлу.

2. Источник переменных среды

Если вы используете сценарий инициализации, и переменные хранятся в этом сценарии инициализации, переменные, конечно, можно получить, прочитав этот сценарий.

Или, если переменные среды берутся откуда-то еще, то где бы то ни было.

3. 'ps' output

Да, я знаю, что сказал 2, и в любой приличной системе это будет 2. Однако, если администратор не знает, что он делает, можно открыть 3-й путь.

Если процесс запускается через что-то вроде sh -c 'cd / foo / bar; POP = tart / my / executable ', тогда этот процесс sh будет виден в 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
6
27.01.2020, 19:56

Теги

Похожие вопросы