Mercurial > hgrepos > FreeBSD > ports > sysutils > local-bsdtools
comparison sbin/fjail @ 204:ef397b84b047
Implement a "-A" flat for dataset creation: set canmount=noauto
| author | Franz Glasner <fzglas.hg@dom66.de> |
|---|---|
| date | Sun, 21 Aug 2022 13:23:10 +0200 |
| parents | eb95c986cc59 |
| children | fcfa674c8444 |
comparison
equal
deleted
inserted
replaced
| 203:eb95c986cc59 | 204:ef397b84b047 |
|---|---|
| 32 | 32 |
| 33 Create ZFS datasets to be used within a jail | 33 Create ZFS datasets to be used within a jail |
| 34 | 34 |
| 35 PARENT must exist already and CHILD must not exist. | 35 PARENT must exist already and CHILD must not exist. |
| 36 | 36 |
| 37 -A Set "canmount=auto" for datasets | |
| 37 -s Also create a dataset for freebsd-update data files | 38 -s Also create a dataset for freebsd-update data files |
| 38 -t Create a more tiny set of datasets | 39 -t Create a more tiny set of datasets |
| 39 -T Create only an extra tiny set of datasets | 40 -T Create only an extra tiny set of datasets |
| 40 -u Do not automatically mount newly created datasets | 41 -u Do not automatically mount newly created datasets |
| 41 | 42 |
| 137 # and its mount point | 138 # and its mount point |
| 138 local _pmp _get | 139 local _pmp _get |
| 139 # full name of the dataset | 140 # full name of the dataset |
| 140 local _ds | 141 local _ds |
| 141 # dynamic ZFS options -- create cache for freebsd-update -- use a more tiny layout | 142 # dynamic ZFS options -- create cache for freebsd-update -- use a more tiny layout |
| 142 local _zfsopts _fbsdupdate _tiny | 143 local _zfsopts _fbsdupdate _tiny _zfsnoauto |
| 143 | 144 |
| 144 _zfsopts="" | 145 _zfsopts="" |
| 145 _fbsdupdate="" | 146 _fbsdupdate="" |
| 146 _tiny="no" | 147 _tiny="no" |
| 147 while getopts "ustT" _opt ; do | 148 _zfsnoauto="" |
| 149 while getopts "ustAT" _opt ; do | |
| 148 case ${_opt} in | 150 case ${_opt} in |
| 151 A) | |
| 152 # | |
| 153 # set canmount=noauto where otherwise canmount=on would have been set | |
| 154 # or inherited | |
| 155 # | |
| 156 _zfsnoauto="-o canmount=noauto" | |
| 157 ;; | |
| 149 t) | 158 t) |
| 150 # use a more tiny layout | 159 # use a more tiny layout |
| 151 _tiny="yes" | 160 _tiny="yes" |
| 152 ;; | 161 ;; |
| 153 T) # extra tiny layout | 162 T) # extra tiny layout |
| 211 # /var/crash | 220 # /var/crash |
| 212 # /var/log | 221 # /var/log |
| 213 # /var/mail | 222 # /var/mail |
| 214 # /var/tmp | 223 # /var/tmp |
| 215 # | 224 # |
| 216 zfs create ${_zfsopts} -o atime=off "${_ds}" | 225 zfs create ${_zfsopts} ${_zfsnoauto} -o atime=off "${_ds}" |
| 217 zfs create ${_zfsopts} -o sync=disabled -o setuid=off "${_ds}/tmp" | 226 zfs create ${_zfsopts} ${_zfsnoauto} -o sync=disabled -o setuid=off "${_ds}/tmp" |
| 218 if [ "${_tiny}" != "extra" ]; then | 227 if [ "${_tiny}" != "extra" ]; then |
| 219 if [ "${_tiny}" = "yes" ]; then | 228 if [ "${_tiny}" = "yes" ]; then |
| 220 zfs create ${_zfsopts} -o canmount=off "${_ds}/usr" | 229 zfs create ${_zfsopts} -o canmount=off "${_ds}/usr" |
| 221 else | 230 else |
| 222 zfs create ${_zfsopts} "${_ds}/usr" | 231 zfs create ${_zfsopts} ${_zfsnoauto} "${_ds}/usr" |
| 223 fi | 232 fi |
| 224 zfs create ${_zfsopts} -o setuid=off "${_ds}/usr/home" | 233 zfs create ${_zfsopts} ${_zfsnoauto} -o setuid=off "${_ds}/usr/home" |
| 225 zfs create ${_zfsopts} "${_ds}/usr/local" | 234 zfs create ${_zfsopts} ${_zfsnoauto} "${_ds}/usr/local" |
| 226 fi | 235 fi |
| 227 if [ \( "${_tiny}" = "yes" \) -o \( "${_tiny}" = "extra" \) ]; then | 236 if [ \( "${_tiny}" = "yes" \) -o \( "${_tiny}" = "extra" \) ]; then |
| 228 zfs create ${_zfsopts} -o canmount=off "${_ds}/var" | 237 zfs create ${_zfsopts} -o canmount=off "${_ds}/var" |
| 229 else | 238 else |
| 230 zfs create ${_zfsopts} "${_ds}/var" | 239 zfs create ${_zfsopts} ${_zfsnoauto} "${_ds}/var" |
| 231 fi | 240 fi |
| 232 if [ "${_tiny}" != "extra" ]; then | 241 if [ "${_tiny}" != "extra" ]; then |
| 233 zfs create ${_zfsopts} -o exec=off -o setuid=off "${_ds}/var/audit" | 242 zfs create ${_zfsopts} ${_zfsnoauto} -o exec=off -o setuid=off "${_ds}/var/audit" |
| 234 zfs create ${_zfsopts} -o exec=off -o setuid=off "${_ds}/var/cache" | 243 zfs create ${_zfsopts} ${_zfsnoauto} -o exec=off -o setuid=off "${_ds}/var/cache" |
| 235 zfs create ${_zfsopts} -o exec=off -o setuid=off -o primarycache=metadata -o compression=off "${_ds}/var/cache/pkg" | 244 zfs create ${_zfsopts} ${_zfsnoauto} -o exec=off -o setuid=off -o primarycache=metadata -o compression=off "${_ds}/var/cache/pkg" |
| 236 zfs create ${_zfsopts} -o exec=off -o setuid=off -o compression=off "${_ds}/var/crash" | 245 zfs create ${_zfsopts} ${_zfsnoauto} -o exec=off -o setuid=off -o compression=off "${_ds}/var/crash" |
| 237 fi | 246 fi |
| 238 if [ "$_fbsdupdate" = "yes" ]; then | 247 if [ "$_fbsdupdate" = "yes" ]; then |
| 239 if [ \( "${_tiny}" = "yes" \) -o \( "${_tiny}" = "extra" \) ]; then | 248 if [ \( "${_tiny}" = "yes" \) -o \( "${_tiny}" = "extra" \) ]; then |
| 240 zfs create ${_zfsopts} -o canmount=off -o exec=off -o setuid=off "${_ds}/var/db" | 249 zfs create ${_zfsopts} -o canmount=off -o exec=off -o setuid=off "${_ds}/var/db" |
| 241 else | 250 else |
| 242 zfs create ${_zfsopts} -o exec=off -o setuid=off "${_ds}/var/db" | 251 zfs create ${_zfsopts} ${_zfsnoauto} -o exec=off -o setuid=off "${_ds}/var/db" |
| 243 fi | 252 fi |
| 244 zfs create ${_zfsopts} -o exec=off -o setuid=off -o primarycache=metadata -o compression=off "${_ds}/var/db/freebsd-update" | 253 zfs create ${_zfsopts} ${_zfsnoauto} -o exec=off -o setuid=off -o primarycache=metadata -o compression=off "${_ds}/var/db/freebsd-update" |
| 245 fi | 254 fi |
| 246 zfs create ${_zfsopts} -o readonly=on -o exec=off -o setuid=off "${_ds}/var/empty" | 255 zfs create ${_zfsopts} ${_zfsnoauto} -o readonly=on -o exec=off -o setuid=off "${_ds}/var/empty" |
| 247 zfs create ${_zfsopts} -o exec=off -o setuid=off -o primarycache=metadata "${_ds}/var/log" | 256 zfs create ${_zfsopts} ${_zfsnoauto} -o exec=off -o setuid=off -o primarycache=metadata "${_ds}/var/log" |
| 248 zfs create ${_zfsopts} -o exec=off -o setuid=off -o atime=on "${_ds}/var/mail" | 257 zfs create ${_zfsopts} ${_zfsnoauto} -o exec=off -o setuid=off -o atime=on "${_ds}/var/mail" |
| 249 zfs create ${_zfsopts} -o sync=disabled -o exec=off -o setuid=off -o compression=off -o primarycache=all "${_ds}/var/run" | 258 zfs create ${_zfsopts} ${_zfsnoauto} -o sync=disabled -o exec=off -o setuid=off -o compression=off -o primarycache=all "${_ds}/var/run" |
| 250 zfs create ${_zfsopts} -o sync=disabled -o setuid=off "${_ds}/var/tmp" | 259 zfs create ${_zfsopts} ${_zfsnoauto} -o sync=disabled -o setuid=off "${_ds}/var/tmp" |
| 251 } | 260 } |
| 252 | 261 |
| 253 | 262 |
| 254 # | 263 # |
| 255 # "populate" -- populate the datasets with content from a FreeBSD base.txz | 264 # "populate" -- populate the datasets with content from a FreeBSD base.txz |
