Stop manually calculating uids when setting up service accounts
User & Group Management
Stop manually calculating uids when setting up service accounts
🧩 The Challenge
Setting up a new system user for a specific service always ends up being a game of guessing which UIDs are already taken. I have definitely broken things before by picking a number that conflicted with a hidden daemon or a service I forgot existed.
💡 The Fix
Use useradd with the -r flag to automatically grab a system-range UID from the allocated pool. It saves you from checking /etc/login.defs every single time.
useradd -r -s /usr/sbin/nologin -c "Service Description" service_name
⚙️ Why It Works
By default, the system scans your login definitions to pull an unused ID from the SYS_UID_MIN and SYS_UID_MAX range, which keeps your manual user creation separate from system overhead. It effectively delegates the bookkeeping to the OS, which is where it belongs.
🚀 Pro-Tip: Add -m if your service actually needs a home directory for persistent state or config caches.
Linux Tips & Tricks | © ngelinux.com | 8/22/2026
