链接 bash 脚本

链接 bash 脚本

我正在寻找一种链接一些 bash 脚本的方法。有点像您包含 php 的方式。我想让我的 password.sh 请求密码 > 启动实用程序 > 实用程序检查它是否正确 > 如果正确,它将转到下一步 > .. 诸如此类。我想我会使用一个文件来存储我的 msd5 编码密码(我确信我会找到一种方法来锁定它)。

那么这是一项可能的任务吗?如果是的话我应该开始阅读吗?如果现在使用哪种语言来实现该功能会更好。但仍然使用我的 bash 作为后端?

答案1

您可以在 bash 脚本中插入一些 python 脚本来检查密钥环中的密码。

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

答案2

看起来你需要在脚本中保留一些秘密,而这里似乎不是合适的地方。

想想看:脚本需要可供用户读取才能被 bash 解释,如何防止用户复制脚本、从中删除任何检查并执行这个修改后的版本?

您最好使用一些外部实用程序进行密码检查,例如使用 @desgua 建议的 gnome keyring

另外,如果你想让用户输入他们自己的密码,你可以尝试使用 sudo 的技巧,比如说你会这样做测试员用户名:

  1. 将脚本的所有者更改为其他用户(我称之为行政在此示例中):chown admin /path/to/script.sh
  2. 使脚本仅可由该用户访问chmod 700 /path/to/script.sh
  3. 授予应该运行此脚本的用户 sudo 权限来执行此脚本(您可以将他们的 sudo 权限限制为此脚本),为此将如下内容添加到/etc/sudoers文件(使用 visudo 编辑此文件): tester ALL = (admin) /path/to/script.sh

  4. 现在用户测试员可以运行sudo -u admin /path/to/script.sh,并且 sudo 会要求他输入自己的密码。他将无法以行政或读取脚本内容。

相关内容