# HG changeset patch # User Franz Glasner # Date 1661094757 -7200 # Node ID ee9b32ab0e9a8095467dab7c52b6194b292fee80 # Parent 4d7e00b500a1270e1c2d0f1189695cc2ff456f4b Implement the "-o" option for "datasets" to create var/empty with the default "readonly" setting instead of "readonly=on" diff -r 4d7e00b500a1 -r ee9b32ab0e9a sbin/fjail --- 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"