diff options
Diffstat (limited to 'ezjail-admin')
-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 |