Я использую следующий сценарий для изменения паролей 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)
Вы можете запустить сценарий как Set-GID, а затем получить информацию о пароле из файла, защищенного этой группой. Группа, конечно, должна иметь ограниченный доступ и членство. Это очень простой ответ.
Другая идея - попросить пользователя ввести код расшифровки зашифрованного пароля, содержащегося в сценарии. Таким образом, только авторизованные пользователи (те, у кого есть код дешифрования) могли запускать скрипт.