aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rwxr-xr-xroot.sh54
1 files changed, 54 insertions, 0 deletions
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."