diff --git a/root/etc/s6-overlay/s6-rc.d/init-config-end/dependencies.d/init-crontab-config b/root/etc/s6-overlay/s6-rc.d/init-crontab-config/dependencies.d/init-device-perms similarity index 100% rename from root/etc/s6-overlay/s6-rc.d/init-config-end/dependencies.d/init-crontab-config rename to root/etc/s6-overlay/s6-rc.d/init-crontab-config/dependencies.d/init-device-perms diff --git a/root/etc/s6-overlay/s6-rc.d/init-crontab-config/run b/root/etc/s6-overlay/s6-rc.d/init-crontab-config/run index 45a4e88b..2a71d6a6 100755 --- a/root/etc/s6-overlay/s6-rc.d/init-crontab-config/run +++ b/root/etc/s6-overlay/s6-rc.d/init-crontab-config/run @@ -1,33 +1,25 @@ #!/usr/bin/with-contenv bash # shellcheck shell=bash +# /defaults/crontabs is for user customizable crontabs and they take priority over /etc/crontabs +# /etc/crontabs is for non-user customizable crontabs +# /config/crontabs is only imported if /defaults/crontab is present in image +# in RO environments, no import is done, only /etc/crontabs is active for cron_user in abc root; do - if [[ -z ${LSIO_READ_ONLY_FS} ]] && [[ -z ${LSIO_NON_ROOT_USER} ]]; then - if [[ -f "/etc/crontabs/${cron_user}" ]]; then - lsiown "${cron_user}":"${cron_user}" "/etc/crontabs/${cron_user}" - crontab -u "${cron_user}" "/etc/crontabs/${cron_user}" - fi - fi - - if [[ -f "/defaults/crontabs/${cron_user}" ]]; then + if [[ -f "/defaults/crontabs/${cron_user}" ]] && [[ -z ${LSIO_READ_ONLY_FS} ]] && [[ -z ${LSIO_NON_ROOT_USER} ]]; then # make folders mkdir -p \ /config/crontabs # if crontabs do not exist in config if [[ ! -f "/config/crontabs/${cron_user}" ]]; then - # copy crontab from system - if crontab -l -u "${cron_user}" >/dev/null 2>&1; then - crontab -l -u "${cron_user}" >"/config/crontabs/${cron_user}" - fi - - # if crontabs still do not exist in config (were not copied from system) # copy crontab from image defaults (using -n, do not overwrite an existing file) cp -n "/defaults/crontabs/${cron_user}" /config/crontabs/ fi - # set permissions and import user crontabs - lsiown "${cron_user}":"${cron_user}" "/config/crontabs/${cron_user}" + # import user crontabs crontab -u "${cron_user}" "/config/crontabs/${cron_user}" + + lsiown -R abc:abc /config/crontabs fi done diff --git a/root/etc/s6-overlay/s6-rc.d/init-crontab-config/dependencies.d/init-config b/root/etc/s6-overlay/s6-rc.d/init-os-end/dependencies.d/init-crontab-config similarity index 100% rename from root/etc/s6-overlay/s6-rc.d/init-crontab-config/dependencies.d/init-config rename to root/etc/s6-overlay/s6-rc.d/init-os-end/dependencies.d/init-crontab-config