在 CentOS 7 上从命令行创建“默认密钥环”

在 CentOS 7 上从命令行创建“默认密钥环”

我有一台 CentOS 7.4 机器,需要以信息亭模式启动。该机器上连接着一个触摸屏,启动时,Google Chrome 必须以全屏模式启动并加载某个网页。

到目前为止我所做的如下:

  • 安装了谷歌浏览器 70.x(yum install google-chrome-stable)
  • 创建了一个没有密码的“kiosk”用户
  • 我将信息亭用户设置为自动登录
  • 创建了以下文件:/home/kiosk/.config/autostart/chrome-kiosk.desktop其中包含(在几行中)以下行:

    Exec=/usr/bin/google-chrome-stable --incognito --kiosk --disable-web-security --user-data-dir=/home/kiosk/Documents/kiosk/tmp/ --test-type file:///home/kiosk/Documents/kiosk/offline.html

当计算机启动时,信息亭用户会自动登录,并且 chrome 会全屏启动并加载 offline.html 页面,正如我在上面的配置文件中指定的那样。

到目前为止一切顺利。但问题是,在第一次加载时(将信息亭用户设置为自动登录后),系统告诉我'an application wants to create a new keyring called "Default keyring"'。然后提示用户输入密钥环密码。

我按照这里描述的步骤解决了这个问题:http://ask.xmodulo.com/disable-entering-password-unlock-default-keyring.html。实际上,我指示机器用户执行那里描述的步骤,因为我只能通过 ssh 访问机器,而无法访问图形界面。

但我需要做的是找到一种自动化的方法来摆脱密钥环问题。我找到了很多描述如何解决这个问题的链接,但它们都需要访问图形界面,但正如我所说,我只有 ssh 访问权限。

我有一个 shell 脚本,用于安装 chrome 和其他软件包、创建 kiosk 用户、添加 /home/kiosk/.config/autostart/chrome-kiosk.desktop 配置文件等。我还想通过命令行完全修复密钥环问题。我需要在几台机器上运行该脚本。我不想指导用户执行上面链接中描述的手动步骤,而是通过命令行解决所有问题。

有什么办法吗?安全性不是问题,因为这些机器将是一些本地(离线)机器。

答案1

我通过以下方式做到这一点:

  1. 部署文件以禁用kiosk 用户的.desktopgnome-keyring 服务(因此:gnome-keyring-pkcs11.desktopgnome-keyring-secrets.desktop, ) ,内容如下:gnome-keyring-ssh.desktop~/.config/autostart

    [Desktop Entry] 
    Hidden=true
    
  2. 设置 0700 权限,/usr/bin/gnome-keyring-daemon以便它只能由 root 执行,并且不会在信息亭用户登录时通过 PAM 加载。

我不确定第一步是否完全必要——也许如果服务没有被禁用,当它们尝试连接到密钥环守护进程时,您只会在日志中收到错误;我还没有尝试过。

我使用 Ansible 来部署它,但是 shell 脚本或类似脚本也可以正常工作。

答案2

您可以使用此 bash 脚本创建默认密钥环:

mkdir -p /home/kiosk/.local/share/keyrings/
echo -n "Default_keyring" > /home/kiosk/.local/share/keyrings/default
cat > /home/kiosk/.local/share/keyrings/Default_keyring.keyring << EOF 
[keyring]
display-name=Default keyring
ctime=0
mtime=0
lock-on-idle=false
lock-after=false
EOF
chmod og= /home/kiosk/.local/share/keyrings/
chmod og= /home/kiosk/.local/share/keyrings/Default_keyring.keyring
chown -R kiosk:kiosk /home/kiosk/.local

这将创建密钥环文件和default指向该文件的文件,并正确设置所有者和权限。密钥环的创建没有密码保护。打开 Chromium 时,它不再提示创建密钥环。

相关内容