Set umask to 022 while building disk images

This matches the default umask that would actually be used at runtime.
It ensures only the owner has write permissions to system files and
directories rather than owner and group. The Arti tor implementation
checks that /home is not writable for anyone other than the owner.
This commit is contained in:
bjorn3 2026-10-28 20:52:47 +01:00
parent 40544cdbae
commit 2f62f6d876

View File

@ -13,7 +13,7 @@ else
FILESYSTEM_SIZE=$(shell $(INSTALLER) --filesystem-size -c $(FILESYSTEM_CONFIG)); \ FILESYSTEM_SIZE=$(shell $(INSTALLER) --filesystem-size -c $(FILESYSTEM_CONFIG)); \
fi && \ fi && \
truncate -s "$$FILESYSTEM_SIZE"m $@.partial truncate -s "$$FILESYSTEM_SIZE"m $@.partial
umask 002 && $(INSTALLER) $(INSTALLER_OPTS) -c $(FILESYSTEM_CONFIG) $@.partial umask 022 && $(INSTALLER) $(INSTALLER_OPTS) -c $(FILESYSTEM_CONFIG) $@.partial
mv $@.partial $@ mv $@.partial $@
endif endif
@ -29,7 +29,7 @@ else
FILESYSTEM_SIZE=$(shell $(INSTALLER) --filesystem-size -c $(FILESYSTEM_CONFIG)); \ FILESYSTEM_SIZE=$(shell $(INSTALLER) --filesystem-size -c $(FILESYSTEM_CONFIG)); \
fi && \ fi && \
truncate -s "$$FILESYSTEM_SIZE"m $@.partial truncate -s "$$FILESYSTEM_SIZE"m $@.partial
umask 002 && $(INSTALLER) $(INSTALLER_OPTS) -c $(FILESYSTEM_CONFIG) --write-bootloader="$(BUILD)/bootloader-live.efi" --live $@.partial umask 022 && $(INSTALLER) $(INSTALLER_OPTS) -c $(FILESYSTEM_CONFIG) --write-bootloader="$(BUILD)/bootloader-live.efi" --live $@.partial
mv $@.partial $@ mv $@.partial $@
cp redox.ipxe $(BUILD)/redox.ipxe cp redox.ipxe $(BUILD)/redox.ipxe
endif endif
@ -52,7 +52,7 @@ else
$(REDOXFS) $@.partial $(MOUNT_DIR) $(REDOXFS) $@.partial $(MOUNT_DIR)
sleep 1 sleep 1
pgrep redoxfs pgrep redoxfs
umask 002 && $(INSTALLER) $(INSTALLER_OPTS) -c $(FILESYSTEM_CONFIG) $(MOUNT_DIR) umask 022 && $(INSTALLER) $(INSTALLER_OPTS) -c $(FILESYSTEM_CONFIG) $(MOUNT_DIR)
sync sync
-$(FUMOUNT) $(MOUNT_DIR) || true -$(FUMOUNT) $(MOUNT_DIR) || true
rm -rf $(MOUNT_DIR) rm -rf $(MOUNT_DIR)