LINUX.ORG.RU

Безопасна ли передача пароля в скрипт через переменную окружения


0

0

Есть скрипт, который должен вносить изменения в БД Oracle от 
пользователя БД sys.

Этому скрипту хочется передавать пароль пользователя sys через
переменную окружения.
export SYS_PWD=<pwd>
./script.pl
unset SYS_PWD

Я плохо разбираюсь в безопасности и поэтому хочу узнать - 
есть ли методы (имеется ввиду достаточно простые, а не супер сложные)
выяснить пароль при такой схеме?

Если это небезопасный метод, то как тогда можно реализовать
мою задачу?
Принципиально то, что интерактивный режим НЕ ДОПУСКАЕТСЯ!!!

Передача в качестве параметра тоже не лучший вариант, т.к. 
ps auxw --width 1000 покажет как запускался скирипт и все его
параметры.
Можно конечно и извратиться, заменив пароль на ****** как это
сделано в smb.mount например, но я не знаю пока как сделать 
это на perl'e!

Переменные окружения будут видны в /proc/###/environ, с пермишенами -r--------, то есть, рут их прочитает.

Die-Hard ★★★★★
()

Я бы положил пароль в файл и модифицировал script так, чтобы он читал
пароль из файла (или даже из stdin), типа:

./script.pl < file_with_password

(с чтением из потока на Perl наверное справишься сам ;-)

Тогда у тебя будет отдельно скрипт, отдельно - файл с паролем.

HTH

Onanim
()
Ответ на: комментарий от Die-Hard

>Переменные окружения будут видны в /proc/###/environ, с пермишенами -r--------, то есть, рут их прочитает.

Спасибо, я и не знал про эту фичу :)
А ещё способы есть?

Krivenok_Dmitry
() автор топика
Ответ на: комментарий от Krivenok_Dmitry

ещё прочесть могут все кто может прочитать запускаемый файл :) и все кто сможет чё-нить добавить в него, в перл, окружение, etc etc etc

старые, прочные, активно используемые грабли - хранение и передача пароля в открытом или обратимом виде..в файле,окружении,пакете, прилепленном к стенке - всё равно где.

если уж oracle, то и авторизацию неплохо-бы нормальную и к безопасности/надёжности отнестись по взрослому.

MKuznetsov ★★★★★
()
Ответ на: комментарий от Krivenok_Dmitry

Krivenok_Dmitry:

> А ещё способы есть?

Прямо память читать (тоже рут нужен)...

IMHO:

Если руту можно доверять, то передача пароля через переменную вполне надежна (с точностью до дырок в ядре и дебильности этого самого рута). Если руту доверять нельзя, придется использовать продвинутые заморочки с шифрованием.

Die-Hard ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.