Сделать защищенный паролем скрипт bash сопротивляться / отказывать "bash -x", когда пароль задан
Я хочу передать свои длинные сценарии клиенту. Клиент не должен иметь возможность читать сценарии, даже если у него есть пароль. Следующая команда блокирует и разблокирует скрипт, но set +x
просто игнорируется.
Код:
read -p 'Script: ' S &&
C=$S.crypt \
H='eval "$((dd if=$0 bs=1 skip=//|gpg -d) 2>/dev/null)";
exit;' &&
gpg -c<$S | cat >$C <(echo $H | sed s://:$(echo "$H" | wc -c):) - \
<(chmod +x $C)
1 ответ
Учитывая, что это интерпретируемый скрипт, который в какой-то момент должен быть загружен в память и интерпретирован, невозможно полностью избежать того, чтобы кто-либо мог выкинуть содержимое скрипта. Это может быть легко достигнуто, т. Е. С помощью сценария-оболочки вокруг исполняемого файла bash...