From b06498c1891963b16141f8ca907390ffe26e68ef Mon Sep 17 00:00:00 2001 From: Wolfgang Woehl Date: Wed, 29 Oct 2025 01:02:07 +0100 Subject: [PATCH 1/2] Add reserved username check in configurator Protects setup from failing down the line when a user provides a special system name as their username (e.g. "root" or "nobody"). See https://github.com/basecamp/omarchy/issues/2942 for an example issue. --- configs/airootfs/root/configurator | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/configs/airootfs/root/configurator b/configs/airootfs/root/configurator index 3a7d042..187fbb5 100644 --- a/configs/airootfs/root/configurator +++ b/configs/airootfs/root/configurator @@ -101,7 +101,11 @@ user_form() { username=$(gum input --placeholder "Alphanumeric without spaces (like dhh)" --prompt.foreground="#845DF9" --prompt "Username> ") || abort if [[ "$username" =~ ^[a-z_][a-z0-9_-]*[$]?$ ]]; then - break + if [[ "$username" =~ ^(root|bin|daemon|mail|ftp|http|nobody|dbus|systemd-coredump|systemd-network|systemd-oom|systemd-journal-remote|systemd-resolve|systemd-timesync|tss|uuidd|alpm|git|avahi|cups|_talkd|polkitd|rtkit|qemu|brltty|gluster|rpc|libvirt-qemu|pcscd|nvidia-persistenced|sddm)$ ]] ; then + notice "Username is reserved for system" 1 + else + break + fi else notice "Username must be alphanumeric with no spaces" 1 fi From 95ed7db5825f23a8de891bb2b4af928577f1b822 Mon Sep 17 00:00:00 2001 From: Wolfgang Woehl Date: Thu, 20 Nov 2025 18:50:48 +0100 Subject: [PATCH 2/2] Add 'lp' to reserved system usernames list --- configs/airootfs/root/configurator | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/configs/airootfs/root/configurator b/configs/airootfs/root/configurator index 187fbb5..51bc6ac 100644 --- a/configs/airootfs/root/configurator +++ b/configs/airootfs/root/configurator @@ -101,7 +101,7 @@ user_form() { username=$(gum input --placeholder "Alphanumeric without spaces (like dhh)" --prompt.foreground="#845DF9" --prompt "Username> ") || abort if [[ "$username" =~ ^[a-z_][a-z0-9_-]*[$]?$ ]]; then - if [[ "$username" =~ ^(root|bin|daemon|mail|ftp|http|nobody|dbus|systemd-coredump|systemd-network|systemd-oom|systemd-journal-remote|systemd-resolve|systemd-timesync|tss|uuidd|alpm|git|avahi|cups|_talkd|polkitd|rtkit|qemu|brltty|gluster|rpc|libvirt-qemu|pcscd|nvidia-persistenced|sddm)$ ]] ; then + if [[ "$username" =~ ^(root|bin|daemon|mail|ftp|http|nobody|dbus|systemd-coredump|systemd-network|systemd-oom|systemd-journal-remote|systemd-resolve|systemd-timesync|tss|uuidd|alpm|git|avahi|cups|lp|_talkd|polkitd|rtkit|qemu|brltty|gluster|rpc|libvirt-qemu|pcscd|nvidia-persistenced|sddm)$ ]] ; then notice "Username is reserved for system" 1 else break