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!
Ответ на: комментарий от boatman

Потому что это инсталляционный скрипт!
И он не должен зависеть от БД на конкретном хосте, и запускается
он не явно, а через специальный враппер.

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

Зачем так извращаться? Передавать его можно через входной поток...(стандартное средство)

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

а в Перле прочитать как $ARGV[0]

проверка на наличие одного переданного параметра:

if($#ARGV!=0){
   print "Передан не один параметр!\n";
}

нумерация количества переданных параметро начинается с нуля, 
-1 значит ничего не передавали

boatman
()
Ответ на: комментарий от Cosmicman

где-то слышал, что вызываема программа можем сменить отображение своей строчки вызова в дереве процессов...

boatman
()

1) Нельзя так делать, так как
zulu@shaka:~$ cat /proc/`pgrep -U zulu | head -1`/environ
LANGUAGE=ru_UA:en_US:enUSER=zuluHOME=/home/zuluDESKTOP_SESSION=gnomeGDM_XSERVER_ LOCATION=localLOGNAME=zuluUSERNAME=zuluFLASH_GTK_LIBRARY=libgtk-x11-2.0.so.0PATH =/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/gamesDISPLAY=:0LANG=ru_UA.UTF-8X AUTHORITY=/home/zulu/.XauthoritySHELL=/bin/bashGDMSESSION=gnomePWD=/home/zuluSSH _AUTH_SOCK=/tmp/ssh-SYCoOg3533/agent.3533SSH_AGENT_PID=3606

2) В перле можно так:
zulu@chat:~$ grep -n '$0' /opt/galachat/bin/ChatBot
23:$0 = "ChatListenerBot [logging in]";
42:$0 = "ChatListenerBot [working]";

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

> Для своих -- тоже не сахар...

Для своих ты и так знаешь значения переменных окружения.

ivlad ★★★★★
()

А в чем проблема. Принцип:
$ yourprogram|echo
PassWord
$ yourprogram|login-progr
Password accepted...

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