diff options
Diffstat (limited to 'ezjail-admin')
| -rwxr-xr-x | ezjail-admin | 36 |
1 files changed, 28 insertions, 8 deletions
diff --git a/ezjail-admin b/ezjail-admin index c09142e..f1db4dd 100755 --- a/ezjail-admin +++ b/ezjail-admin | |||
| @@ -4,10 +4,6 @@ | |||
| 4 | ezjail_prefix=EZJAIL_PREFIX | 4 | ezjail_prefix=EZJAIL_PREFIX |
| 5 | ezjail_jailcfgs=${ezjail_prefix}/etc/ezjail | 5 | ezjail_jailcfgs=${ezjail_prefix}/etc/ezjail |
| 6 | 6 | ||
| 7 | if [ "0" != "`id -u`" ]; then | ||
| 8 | echo "Retry as root"; exit 1; | ||
| 9 | fi | ||
| 10 | |||
| 11 | if [ -f ${ezjail_prefix}/etc/ezjail.conf ]; then | 7 | if [ -f ${ezjail_prefix}/etc/ezjail.conf ]; then |
| 12 | . ${ezjail_prefix}/etc/ezjail.conf; | 8 | . ${ezjail_prefix}/etc/ezjail.conf; |
| 13 | fi | 9 | fi |
| @@ -71,7 +67,7 @@ create) | |||
| 71 | # name will be foo_com in most scripts | 67 | # name will be foo_com in most scripts |
| 72 | newjail_name=`echo $newjail_name | tr /~ __`; | 68 | newjail_name=`echo $newjail_name | tr /~ __`; |
| 73 | newjail_root=${newjail_root:-"$ezjail_jaildir/$newjail_name"} | 69 | newjail_root=${newjail_root:-"$ezjail_jaildir/$newjail_name"} |
| 74 | newjail_nname=`echo $newjail_name | tr . _`; | 70 | newjail_nname=`echo $newjail_nname | tr . _`; |
| 75 | 71 | ||
| 76 | # if jail root specified on command line is not absolute, | 72 | # if jail root specified on command line is not absolute, |
| 77 | # make it absolute inside our jail directory | 73 | # make it absolute inside our jail directory |
| @@ -142,17 +138,41 @@ delete) | |||
| 142 | echo 'Usage: ezjail delete [-w] jailname'; exit 1; | 138 | echo 'Usage: ezjail delete [-w] jailname'; exit 1; |
| 143 | fi | 139 | fi |
| 144 | 140 | ||
| 141 | # tidy up jail name the ezjail way | ||
| 142 | oldjail_nname=`echo $oldjail_name | tr /~. ___`; | ||
| 143 | |||
| 145 | # check for existence of jail in our records | 144 | # check for existence of jail in our records |
| 146 | if [ ! -f ${ezjail_jailcfgs}/${oldjail_name} ]; then | 145 | if [ ! -f ${ezjail_jailcfgs}/${oldjail_nname} ]; then |
| 147 | echo 'Error: Nothing known about jail $oldjail_name'; exit 1 | 146 | echo 'Error: Nothing known about jail $oldjail_name'; exit 1 |
| 148 | fi | 147 | fi |
| 149 | 148 | ||
| 150 | . ${ezjail_jailcfgs}/${oldjail_name} | 149 | # fetch information about the jail to be gone |
| 151 | eval jail_root=\"\$jail_${jail}_root\" | 150 | # by parsing our records |
| 151 | . ${ezjail_jailcfgs}/${oldjail_nname} | ||
| 152 | eval oldjail_root=\"\$jail_${oldjail_nname}_root\" | ||
| 153 | |||
| 154 | # now we know everything we need to let the jail be gone | ||
| 155 | # remove entry from ezjail resource structure | ||
| 156 | echo rm -f ${ezjail_jailcfgs}/${oldjail_nname} | ||
| 157 | |||
| 158 | # delete fstab.JAILNAME | ||
| 159 | echo rm -f /etc/fstab.$oldjail_nname | ||
| 160 | |||
| 161 | # if there is a soft link pointing to the jail root, remove it | ||
| 162 | oldjail_softlink=$ezjail_jaildir/`basename $oldjail_root` | ||
| 163 | if [ -L $oldjail_softlink ]; then | ||
| 164 | echo rm $oldjail_softlink | ||
| 165 | fi | ||
| 166 | |||
| 167 | # if wiping the jail was requested, remove it | ||
| 168 | if [ $oldjail_wipe = "YES" ]; then | ||
| 169 | echo rm -rf $oldjail_root | ||
| 170 | fi | ||
| 152 | 171 | ||
| 153 | ;; | 172 | ;; |
| 154 | list) | 173 | list) |
| 155 | jail_list=`ls $ezjail_jailcfgs` | 174 | jail_list=`ls $ezjail_jailcfgs` |
| 175 | echo $jail_list | ||
| 156 | for jail in $jail_list; do | 176 | for jail in $jail_list; do |
| 157 | . ${ezjail_jailcfgs}/$jail | 177 | . ${ezjail_jailcfgs}/$jail |
| 158 | eval jail_ip=\"\$jail_${jail}_ip\"; echo -n "$jail_ip " | 178 | eval jail_ip=\"\$jail_${jail}_ip\"; echo -n "$jail_ip " |
