#!/bin/sh # SPDX-FileCopyrightText: Daniel Pätzold # SPDX-License-Identifier: AGPL-3.0-or-later # # User logon script for KDE Environement # source $(dirname "$0")/setup_system.inc.sh elog_init "User Logon Script" elog_add "==================" elog_add "" elog_add `date` elog_add "Logging to File ${LOGFILE}" if [ "$EUID" -eq 0 ]; then elog_add "Error: Cannot run this script as root." echo "Press any key to continue" && read -n 1 -s -r && exit 1 fi #TODO C: Check if Desktop is KDE/Plasma and support other Displays # Make kdesu use sudo kwriteconfig5 --file kdesurc --group super-user-command --key super-user-command sudo if [ $? -ne 0 ]; then elog_add "This script should be run in KDE- Desktop. The setup of kwriteconfig5 has failed. Please check, if you are using KDE." echo "Press any key to continue" && read -n 1 -s -r && exit 1 fi #Copy current Version of Autostart-Entry rm -f "${HOME}/.config/autostart/logon_script.sh.desktop" cp "${SCRIPTPATH}/logon_script.sh.desktop" "${HOME}/.config/autostart" if [ $? -ne 0 ]; then elog_add "Failed to setup autostart- entry. Check your installation of these scripts." echo "Press any key to continue" && read -n 1 -s -r && exit 1 fi # Mount the private Directory elog_add_command "${SYSCONFIGPATH}/system_setup/mount_ecrypt_home.sh" if [ $? -ne 0 ]; then elog_add "Some Error when mounting private Directory, cannot continue. Your Data will not be available." elog_add "The script was searched by SYSCONFIGPATH in directory ${SYSCONFIGPATH}, please check if your setup is correct." elog_add "If you want to redo this script here, execute ${SCRIPTPATH}/${SCRIPTNAME}" echo "Press any key to continue" && read -n 1 -s -r && exit 1 fi #Get WEBDAV TOKEN from Nextcloud get_nc_token if [ $? -ne 0 ]; then elog_add "Some Error when mounting private Directory, cannot continue. Your Data will not be available." echo "Press any key to continue" && read -n 1 -s -r && exit 1 fi elog_add "Successfully obtained Token for User ${DAVTOKEN_USER}" #Install Software elog_add "" elog_add "Update and install client software" # First, check the sudo rule elog_add "Check the matching client rule:" #Somewhat strange sudo -l will ask for password instead of just checking if the rule can be found, so it needs -n to be silent # The behaviour will be: # If a matching rule with !authenticate is found, no passwd will be asked and retno is 0 # If there is a rule matching with no !authenticate, then a password would be asked. This is prevented, so there will only be the # error "a password is needed" an retno is 1 # If there is no sudo rule at all, it will only set retno to 1 elog_add_command "/usr/bin/sudo -n -l ${SYSCONFIGPATH}/system_setup/sync_client_software.sh" if [[ $RETNO -ne 0 ]]; then elog_add "Error was no $RETNO" elog_add "No matching IPA rule found for this user, so the user is not allowed to install software, skipping this." elog_add "If you want to change: Please check the sudo rules in ipa and your group membership." elog_add "Hint: the rule must contain the !authenticate and setenv option to work." elog_add "A matching sudo rule could look like this: "'^'${SYSCONFIGPATH////'\/'}'\/system_setup\/sync_client_software\.sh.*$' else elog_add "Matching Sudo rule found." elog_add "" elog_add "Running client software install..." elog_add_command "/usr/bin/sudo -n --preserve-env ${SYSCONFIGPATH}/system_setup/sync_client_software.sh install" #ERRTXT=$( { /usr/bin/sudo -n --preserve-env ${SYSCONFIGPATH}/system_setup/sync_client_software.sh install > >(tee -a ${LOGFILE}); } 2>&1 ) #ERR=$? if [[ $RETNO -ne 0 ]]; then elog_add "Errorcode was $RETNO" elog_add "Error executing software sync and install, please check your output!" echo "Press any key to continue" && read -n 1 -s -r && exit 1 fi fi #SYNC Firefox + Thunderbird Profile ./mozilla_starter.sh firefox sync && ./mozilla_starter.sh thunderbird sync elog_add "Successfully synced Mozilla profiles (log in another file)." elog_add "Sucessfully run logon script (Wait 3 seconds)" sleep 3 #read -n 1 -s -r -p "Press any key to continue" #echo "" exit 0