The following script creates a chroot enviroment at the specified path.
It has been adapted to run on OSX. Use it with:
> ./create_chroot_env_osx /tmp/testdirectory > sudo chroot /tmp/testdirectory
#!/bin/bash # # Usage: ./create_chroot_env_osx destinationPath # # Specify HERE the apps you want into the enviroment # /usr/lib/dyld is mandatory APPS="/usr/lib/dyld /bin/bash /bin/ls /bin/mkdir /bin/mv /bin/pwd /bin/rm" # Sanity check if [ "$1" = "" ] ; then echo " Usage: $0 destinationPath" exit fi # Go to the destination directory if [ ! -d $1 ]; then mkdir $1; fi cd $1 # Create Directories no one will do it for you mkdir etc mkdir bin mkdir usr mkdir usr/bin mkdir usr/lib mkdir usr/lib/system # Add some users to ./etc/paswd grep /etc/passwd -e "^root" > etc/passwd grep /etc/group -e "^root" > etc/group # Copy the apps and the related libs for prog in $APPS; do cp $prog ./$prog # obtain a list of related libraryes ldd $prog > /dev/null if [ "$?" = 0 ] ; then LIBS=`ldd $prog | grep version | awk '{ print $1 }'` for l in $LIBS; do cp $l ./$l # second level of dependent libraryes LLIBS=`ldd $l | grep version | awk '{ print $1 }'` for ll in $LLIBS; do cp $ll ./$ll done done fi done
No comments:
Post a Comment