From 5b843393e668e837cc7cd04020585d31c31be548 Mon Sep 17 00:00:00 2001 From: Christoph Date: Sun, 29 Apr 2018 17:34:59 +0200 Subject: [PATCH] Add (first version of) script 'change_api_key.sh'. --- change_api_key.sh | 79 ++++++++++++++++++++++++++++++++++++ initialise_user_schleuder.sh | 1 + 2 files changed, 80 insertions(+) create mode 100755 change_api_key.sh create mode 120000 initialise_user_schleuder.sh diff --git a/change_api_key.sh b/change_api_key.sh new file mode 100755 index 0000000..78c4839 --- /dev/null +++ b/change_api_key.sh @@ -0,0 +1,79 @@ +#!/usr/bin/env bash + +# --- +# - Change API Key for user schleuder to enable managing lists +# - +# - Note: You can also run this script to initialise user 'schleuder' +# --- + +backup_date="$(date +%Y-%m-%d-%H%M)" +schleuder_config="/etc/schleuder/schleuder.yml" +user_schleuder_config="/var/lib/schleuder/.schleuder-cli/schleuder-cli.yml" + +# - Create API Key for user schleuder +# - +api_key="$(schleuder new_api_key)" + +# - Add the generated API Key to the list of valid api keys at +# - configuration file $schleuder_config +# - +if ! grep -q "$api_key" 2> /dev/null $schleuder_config ; then + perl -i.$backup_date -n -p \ + -e "s/(^(\s*)valid_api_keys:.*)/\1\n\2 - ${api_key}/" \ + $schleuder_config +fi + + +# - Add generated API Key to schleuder's configuration file +# - '${user_schleuder_config}' +# - + +# - If no configuration file present, create a new default one. +# - +have_dot_schleuder_cli_yml=true +if [[ ! -d "~schleuder/.schleuder-cli" ]] ; then + have_dot_schleuder_cli_yml=false +elif [[ ! -f "~schleuder/.schleuder-cli/schleuder-cli.yml" ]] ; then + + # - If the directory is present, no default configuration file (see below) + # - will be written + # - + mv "~schleuder/.schleuder-cli" "~schleuder/.schleuder-cli.${backup_date}" + + have_dot_schleuder_cli_yml=false +fi + +if ! $have_dot_schleuder_cli_yml ; then + + # Creates a default configuration file '${user_schleuder_config}' + # + su - schleuder -s /bin/bash -c "/usr//bin/schleuder-cli lists list > /dev/null 2>&1" + +fi + + +# - Now, add the API Key.. +# - +perl -i.$backup_date -n -p \ + -e "s/^(\s*api_key:).*/\1 ${api_key}/" \ + ${user_schleuder_config} + + +# - Get tls fingerprint of configured certificate +# - +cert_fingerprint="$(schleuder cert fingerprint | awk '{print$4}')" + +# - Add the fingerprint to schleuder users private configuration file +# - +if ! grep -q "$cert_fingerprint" 2> /dev/null ${user_schleuder_config} ; then + perl -i.$backup_date -n -p \ + -e "s/^(\s*tls_fingerprint:).*/\1 ${cert_fingerprint}/" \ + ${user_schleuder_config} +fi + + +# - Restart 'schleuder-api-daemon' +# - +systemctl restart schleuder-api-daemon + +exit 0 diff --git a/initialise_user_schleuder.sh b/initialise_user_schleuder.sh new file mode 120000 index 0000000..4c1f768 --- /dev/null +++ b/initialise_user_schleuder.sh @@ -0,0 +1 @@ +change_api_key.sh \ No newline at end of file