<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/"><channel><title>Systemd on Umair's Systems Notebook</title><link>https://umair-as.github.io/blog/tags/systemd/</link><description>Recent content in Systemd on Umair's Systems Notebook</description><generator>Hugo</generator><language>en-us</language><lastBuildDate>Tue, 21 Apr 2026 00:00:00 +0000</lastBuildDate><atom:link href="https://umair-as.github.io/blog/tags/systemd/index.xml" rel="self" type="application/rss+xml"/><item><title>RAUC Streaming OTA: When the Sandbox User Can't Reach the TPM</title><link>https://umair-as.github.io/blog/posts/rauc-pkcs11-tpm-streaming-sandbox/</link><pubDate>Tue, 21 Apr 2026 00:00:00 +0000</pubDate><guid>https://umair-as.github.io/blog/posts/rauc-pkcs11-tpm-streaming-sandbox/</guid><description>Switching RAUC&amp;rsquo;s streaming mTLS client key from a file path to a PKCS#11 URI produced a one-line error with no obvious cause. The real problem was not the module path, not the engine, and not a missing PIN — it was the sandbox user&amp;rsquo;s group membership and what tpm2-pkcs11 needs to initialise.</description></item><item><title>Packaging Telegraf for Yocto: Build Tags, a Linker Collision, and Credentials That Can't Live in the Rootfs</title><link>https://umair-as.github.io/blog/posts/telegraf-yocto-recipe/</link><pubDate>Wed, 15 Apr 2026 00:00:00 +0000</pubDate><guid>https://umair-as.github.io/blog/posts/telegraf-yocto-recipe/</guid><description>No OE recipe for Telegraf exists upstream. What looked like a straightforward packaging task turned into a Go linker collision, a PIE/CGO conflict, and a credential problem that ruled out the obvious solution entirely.</description></item><item><title>Hardening OTBR: Reading a 4.1 systemd-analyze Score</title><link>https://umair-as.github.io/blog/posts/otbr-systemd-hardening/</link><pubDate>Tue, 14 Apr 2026 00:00:00 +0000</pubDate><guid>https://umair-as.github.io/blog/posts/otbr-systemd-hardening/</guid><description>Part 1 got OTBR running as a non-root user with three capabilities. Part 2 covers the hardening block in the service file — what each directive does, why one had to be an exception, and how to use systemd-analyze security as a decision tool rather than a score to chase. Part 2 of 2.</description></item><item><title>Running OTBR as Non-Root: Finding the Capability Floor</title><link>https://umair-as.github.io/blog/posts/running-otbr-as-non-root/</link><pubDate>Tue, 14 Apr 2026 00:00:00 +0000</pubDate><guid>https://umair-as.github.io/blog/posts/running-otbr-as-non-root/</guid><description>OpenThread Border Router assumes it runs as root. Getting it down to a least-privilege non-root user means figuring out exactly what it needs — which turned out to be a source code problem, not a trial-and-error problem. Part 1 of 2.</description></item></channel></rss>