Windows отображает свой вывод в гибибайтах (2^30 байты), тогда как дисковая утилита отображает свой вывод в гигабайтах (10^9 байты). Фактическое пространство, о котором сообщают, является тем же, только в различных единицах.
Параметры командной строки могут быть считаны любым через /proc/<pid>/cmdline
. Для процессов, которые сразу выходят, их можно все еще показать кому-то, кто использует a ps
- как программа мониторинга.
Пароли в памяти, с другой стороны, не должны быть проблемой. Память не может, получил доступ без прав суперпользователя, и безопасное программное обеспечение обычно перезаписывает пароли в памяти прежде, чем освободить ее к другим процессам.
Наиболее распространенный способ состоит в том, чтобы использовать полномочия файла. Пароль входит в файл, который может только читать тем, кто бы ни, как предполагается, может к. Таким образом учетные данные как файл (быть этим ключ или пароль) безопасны от общих утечек cmdline.
/proc/<pid>/environ
установлен 400 (только для чтения владельцем). Я сомневаюсь, что существует любое законное средство прямого чтения чужих огибающих переменных, так, чтобы метод был, вероятно, более безопасным, чем помещение его в файле.
– goldilocks
23.08.2013, 22:00
export
редактор, если Вы собираетесь установить подобные вещи от командной строки, не сохраняет постоянное .bash_history
, или иначе Ваш пароль закончится в простом тексте в дисковом файле...
– goldilocks
23.08.2013, 22:41
cmd $VAR
командная строка снова, таким образом, это бесполезно. Это должно было бы поддерживаться рассматриваемым клиентом. Также, по крайней мере, согласно dev.mysql.com/doc/refman/5.0/en/password-security-user.html переменные среды не считают безопасными также.
– frostschutz
23.08.2013, 22:47
Необходимо разделить командную строку, которая открывает клиент DB и passwd представление. Конечно, другой RDBMSs/clients будет работать по-другому. Вот пример для sqlplus
(утилита командной строки ORCL по умолчанию):
sqlplus /nolog<<!!
connect $USER/$PASSWD@$SID;
...
--some SQL
...
!!
если Вы делаете это, ps
не покажет passwd в списке процессов.
Согласно лучшим практикам вы не должны хранить пароли в виде открытого текста на диске или в памяти. Переменные среды также проблематичны. Представьте, что производственная система запускает программу мониторинга, которая периодически выполняет «ps auxwwe» и записывает вывод в файл журнала. Ваши учетные данные sqlplus будут случайно записаны в журналы монитора, которые могут быть доступны для чтения всем. Чаще всего журналы отправляются в Splunk / ElasticSearch / Hadoop / Loggly.
Я написал программу, которая безопасно передает учетные данные через файловые потоки здесь: https://github.com/ryanchapman/safe_sqlplus
После отправки учетных данных в программу sqlplus safe_sqlplus обнуляет часть памяти где они хранились.