Add create_chroot_user_custom.sh
هذا الالتزام موجود في:
68
create_chroot_user_custom.sh
Normal file
68
create_chroot_user_custom.sh
Normal file
@@ -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"
|
المرجع في مشكلة جديدة
حظر مستخدم