Nano Hash - криптовалюты, майнинг, программирование

Когда я пытаюсь указать пароль в сценарии оболочки для подключения к DB2, он не работает и показывает ошибку

Когда я пытаюсь указать пароль в сценарии оболочки для подключения к DB2, он не работает и показывает ошибку

Сценарий оболочки -----

#!/bin/bash
getResults()
{
db2 "connect to xyz user sam using P333vLMP$dFa4M0"
echo "Connected"
}
getResults

$ sh connectdb2.sh

. Во время обработки SQL он вернул:

SQL30082N Обработка защиты завершилась неудачно, причина "24" ("НЕВЕРНЫЙ ИМЯ ПОЛЬЗОВАТЕЛЯ И / ИЛИ ПАРОЛЬ"). SQLSTATE = 08001 DB21034E Команда была обработана как оператор SQL, поскольку она не была допустимой командой процессора командной строки.

Но когда я не указываю пароль в сценарии оболочки, он запрашивает пароль и подключается.

Мой вопрос заключается в том, что я не хочу, чтобы пароль запрашивался, а. Может ли кто-нибудь помочь мне подключиться к DB2, неявно жестко закодировав пароль в сценарии оболочки.

Спасибо, Самрат

27.11.2018

  • Вам нужно экранировать $, чтобы оболочка не интерполировала. Пример P333vLMP \ $ dFa4M0 27.11.2018

Ответы:


1

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

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

Для примера с паролем вместо P333vLMP $ dFa4M0 он должен быть P333vLMP \ $ dFa4M0, потому что $ имеет особое значение для оболочки.

27.11.2018

2

Вы можете заключить свой пароль в одинарные кавычки, чтобы избежать возможной неправильной интерпретации специальных символов оболочкой unix. Это может быть полезно, если вы заранее не знаете, содержит ли пароль какой-либо специальный символ.

printf "Password: "; stty -echo; read pwd; stty echo; db2 "connect to xyz user sam using '${pwd}'"
27.11.2018
Новые материалы

Кластеризация: более глубокий взгляд
Кластеризация — это метод обучения без учителя, в котором мы пытаемся найти группы в наборе данных на основе некоторых известных или неизвестных свойств, которые могут существовать. Независимо от..

Как написать эффективное резюме
Предложения по дизайну и макету, чтобы представить себя профессионально Вам не позвонили на собеседование после того, как вы несколько раз подали заявку на работу своей мечты? У вас может..

Частный метод Python: улучшение инкапсуляции и безопасности
Введение Python — универсальный и мощный язык программирования, известный своей простотой и удобством использования. Одной из ключевых особенностей, отличающих Python от других языков, является..

Как я автоматизирую тестирование с помощью Jest
Шутка для победы, когда дело касается автоматизации тестирования Одной очень важной частью разработки программного обеспечения является автоматизация тестирования, поскольку она создает..

Работа с векторными символическими архитектурами, часть 4 (искусственный интеллект)
Hyperseed: неконтролируемое обучение с векторными символическими архитектурами (arXiv) Автор: Евгений Осипов , Сачин Кахавала , Диланта Хапутантри , Тимал Кемпития , Дасвин Де Сильва ,..

Понимание расстояния Вассерштейна: мощная метрика в машинном обучении
В обширной области машинного обучения часто возникает необходимость сравнивать и измерять различия между распределениями вероятностей. Традиционные метрики расстояния, такие как евклидово..

Обеспечение масштабируемости LLM: облачный анализ с помощью AWS Fargate и Copilot
В динамичной области искусственного интеллекта все большее распространение получают модели больших языков (LLM). Они жизненно важны для различных приложений, таких как интеллектуальные..