diff options
Diffstat (limited to 'ezjail-admin')
| -rwxr-xr-x | ezjail-admin | 46 |
1 files changed, 23 insertions, 23 deletions
diff --git a/ezjail-admin b/ezjail-admin index 702de4c..196fea5 100755 --- a/ezjail-admin +++ b/ezjail-admin | |||
| @@ -12,10 +12,10 @@ ezjail_jailcfgs=${ezjail_etc}/ezjail | |||
| 12 | 12 | ||
| 13 | # set defaults | 13 | # set defaults |
| 14 | ezjail_jaildir=${ezjail_jaildir:-"/usr/jails"} | 14 | ezjail_jaildir=${ezjail_jaildir:-"/usr/jails"} |
| 15 | ezjail_jailtemplate=${ezjail_jailtemplate:-"$ezjail_jaildir/newjail"} | 15 | ezjail_jailtemplate=${ezjail_jailtemplate:-"${ezjail_jaildir}/newjail"} |
| 16 | ezjail_jailbase=${ezjail_jailbase:-"$ezjail_jaildir/basejail"} | 16 | ezjail_jailbase=${ezjail_jailbase:-"${ezjail_jaildir}/basejail"} |
| 17 | ezjail_jailfull=${ezjail_jailfull:-"$ezjail_jaildir/fulljail"} | 17 | ezjail_jailfull=${ezjail_jailfull:-"${ezjail_jaildir}/fulljail"} |
| 18 | ezjail_flavours=${ezjail_flavours:-"$ezjail_jaildir/flavours"} | 18 | ezjail_flavours=${ezjail_flavours:-"${ezjail_jaildir}/flavours"} |
| 19 | ezjail_sourcetree=${ezjail_sourcetree:-"/usr/src"} | 19 | ezjail_sourcetree=${ezjail_sourcetree:-"/usr/src"} |
| 20 | ezjail_portscvsroot=${ezjail_portscvsroot:-":pserver:anoncvs@anoncvs.at.FreeBSD.org:/home/ncvs"} | 20 | ezjail_portscvsroot=${ezjail_portscvsroot:-":pserver:anoncvs@anoncvs.at.FreeBSD.org:/home/ncvs"} |
| 21 | 21 | ||
| @@ -26,17 +26,17 @@ ezjail_procfs_enable=${ezjail_procfs_enable:-"YES"} | |||
| 26 | ezjail_fdescfs_enable=${ezjail_fdescfs_enable:-"YES"} | 26 | ezjail_fdescfs_enable=${ezjail_fdescfs_enable:-"YES"} |
| 27 | 27 | ||
| 28 | # define our bail out shortcut | 28 | # define our bail out shortcut |
| 29 | exerr () { echo $*; exit 1; } | 29 | exerr () { echo "$*"; exit 1; } |
| 30 | 30 | ||
| 31 | # check for command | 31 | # check for command |
| 32 | [ "$1" ] || exerr "Usage: `basename $0` [create|delete|list|update] {params}" | 32 | [ "$1" ] || exerr "Usage: `basename -- $0` [create|delete|list|update] {params}" |
| 33 | 33 | ||
| 34 | case "$1" in | 34 | case "$1" in |
| 35 | ######################## ezjail-admin CREATE ######################## | 35 | ######################## ezjail-admin CREATE ######################## |
| 36 | create) | 36 | create) |
| 37 | shift | 37 | shift |
| 38 | args=`getopt xf:r: $*` | 38 | args=`getopt xf:r: $*` |
| 39 | [ $? = 0 ] || exerr 'Usage: ezjail create [-f flavour] [-r jailroot] [-x] jailname jailip' | 39 | [ $? = 0 ] || exerr "Usage: `basename -- $0` create [-f flavour] [-r jailroot] [-x] jailname jailip" |
| 40 | 40 | ||
| 41 | newjail_root= | 41 | newjail_root= |
| 42 | newjail_flavour= | 42 | newjail_flavour= |
| @@ -51,11 +51,11 @@ create) | |||
| 51 | -f) newjail_flavour="$2"; shift 2;; | 51 | -f) newjail_flavour="$2"; shift 2;; |
| 52 | --) shift; break;; | 52 | --) shift; break;; |
| 53 | esac | 53 | esac |
| 54 | done; | 54 | done |
| 55 | newjail_name=$1; newjail_ip=$2 | 55 | newjail_name=$1; newjail_ip=$2 |
| 56 | 56 | ||
| 57 | # we need at least a name and an ip for new jail | 57 | # we need at least a name and an ip for new jail |
| 58 | [ "${newjail_name}" -a "${newjail_ip}" -a $# = 2 ] || exerr 'Usage: ezjail create [-f flavour] [-r jailroot] [-x] jailname jailip' | 58 | [ "${newjail_name}" -a "${newjail_ip}" -a $# = 2 ] || exerr "Usage: `basename -- $0` create [-f flavour] [-r jailroot] [-x] jailname jailip" |
| 59 | 59 | ||
| 60 | # check, whether ezjail-update has been called. existence of | 60 | # check, whether ezjail-update has been called. existence of |
| 61 | # ezjail_jailbase is our indicator | 61 | # ezjail_jailbase is our indicator |
| @@ -84,8 +84,8 @@ create) | |||
| 84 | # if jail root specified on command line does not lie | 84 | # if jail root specified on command line does not lie |
| 85 | # within our jail directory, we need to create a softlink | 85 | # within our jail directory, we need to create a softlink |
| 86 | if [ "${newjail_root##${ezjail_jaildir}}" = "${newjail_root}" ]; then | 86 | if [ "${newjail_root##${ezjail_jaildir}}" = "${newjail_root}" ]; then |
| 87 | newjail_softlink=${ezjail_jaildir}/`basename ${newjail_root}` | 87 | newjail_softlink=${ezjail_jaildir}/`basename -- ${newjail_root}` |
| 88 | [ -e ${newjail_softlink} -a ${newjail_fill} = "YES" ] && exerr "Error: an ezjail already exists at ${newjail_softlink}." | 88 | [ -e ${newjail_softlink} -a "${newjail_fill}" = "YES" ] && exerr "Error: an ezjail already exists at ${newjail_softlink}." |
| 89 | fi | 89 | fi |
| 90 | 90 | ||
| 91 | # do some sanity checks on the selected flavour (if any) | 91 | # do some sanity checks on the selected flavour (if any) |
| @@ -100,7 +100,7 @@ create) | |||
| 100 | if [ "${newjail_fill}" = "YES" ]; then | 100 | if [ "${newjail_fill}" = "YES" ]; then |
| 101 | mkdir -p ${newjail_root} && cd ${ezjail_jailtemplate} && \ | 101 | mkdir -p ${newjail_root} && cd ${ezjail_jailtemplate} && \ |
| 102 | find * | cpio -p -v ${newjail_root} > /dev/null | 102 | find * | cpio -p -v ${newjail_root} > /dev/null |
| 103 | [ $? = 0 ] || exerr 'Error: Could not copy template jail' | 103 | [ $? = 0 ] || exerr "Error: Could not copy template jail." |
| 104 | fi | 104 | fi |
| 105 | 105 | ||
| 106 | # if a soft link is necessary, create it now | 106 | # if a soft link is necessary, create it now |
| @@ -163,7 +163,7 @@ create) | |||
| 163 | delete) | 163 | delete) |
| 164 | shift | 164 | shift |
| 165 | args=`getopt w $*` | 165 | args=`getopt w $*` |
| 166 | [ $? = 0 ] || exerr 'Usage: ezjail delete [-w] jailname'; | 166 | [ $? = 0 ] || exerr "Usage: `basename -- $0` delete [-w] jailname" |
| 167 | 167 | ||
| 168 | oldjail_wipe= | 168 | oldjail_wipe= |
| 169 | 169 | ||
| @@ -173,11 +173,11 @@ delete) | |||
| 173 | -w) oldjail_wipe="YES"; shift;; | 173 | -w) oldjail_wipe="YES"; shift;; |
| 174 | --) shift; break;; | 174 | --) shift; break;; |
| 175 | esac | 175 | esac |
| 176 | done; | 176 | done |
| 177 | oldjail_name=$1; | 177 | oldjail_name=$1 |
| 178 | 178 | ||
| 179 | # we only need name of jail to vanish | 179 | # we only need name of jail to vanish |
| 180 | [ "${oldjail_name}" -a $# = 1 ] || exerr 'Usage: ezjail delete [-w] jailname' | 180 | [ "${oldjail_name}" -a $# = 1 ] || exerr "Usage: `basename -- $0` delete [-w] jailname" |
| 181 | 181 | ||
| 182 | # tidy up jail name the ezjail way | 182 | # tidy up jail name the ezjail way |
| 183 | oldjail_nname=`echo -n ${oldjail_name} | tr -c [:alnum:] _` | 183 | oldjail_nname=`echo -n ${oldjail_name} | tr -c [:alnum:] _` |
| @@ -194,7 +194,7 @@ delete) | |||
| 194 | if [ -f /var/run/jail_${oldjail_nname}.id ]; then | 194 | if [ -f /var/run/jail_${oldjail_nname}.id ]; then |
| 195 | echo "Error: Jail appears to be still running, stop it first." | 195 | echo "Error: Jail appears to be still running, stop it first." |
| 196 | echo "(/var/run/jail_${oldjail_nname}.id exists)" | 196 | echo "(/var/run/jail_${oldjail_nname}.id exists)" |
| 197 | exit 1; | 197 | exit 1 |
| 198 | fi | 198 | fi |
| 199 | 199 | ||
| 200 | # now we know everything we need to let the jail be gone | 200 | # now we know everything we need to let the jail be gone |
| @@ -228,7 +228,7 @@ delete) | |||
| 228 | setup|update) | 228 | setup|update) |
| 229 | shift | 229 | shift |
| 230 | args=`getopt ipPs: $*` | 230 | args=`getopt ipPs: $*` |
| 231 | [ $? = 0 ] || exerr 'Usage: ezjail update [-s sourcetree] [-i] [-pP]' | 231 | [ $? = 0 ] || exerr "Usage: `basename -- $0` update [-s sourcetree] [-i] [-pP]" |
| 232 | 232 | ||
| 233 | updatejail_installaction="world" | 233 | updatejail_installaction="world" |
| 234 | updatejail_provideports= | 234 | updatejail_provideports= |
| @@ -242,7 +242,7 @@ setup|update) | |||
| 242 | -P) updatejail_provideports="YES"; updatejail_installaction="none"; shift;; | 242 | -P) updatejail_provideports="YES"; updatejail_installaction="none"; shift;; |
| 243 | --) shift; break;; | 243 | --) shift; break;; |
| 244 | esac | 244 | esac |
| 245 | done; | 245 | done |
| 246 | 246 | ||
| 247 | if [ "${updatejail_installaction}" = "none" ]; then | 247 | if [ "${updatejail_installaction}" = "none" ]; then |
| 248 | # check, whether ezjail-update has been called. existence of | 248 | # check, whether ezjail-update has been called. existence of |
| @@ -260,15 +260,15 @@ setup|update) | |||
| 260 | # make our world | 260 | # make our world |
| 261 | cd ${ezjail_sourcetree} | 261 | cd ${ezjail_sourcetree} |
| 262 | make ${updatejail_installaction} DESTDIR=${ezjail_jailfull} | 262 | make ${updatejail_installaction} DESTDIR=${ezjail_jailfull} |
| 263 | [ $? = 0 ] || exerr "make ${updatejail_installaction} failed" | 263 | [ $? = 0 ] || exerr "make ${updatejail_installaction} failed." |
| 264 | 264 | ||
| 265 | # setup world | 265 | # setup world |
| 266 | make distribution DESTDIR=${ezjail_jailfull} | 266 | make distribution DESTDIR=${ezjail_jailfull} |
| 267 | [ $? = 0 ] || exerr "make distribution failed" | 267 | [ $? = 0 ] || exerr "make distribution failed." |
| 268 | 268 | ||
| 269 | # Fill basejail from installed world | 269 | # Fill basejail from installed world |
| 270 | cd ${ezjail_jailfull} | 270 | cd ${ezjail_jailfull} |
| 271 | # This mkdir is important, since install will create intermediate | 271 | # This mkdir is important, since cpio will create intermediate |
| 272 | # directories with permission 0700 which is bad | 272 | # directories with permission 0700 which is bad |
| 273 | mkdir -p ${ezjail_jailbase}/usr | 273 | mkdir -p ${ezjail_jailbase}/usr |
| 274 | for dir in bin lib libexec sbin usr/bin usr/include usr/lib usr/libexec usr/sbin usr/src usr/share; do | 274 | for dir in bin lib libexec sbin usr/bin usr/include usr/lib usr/libexec usr/sbin usr/src usr/share; do |
| @@ -323,6 +323,6 @@ setup|update) | |||
| 323 | 323 | ||
| 324 | ;; | 324 | ;; |
| 325 | *) | 325 | *) |
| 326 | exerr "Usage: `basename $0` [create|delete|list|update] {params}" | 326 | exerr "Usage: `basename -- $0` [create|delete|list|update] {params}" |
| 327 | ;; | 327 | ;; |
| 328 | esac | 328 | esac |
