From 44c99dacdf69adca1690162962da1fcb75fb511b Mon Sep 17 00:00:00 2001 From: billz Date: Tue, 24 Dec 2024 22:45:18 -0800 Subject: [PATCH] Initial commit --- installers/plugin_helper.sh | 70 +++++++++++++++++++++++++++++++++++++ 1 file changed, 70 insertions(+) create mode 100755 installers/plugin_helper.sh diff --git a/installers/plugin_helper.sh b/installers/plugin_helper.sh new file mode 100755 index 00000000..1a99d20c --- /dev/null +++ b/installers/plugin_helper.sh @@ -0,0 +1,70 @@ +#!/bin/bash +# +# PluginInstaller helper for RaspAP +# # @author billz +# license: GNU General Public License v3.0 + +# Exit on error +set -o errexit + +[ $# -lt 1 ] && { echo "Usage: $0 [parameters...]"; exit 1; } + +action="$1" # action to perform +shift 1 + +case "$action" in + + "sudoers") + [ $# -ne 1 ] && { echo "Usage: $0 sudoers "; exit 1; } + file="$1" + plugin_name=$(basename "$file") + dest="/etc/sudoers.d/${plugin_name}" + + mv "$file" "$dest" || { echo "Error: Failed to move $file to $dest."; exit 1; } + + chown root:root "$dest" || { echo "Error: Failed to set ownership for $dest."; exit 1; } + chmod 0440 "$dest" || { echo "Error: Failed to set permissions for $dest."; exit 1; } + + echo "OK" + ;; + + "packages") + [ $# -lt 1 ] && { echo "Usage: $0 packages "; exit 1; } + + echo "Installing APT packages..." + for package in "$@"; do + echo "Installing package: $package" + apt-get install -y "$package" || { echo "Error: Failed to install $package."; exit 1; } + done + echo "OK" + ;; + + "user") + [ $# -lt 2 ] && { echo "Usage: $0 user ."; exit 1; } + + username=$1 + password=$2 + + if id "$username" &>/dev/null; then # user already exists + echo "OK" + exit 0 + fi + # create the user without shell access + useradd -r -s /bin/false "$username" + + # set password non-interactively + echo "$username:$password" | chpasswd + + echo "OK" + ;; + + *) + echo "Invalid action: $action" + echo "Usage: $0 [parameters...]" + echo "Actions:" + echo " sudoers Install a sudoers file" + echo " packages Install APT package(s)" + echo " user Add user non-interactively" + exit 1 + ;; +esac