Назад | Перейти на главную страницу

Как скрыть / замаскировать пароль в скрипте

Я использую следующий сценарий для изменения паролей Open Directory (Apple LDAP).

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

#!/bin/bash
PATH=/bin:/usr/bin:/sbin:/usr/sbin export PATH
echo
echo Enter username you\'d like to change password for:
read USERNAME 
echo
echo Enter New Password for "$USERNAME"
read PASSWORD
dscl -u diradmin -P 'secretpasswordhere' /LDAPv3/127.0.0.1 passwd /Users/$USERNAME $PASSWORD
echo Password successfully changed for $USERNAME to $PASSWORD

посмотри на shc

http://www.thegeekstuff.com/2012/05/encrypt-bash-shell-script/

 The whole logic behind the shc is to convert the random.sh 
   shell script to random.sh.x.c C program (and of course compile that
   to generate the random.sh.x executable)
  • random.sh - это исходный незашифрованный сценарий оболочки
  • random.sh.x - это зашифрованный сценарий оболочки в двоичном формате
  • random.sh.x.c - это исходный код C файла random.sh. Этот исходный код на C скомпилирован для создания указанного выше зашифрованного файла random.sh.x.

Вы можете запустить сценарий как Set-GID, а затем получить информацию о пароле из файла, защищенного этой группой. Группа, конечно, должна иметь ограниченный доступ и членство. Это очень простой ответ.

Другая идея - попросить пользователя ввести код расшифровки зашифрованного пароля, содержащегося в сценарии. Таким образом, только авторизованные пользователи (те, у кого есть код дешифрования) могли запускать скрипт.