commit 5bf838b17a3047e0ebe7150b7ccdd2578a478fc7
Author: ghaymah_dev
Date: Thu Sep 4 14:23:43 2025 +0000
Add create_chroot_user_custom.sh
diff --git a/create_chroot_user_custom.sh b/create_chroot_user_custom.sh
new file mode 100644
index 0000000..b7c9f63
--- /dev/null
+++ b/create_chroot_user_custom.sh
@@ -0,0 +1,68 @@
+#!/bin/bash
+
+# Check if running as root
+if [ "$EUID" -ne 0 ]; then
+ echo "Please run as root or use sudo."
+ exit 1
+fi
+
+# Configuration
+USERNAME="tecmint1" # Replace with your username
+PASSWORD="secure123" # Replace with your password
+JAIL_PATH="/var/lib/" # Replace with your desired jail path
+
+# Step 1: Create SSH Chroot Jail at your specified path
+mkdir -p $JAIL_PATH
+cd $JAIL_PATH
+
+# Create dev directory and required device files
+mkdir -p dev
+cd dev
+mknod -m 666 null c 1 3
+mknod -m 666 tty c 5 0
+mknod -m 666 zero c 1 5
+mknod -m 666 random c 1 8
+cd ..
+
+# Set ownership and permissions for the jail
+chown root:root $JAIL_PATH
+chmod 0755 $JAIL_PATH
+
+# Step 2: Setup Interactive Shell
+mkdir -p bin
+cp -v /bin/bash bin/
+
+# Copy required shared libraries
+mkdir -p lib64
+cp -v /lib64/{libtinfo.so.5,libdl.so.2,libc.so.6,ld-linux-x86-64.so.2} lib64/
+
+# Step 3: Create and Configure SSH User
+useradd $USERNAME
+echo "$USERNAME:$PASSWORD" | chpasswd
+
+# Create etc directory and copy passwd and group files
+mkdir -p etc
+cp -vf /etc/{passwd,group} etc/
+
+# Modify the user's home directory in the chrooted passwd file
+sed -i "s|^$USERNAME:.*|$USERNAME:x:$(id -u $USERNAME):$(id -g $USERNAME)::/:/bin/bash|" $JAIL_PATH/etc/passwd
+
+# Step 4: Configure SSH to Use Chroot Jail
+echo "
+Match User $USERNAME
+ChrootDirectory $JAIL_PATH
+ForceCommand internal-sftp" >> /etc/ssh/sshd_config
+
+# Restart SSH service
+systemctl restart sshd
+
+# Step 5: Set the desired directory as the working directory (no home directory needed)
+# The user will be placed directly in /var/k3s/storage/mypvc when they connect
+
+# Step 6: Add Basic Commands (Optional - for debugging)
+cp -v /bin/{ls,date,mkdir} $JAIL_PATH/bin/
+# Copy required libraries for these commands
+cp -v /lib64/{libselinux.so.1,libcap.so.2,libacl.so.1,libc.so.6,libpcre.so.1,libdl.so.2,ld-linux-x86-64.so.2,libattr.so.1,libpthread.so.0} $JAIL_PATH/lib64/
+
+echo "Chroot jail setup completed for user $USERNAME at $JAIL_PATH"
+echo "User will be placed directly in $JAIL_PATH when connecting via SFTP"
\ No newline at end of file