Назад | Перейти на главную страницу

Как гарантировать, что пароль, введенный в командной строке, вообще не сохраняется на сервере Linux?

У меня есть PHP-скрипт веб-страницы, который запускает p7zip на сервере:

Это передает введенный пользователем пароль для шифрования их загруженных файлов.

Затем пароль отправляется получателю по электронной почте через PHP.

В каких возможных местах может храниться пароль?

Я сделал grep -r "Passw0rd" / var / log / * ничего не нашел.

В истории bash тоже ничего.

Dist - это opensuse.

Большое спасибо!

Поскольку это передается в командной строке, оно будет эфемерно хранится в /proc/ файловая система. Любой, у кого есть локальная учетная запись, может получить список запущенных процессов и их аргументы командной строки.

 cat /proc/[pid]/cmdline

Что дает вам строку. Пример:

 /usr/bin/Xorg:0-backgroundnone-logverbose7-auth/var/run/gdm/auth-for-gdm-yrx0zQ/database-nolistentcpvt7

Что означает:

 /usr/bin/Xorg:0 -background none -logverbose 7 -auth /var/run/gdm/auth-for-gdm-yrx0zQ/database -nolistentcp vt7

В cmdline псевдофайл доступен для чтения всем, хотя он присутствует только тогда, когда процесс действительно запущен. Они видны в top после нажатия c ключ.

Некоторые программы действительно манипулируют этой строкой, поэтому она не отражает то, что на самом деле выполняется, хотя я не знаю, допускает ли php такие вещи.