У нас есть много старых сценариев csh, которые подключаются к нашей базе данных db2 с помощью команды «db2 connect to‹ table> ». Они НЕ используют явно "db2 connect to‹ table> user ‹user> using‹ password> ", поэтому соединение по умолчанию установлено для пользователя запуск скрипта.
Мы хотим изменить соединение db2 с учетной записи пользователя, запускающей сценарий csh, на выделенную учетную запись db2 (называемую «dblegacy»).
Я попытался написать исполняемый файл оболочки, который будет загружаться / запускаться от имени пользователя root, а затем изменить учетную запись на «dblegacy» перед выполнением сценариев csh. Единственная проблема заключается в том, что Linux (ld.so) удаляет переменную среды LD_LIBRARY_PATH из всех скриптов / файлов, загружаемых после изменения учетной записи setuid () на «dblegacy». И, конечно же, для скриптов csh требуются разделяемые библиотеки.
Итак, мне нужен способ использования "db2 connect to table" или использования по умолчанию для этой учетной записи "dblegacy".
LD_LIBRARY_PATH
приведет к сбою вашихcsh(1)
скриптов - если вашемуcsh(1)
интерпретатору требуются библиотеки, которых нет в/etc/ld.so.conf
или/etc/ld.so.conf.d/*
списке каталогов, этот каталог, вероятно, должен быть в списке. - person sarnold   schedule 08.12.2011