From 2335bd3439bba04867b91ceae7abd36b5a913129 Mon Sep 17 00:00:00 2001 From: Cassio de Campos Date: Fri, 11 Aug 2017 16:21:26 +0100 Subject: fix to package scripts --- tools/000-boca.conf | 15 ++++++ tools/boca-createjail | 137 ++++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 152 insertions(+) create mode 100644 tools/000-boca.conf create mode 100755 tools/boca-createjail (limited to 'tools') diff --git a/tools/000-boca.conf b/tools/000-boca.conf new file mode 100644 index 0000000..66c62fe --- /dev/null +++ b/tools/000-boca.conf @@ -0,0 +1,15 @@ + + AllowOverride Options AuthConfig Limit + Order Allow,Deny + Allow from all + AddDefaultCharset utf-8 + + + AllowOverride Options AuthConfig Limit + Deny from all + + + AllowOverride Options AuthConfig Limit + Deny from all + +Alias /boca /var/www/boca/src diff --git a/tools/boca-createjail b/tools/boca-createjail new file mode 100755 index 0000000..a74d001 --- /dev/null +++ b/tools/boca-createjail @@ -0,0 +1,137 @@ +#!/bin/bash +homejail=/home/bocajail +[ "$1" != "" ] && homejail=$1 +echo "=================================================================================" +echo "============= CREATING $homejail (this might take some time) ===============" +echo "=================================================================================" +for i in setquota ln id chown chmod dirname useradd mkdir cp rm mv apt-get dpkg uname debootstrap schroot; do + p=`which $i` + if [ -x "$p" ]; then + echo -n "" + else + echo command "$i" not found + exit 1 + fi +done +if [ "`id -u`" != "0" ]; then + echo "Must be run as root" + exit 1 +fi +if [ ! -r /etc/lsb-release ]; then + echo "File /etc/lsb-release not found. Is this a ubuntu or debian-like distro?" + echo "If so, execute the command" + echo "" + echo "DISTRIB_CODENAME=WXYZ > /etc/lsb-release" + echo "" + echo "to save the release name to that file (replace WXYZ with your distro codename)" + exit 1 +fi +. /etc/lsb-release +if [ -d /bocajail/ ]; then + echo "You seem to have already a /bocajail installed" + echo "If you want to reinstall, remove it first (e.g. rm /bocajail) and then run /etc/icpc/createbocajail.sh" + exit 1 +fi + +if [ -f $homejail/proc/cpuinfo ]; then + echo "You seem to have already installed /bocajail and the /bocajail/proc seems to be mounted" + chroot $homejail umount /sys >/dev/nul 2>/dev/null + chroot $homejail umount /proc >/dev/nul 2>/dev/null + echo "Please reboot the system to remove such mounted point" + exit 1 +fi + +id -u bocajail >/dev/null 2>/dev/null +if [ $? != 0 ]; then + useradd -m -s /bin/bash -d $homejail -g users bocajail + cat < /var/lib/AccountsService/users/bocajail +[User] +SystemAccount=true +EOF + sleep 1 +else + echo "user bocajail already exists" + echo "if you want to proceed, first remove it (e.g. userdel bocajail) and then run /etc/icpc/createbocajail.sh" + exit 1 +fi +setquota -u bocajail 0 500000 0 10000 -a + +rm -rf /bocajail +mkdir -p $homejail/tmp +chmod 1777 $homejail/tmp +ln -s $homejail /bocajail +#for i in usr lib var bin sbin etc dev; do +# [ -d $homejail/$i ] && rm -rf $homejail/$i +# cp -ar /$i $homejail +#done +#rm -rf $homejail/var/lib/postgres* +#rm -rf $homejail/var/www/* +#mkdir -p $homejail/proc +#mkdir -p $homejail/sys +uname -m | grep -q 64 +if [ $? == 0 ]; then + archt=amd64 +else + archt=i386 +fi + +cat < /etc/schroot/chroot.d/bocajail.conf +[bocajail] +description=Jail +directory=$homejail +root-users=root +type=directory +users=bocajail,nobody,root +FIM + +#debootstrap --arch $archt $DISTRIB_CODENAME $homejail +debootstrap $DISTRIB_CODENAME $homejail +if [ $? != 0 ]; then + echo "bocajail failed to debootstrap" + exit 1 +else +schroot -l | grep -q bocajail +if [ $? == 0 ]; then + echo "bocajail successfully installed at $homejail" +else + echo "*** some error has caused bocajail not to install properly -- I will try it again with different parameters" + echo "location=$homejail" >> /etc/schroot/chroot.d/bocajail.conf + debootstrap $DISTRIB_CODENAME $homejail + schroot -l | grep -q bocajail + if [ $? == 0 ]; then + echo "*** bocajail successfully installed at $homejail" + else + echo "*** bocajail failed to install" + exit 1 + fi +fi +fi + +echo "*** Populating $homejail" +cat < /home/bocajail/tmp/populate.sh +#!/bin/bash +mount -t proc proc /proc + +echo "LC_ALL=en_US.UTF-8" > /etc/default/locale +echo "en_US.UTF-8 UTF-8" >> /etc/locale.gen +/usr/sbin/locale-gen +/usr/sbin/update-locale +apt-get -y update +apt-get -y install python-software-properties software-properties-common +add-apt-repository -y ppa:brunoribas/ppa-maratona +apt-get -y update +apt-get -y upgrade +apt-get -y install maratona-linguagens --no-install-recommends --allow-unauthenticated +apt-get -y clean + +umount /proc +EOF +mkdir -p /bocajail/usr/bin +[ -x /usr/bin/safeexec ] && cp -a /usr/bin/safeexec /bocajail/usr/bin/ +cp -f /etc/apt/sources.list $homejail/etc/apt/ +chmod 755 /home/bocajail/tmp/populate.sh + +export LC_ALL=en_US.UTF-8 +cd / ; chroot $homejail /tmp/populate.sh + + -- cgit v1.2.3