diff sbin/fjail @ 211:ee9b32ab0e9a

Implement the "-o" option for "datasets" to create var/empty with the default "readonly" setting instead of "readonly=on"
author Franz Glasner <fzglas.hg@dom66.de>
date Sun, 21 Aug 2022 17:12:37 +0200
parents 4d7e00b500a1
children 39b736a91d0d
line wrap: on
line diff
--- a/sbin/fjail	Sun Aug 21 15:55:01 2022 +0200
+++ b/sbin/fjail	Sun Aug 21 17:12:37 2022 +0200
@@ -35,6 +35,7 @@
     PARENT must exist already and CHILD must not exist.
 
     -A        Set "canmount=auto" for datasets
+    -o        Do not create var/empty as read-only dataset but with normal settings
     -s        Also create a dataset for freebsd-update data files
     -t        Create a more tiny set of datasets
     -T        Create only an extra tiny set of datasets
@@ -143,13 +144,14 @@
     # full name of the dataset
     local _ds
     # dynamic ZFS options  -- create cache for freebsd-update  -- use a more tiny layout
-    local _zfsopts _fbsdupdate _tiny _zfsnoauto
+    local _zfsopts _fbsdupdate _tiny _zfsnoauto _varempty_ro
 
     _zfsopts=""
     _fbsdupdate=""
     _tiny="no"
     _zfsnoauto=""
-    while getopts "ustAT" _opt ; do
+    _varempty_ro="-o readonly=on"
+    while getopts "oustAT" _opt ; do
         case ${_opt} in
             A)
                 #
@@ -158,6 +160,10 @@
                 #
                 _zfsnoauto="-o canmount=noauto"
                 ;;
+            o)
+                # Clear out the default setting of creating var/empty as read-only dataset
+                _varempty_ro=""
+                ;;
             t)
                 # use a more tiny layout
                 _tiny="yes"
@@ -255,7 +261,7 @@
         fi
         zfs create ${_zfsopts} ${_zfsnoauto} -o exec=off -o setuid=off -o primarycache=metadata -o compression=off          "${_ds}/var/db/freebsd-update"
     fi
-    zfs create ${_zfsopts} ${_zfsnoauto} -o readonly=on -o exec=off -o setuid=off                                           "${_ds}/var/empty"
+    zfs create ${_zfsopts} ${_zfsnoauto} ${_varempty_ro} -o exec=off -o setuid=off                                          "${_ds}/var/empty"
     zfs create ${_zfsopts} ${_zfsnoauto} -o exec=off -o setuid=off -o primarycache=metadata                                 "${_ds}/var/log"
     zfs create ${_zfsopts} ${_zfsnoauto} -o exec=off -o setuid=off -o atime=on                                              "${_ds}/var/mail"
     zfs create ${_zfsopts} ${_zfsnoauto} -o sync=disabled -o exec=off -o setuid=off -o compression=off -o primarycache=all  "${_ds}/var/run"