diff options
| -rwxr-xr-x | ezjail-admin | 40 |
1 files changed, 22 insertions, 18 deletions
diff --git a/ezjail-admin b/ezjail-admin index 177bd42..4c1c82d 100755 --- a/ezjail-admin +++ b/ezjail-admin | |||
| @@ -43,9 +43,9 @@ create) | |||
| 43 | newjail_softlink= | 43 | newjail_softlink= |
| 44 | newjail_fill="YES" | 44 | newjail_fill="YES" |
| 45 | 45 | ||
| 46 | set -- $args | 46 | set -- ${args} |
| 47 | for arg do | 47 | for arg do |
| 48 | case $arg in | 48 | case ${arg} in |
| 49 | -x) newjail_fill="NO"; shift;; | 49 | -x) newjail_fill="NO"; shift;; |
| 50 | -r) newjail_root="$2"; shift 2;; | 50 | -r) newjail_root="$2"; shift 2;; |
| 51 | -f) newjail_flavour="$2"; shift 2;; | 51 | -f) newjail_flavour="$2"; shift 2;; |
| @@ -97,7 +97,7 @@ create) | |||
| 97 | # passed here | 97 | # passed here |
| 98 | 98 | ||
| 99 | # now take a copy of our template jail | 99 | # now take a copy of our template jail |
| 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' |
| @@ -142,7 +142,7 @@ create) | |||
| 142 | [ $? = 0 ] || echo "Warning: IP ${newjail_ip} not configured on a local interface." | 142 | [ $? = 0 ] || echo "Warning: IP ${newjail_ip} not configured on a local interface." |
| 143 | 143 | ||
| 144 | # check, whether some host system services do listen on the Jails IP | 144 | # check, whether some host system services do listen on the Jails IP |
| 145 | TIFS=$IFS; IFS=_ | 145 | TIFS=${IFS}; IFS=_ |
| 146 | newjail_listener=`sockstat -4 -l | grep ${newjail_ip}:[[:digit:]]` | 146 | newjail_listener=`sockstat -4 -l | grep ${newjail_ip}:[[:digit:]]` |
| 147 | if [ $? = 0 ]; then | 147 | if [ $? = 0 ]; then |
| 148 | echo "Warning: Some services already seem to be listening on IP ${newjail_ip}" | 148 | echo "Warning: Some services already seem to be listening on IP ${newjail_ip}" |
| @@ -156,7 +156,7 @@ create) | |||
| 156 | echo " This may cause some confusion, here they are:" | 156 | echo " This may cause some confusion, here they are:" |
| 157 | echo ${newjail_listener} | 157 | echo ${newjail_listener} |
| 158 | fi | 158 | fi |
| 159 | IFS=$TIFS | 159 | IFS=${TIFS} |
| 160 | 160 | ||
| 161 | ;; | 161 | ;; |
| 162 | ######################## ezjail-admin DELETE ######################## | 162 | ######################## ezjail-admin DELETE ######################## |
| @@ -167,9 +167,9 @@ delete) | |||
| 167 | 167 | ||
| 168 | oldjail_wipe= | 168 | oldjail_wipe= |
| 169 | 169 | ||
| 170 | set -- $args | 170 | set -- ${args} |
| 171 | for arg do | 171 | for arg do |
| 172 | case $arg in | 172 | case ${arg} in |
| 173 | -w) oldjail_wipe="YES"; shift;; | 173 | -w) oldjail_wipe="YES"; shift;; |
| 174 | --) shift; break;; | 174 | --) shift; break;; |
| 175 | esac | 175 | esac |
| @@ -233,9 +233,9 @@ setup|update) | |||
| 233 | updatejail_installaction="world" | 233 | updatejail_installaction="world" |
| 234 | updatejail_provideports= | 234 | updatejail_provideports= |
| 235 | 235 | ||
| 236 | set -- $args | 236 | set -- ${args} |
| 237 | for arg do | 237 | for arg do |
| 238 | case $arg in | 238 | case ${arg} in |
| 239 | -i) updatejail_installaction="installworld"; shift;; | 239 | -i) updatejail_installaction="installworld"; shift;; |
| 240 | -s) ezjail_sourcetree="$2"; shift 2;; | 240 | -s) ezjail_sourcetree="$2"; shift 2;; |
| 241 | -p) updatejail_provideports="YES"; shift;; | 241 | -p) updatejail_provideports="YES"; shift;; |
| @@ -266,19 +266,24 @@ setup|update) | |||
| 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 | cd ${ezjail_jailfull} | ||
| 270 | # Fill basejail from installed world | 269 | # Fill basejail from installed world |
| 270 | cd ${ezjail_jailfull} | ||
| 271 | # This mkdir is important, since install will create intermediate | ||
| 272 | # directories with permission 0700 which is bad | ||
| 271 | mkdir -p ${ezjail_jailbase}/usr | 273 | mkdir -p ${ezjail_jailbase}/usr |
| 272 | for a 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 |
| 273 | find ${a} | cpio -d -p -v ${ezjail_jailbase} | 275 | find ${dir} | cpio -d -p -v ${ezjail_jailbase} |
| 274 | [ $? = 0 ] || exerr "Installation of ${a} failed." | 276 | [ $? = 0 ] || exerr "Installation of ${dir} failed." |
| 275 | chflags -R noschg ${a}; rm -r ${a}; ln -s /basejail/${a} ${a} | 277 | chflags -R noschg ${dir}; rm -r ${dir}; ln -s /basejail/${dir} ${dir} |
| 276 | done | 278 | done |
| 277 | mkdir basejail | 279 | mkdir basejail |
| 278 | 280 | ||
| 281 | # Try to remove the old template jail | ||
| 279 | if [ -d ${ezjail_jailtemplate} ]; then | 282 | if [ -d ${ezjail_jailtemplate} ]; then |
| 280 | chflags -R noschg ${ezjail_jailtemplate}_old | 283 | if [ -d ${ezjail_jailtemplate}_old ]; then |
| 281 | rm -rf ${ezjail_jailtemplate}_old | 284 | chflags -R noschg ${ezjail_jailtemplate}_old |
| 285 | rm -rf ${ezjail_jailtemplate}_old | ||
| 286 | fi | ||
| 282 | mv ${ezjail_jailtemplate} ${ezjail_jailtemplate}_old | 287 | mv ${ezjail_jailtemplate} ${ezjail_jailtemplate}_old |
| 283 | fi | 288 | fi |
| 284 | mv ${ezjail_jailfull} ${ezjail_jailtemplate} | 289 | mv ${ezjail_jailfull} ${ezjail_jailtemplate} |
| @@ -289,7 +294,7 @@ setup|update) | |||
| 289 | fi # installaction="none" | 294 | fi # installaction="none" |
| 290 | 295 | ||
| 291 | # The user may want to have a ports tree in basejail | 296 | # The user may want to have a ports tree in basejail |
| 292 | if [ "$updatejail_provideports" ]; then | 297 | if [ "${updatejail_provideports}" = "YES" ]; then |
| 293 | # if /usr/ports/CVS exists, assume cvs up is safe | 298 | # if /usr/ports/CVS exists, assume cvs up is safe |
| 294 | if [ -f ${ezjail_jailbase}/usr/ports/CVS/Root ]; then | 299 | if [ -f ${ezjail_jailbase}/usr/ports/CVS/Root ]; then |
| 295 | echo -n "Updating ports from "; cat ${ezjail_jailbase}/usr/ports/CVS/Root | 300 | echo -n "Updating ports from "; cat ${ezjail_jailbase}/usr/ports/CVS/Root |
| @@ -301,7 +306,6 @@ setup|update) | |||
| 301 | cd ${ezjail_jailbase}/usr/; cvs -d ${ezjail_portscvsroot} co ports | 306 | cd ${ezjail_jailbase}/usr/; cvs -d ${ezjail_portscvsroot} co ports |
| 302 | fi | 307 | fi |
| 303 | [ $? = 0 ] || exerr "Updating ports failed." | 308 | [ $? = 0 ] || exerr "Updating ports failed." |
| 304 | |||
| 305 | fi | 309 | fi |
| 306 | 310 | ||
| 307 | # A ports collection inside jails is hardly useful w/o an appropriate /etc/make.conf | 311 | # A ports collection inside jails is hardly useful w/o an appropriate /etc/make.conf |
