From 96d7a3c44d2c78db616b5c5e97bfdbc8f206e3a4 Mon Sep 17 00:00:00 2001 From: srdusr Date: Thu, 27 Jun 2024 14:58:04 +0200 Subject: Add root.sh --- root.sh | 54 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 54 insertions(+) create mode 100755 root.sh diff --git a/root.sh b/root.sh new file mode 100755 index 0000000..7706bce --- /dev/null +++ b/root.sh @@ -0,0 +1,54 @@ +#!/bin/bash + +# Define the source base directory +BASE_DIR="$HOME/extras" + +# Check if the script is running with superuser privileges +if [ "$EUID" -ne 0 ]; then + echo "Please run as root or with sudo" + exit 1 +fi + +# Function to backup existing files +backup_existing() { + local dest=$1 + if [ -e "$dest" ]; then + echo "Backing up $dest" + mv "$dest" "$dest.bak" + fi +} + +# Function to copy directories, backup, and change permissions +copy_and_set_permissions() { + local src=$1 + local dest=$2 + + if [ -d "$src" ]; then + echo "Processing directory $src" + + for file in "$src"/*; { + dest_file="$dest/$(basename "$file")" + + backup_existing "$dest_file" + + echo "Copying $file to $dest" + cp -rp "$file" "$dest" + + echo "Setting permissions for $dest_file" + chown root:root "$dest_file" + chmod 644 "$dest_file" + } + else + echo "Source directory $src does not exist." + fi +} + +# Iterate over all directories in the extras directory +for dir in "$BASE_DIR"/*; do + if [ -d "$dir" ]; then + dest_dir="/${dir##*/}" + copy_and_set_permissions "$dir" "$dest_dir" + fi +done + +echo "Files copied and permissions set successfully." -- cgit v1.2.3