Как предоставить интерактивный аргумент в сценарий оболочки - PullRequest
0 голосов
/ 09 июля 2019

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

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

#below line will prompt for pwd but i want to sent my variable as response
hashed_pwd=`python -c 'import crypt,getpass; print crypt.crypt(getpass.getpass())'`
echo $hashed_pwd

Я хочу иметь hashed_pwd в качестве значения без запроса ввода пароля.

1 Ответ

0 голосов
/ 09 июля 2019

Где у вас проблемы с вашим подходом?Если вы не знаете, как передавать переменные в python, если это так, вы можете сделать что-то вроде

hashed_pwd=$(python2 -c "import crypt,getpass; print crypt.crypt($YOURPASS)")

Обратите внимание на изменения, которые я сделал: - называется python2, так как ваш код написан на python2чтобы избежать этого, может быть, вместо этого запускается интерпретатор python3 - изменилось «использовать», что позволяет замену переменных - переход с обратных символов на нотацию $() более или менее косметически

Кстати, когда я пытался протестироватьэто, как я заметил, в моей среде, кажется, у меня разные версии пакета crypt. В одном crypt нужны два аргумента (пароль и соль, где соль должна быть строкой), в другом второй аргумент является необязательным.

Если это также относится к вашей системе, вы можете передать его из среды оболочки как:

python2 -c "import crypt,getpass; print crypt.crypt(getpass.getpass(),'$salt')"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...