Вы можете вставить некоторые скрипты Python в ваш bash-скрипт для проверки паролей в вашем брелоке.
1) Откройте морского конька и скопируйте имя вашего пароля (например, «Ubuntu One»).
2) В вашем скрипте вы можете получить пароль (измените «Ubuntu One» на имя вашего пароля).
#!/bin/bash
password=`
python << END
import gnomekeyring as gk
keyring = gk.get_default_keyring_sync()
keyItems = gk.list_item_ids_sync(keyring)
if not gk.get_info_sync(keyring).get_is_locked():
for i in keyItems:
key = gk.item_get_info_sync(keyring, i)
if key.get_display_name() == 'Ubuntu One':
print key.get_secret()
END`
echo "This is the password in your keyring which name is \"Ubuntu One\": $password "
exit 0
Кажется, вам нужно держать в секрете какую-то тайну, и это, кажется, не самое подходящее место для этого.
Подумайте об этом: сценарий должен быть доступен для чтения пользователем, чтобы интерпретировать его с помощью bash. Как бы вы запретили пользователю копировать сценарий, снимать с него все проверки и выполнять эту модифицированную версию?
Вы ' Для проверки пароля лучше использовать какую-нибудь внешнюю утилиту, например, использовать gnome keyring, как предложено @desgua
Также, если вы хотите, чтобы пользователь ввел ИХ СВОЙ пароль, вы можете попробовать трюк с sudo, скажем, вы сделайте это для tester username:
chmod 700 /path/to/script.sh
дать пользователям, которые должны запускать этот скрипт, права sudo для выполнения этого скрипта (вы можете ограничить их права sudo ТОЛЬКО для этого скрипта ), для этого добавьте что-то подобное в файл /etc/sudoers
(используйте visudo для редактирования этого файла): tester ALL = (admin) /path/to/script.sh
теперь пользователь tester может запустить [ 114] и будет запрошен его собственный пароль sudo. Он не сможет запускать другие команды от имени admin или читать содержимое скрипта.