]> git.plutz.net Git - blast/blobdiff - modules/live.mk
unified bootloader targets, root key setup, webui mode, modules for live boot (lokfs...
[blast] / modules / live.mk
diff --git a/modules/live.mk b/modules/live.mk
new file mode 100644 (file)
index 0000000..d58a645
--- /dev/null
@@ -0,0 +1,30 @@
+PACKAGES += bilibop-lockfs
+
+.PHONY: _live _live_sudo _live_sudo_users
+
+ifdef users
+  _config: _live_sudo_users
+endif
+
+_umount: _live
+_live: ${CFGROOT} _bootloader
+       grep -x aufs "$${CFGROOT}/etc/initramfs-tools" || printf 'aufs\n' >>"$${CFGROOT}/etc/initramfs-tools/modules"
+       sed -i 's; root=; lockfs=1G root=;' "$${CFGROOT}/boot/bootmenu.cfg" "$${CFGROOT}/boot/grub.cfg"
+
+_config: _live_sudo
+_live_sudo: ${CFGROOT}/etc/sudoers.d/nopassword
+_live_sudo: ${CFGROOT}/var/lib/polkit-1/localauthority/50-local.d/disable-passwords.pkla
+
+${CFGROOT}/etc/sudoers.d/nopassword: ${CFGROOT}
+       printf '%%sudo ALL=NOPASSWD: ALL\n' >"$@"
+       chmod 440 "$@"
+
+${CFGROOT}/var/lib/polkit-1/localauthority/50-local.d/disable-passwords.pkla: ${CFGROOT}
+       mkdir -p -m 700 "$${CFGROOT}/var/lib/polkit-1/"
+       mkdir -p "$(dir $@)"
+       printf '[Nopassword]\nIdentity=unix-group:sudo\nAction=*\nResultActive=yes\n' >"$@"
+
+_live_sudo_users: _users
+       for u in $(subst ${comma_},${space_},${users}); do \
+         chroot "$${CFGROOT}" adduser "$$u" sudo; \
+       done