add chroot-gen
This commit is contained in:
parent
2e8193c40b
commit
ba5cc94b72
46
.local/bin/chroot-gen
Executable file
46
.local/bin/chroot-gen
Executable file
@ -0,0 +1,46 @@
|
||||
#!/bin/bash
|
||||
# Adapted from LinuxConfig.org
|
||||
# GNU GPL v3.0+
|
||||
CMDS="mkdir touch mv rm ls grep cat vim"
|
||||
|
||||
USER=$1
|
||||
if ! id "$USER" 2&>/dev/null; then
|
||||
echo 'INFO: User not found'
|
||||
echo 'Creating...'
|
||||
useradd -m $USER
|
||||
fi
|
||||
|
||||
CHROOT=$(eval echo ~$USER)
|
||||
CMDS=($CMDS) # convert to array
|
||||
|
||||
# cp in all commands and dependencies
|
||||
for cmd in "${CMDS[@]}"; do
|
||||
for dep in $( ldd $(which $cmd) | grep -v dynamic | cut -d " " -f 3 | sed 's/://' | sort | uniq ); do
|
||||
cp --parents $dep $CHROOT
|
||||
done
|
||||
cp --parents $(which $cmd) $CHROOT
|
||||
done
|
||||
|
||||
# cp user and group into chroot
|
||||
cat /etc/passwd | grep $USER > $CHROOT/etc/passwd
|
||||
cat /etc/group | grep $USER > $CHROOT/etc/group
|
||||
|
||||
SHELL=$(cat /etc/passwd | grep $USER | tr ":" "\n" | tail -n 1)
|
||||
if [ ! -f $CHROOT$SHELL ]; then
|
||||
echo "WARN: You didn't add the shell specified in /etc/passwd for $USER: ($SHELL)"
|
||||
fi
|
||||
|
||||
# ARCH amd64
|
||||
if [ -f /lib64/ld-linux-x86-64.so.2 ]; then
|
||||
cp --parents /lib64/ld-linux-x86-64.so.2 /$CHROOT
|
||||
fi
|
||||
|
||||
# ARCH i386
|
||||
if [ -f /lib/ld-linux.so.2 ]; then
|
||||
cp --parents /lib/ld-linux.so.2 /$CHROOT
|
||||
fi
|
||||
|
||||
echo "NOTE: If you are using a shell that is NOT /bin/bash, you need to tell"
|
||||
echo " chroot that by using: chroot $CHROOT {other shell path}"
|
||||
echo ""
|
||||
echo "Chroot jail is ready. To access it execute: chroot $CHROOT"
|
Loading…
Reference in New Issue
Block a user