2 Commits
Author SHA1 Message Date
Bendik Aagaard LynghaugandClaude Fable 5.1 7916e59acb release v0.1.9
ci / quality (push) Failing after 3s
release / build (aarch64-unknown-linux-gnu) (push) Successful in 2m23s
release / build (x86_64-unknown-linux-gnu) (push) Successful in 2m1s
release / publish (push) Successful in 47s
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-03 13:58:27 +02:00
Bendik Aagaard LynghaugandClaude Fable 5.1 458c2a2266 The socket unit owns /run/varde; the service names no runtime directory
RuntimeDirectoryPreserve=yes (0.1.7) made systemd privatise the
directory under DynamicUser: /run/varde became a symlink into
/run/private, 0700, and no unprivileged client - the redoal relay, a
desktop app - could connect. Without RuntimeDirectory= on the service
the socket unit creates the directory (DirectoryMode=0755), nothing
removes it on a service stop, and nothing privatises it.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-03 13:56:47 +02:00
4 changed files with 14 additions and 9 deletions
Generated
+3 -3
View File
@@ -4305,7 +4305,7 @@ checksum = "ba73ea9cf16a25df0c8caa16c51acb937d5712a8429db78a3ee29d5dcacd3a65"
[[package]]
name = "varde-ctl"
version = "0.1.8"
version = "0.1.9"
dependencies = [
"anyhow",
"clap",
@@ -4318,7 +4318,7 @@ dependencies = [
[[package]]
name = "varde-daemon"
version = "0.1.8"
version = "0.1.9"
dependencies = [
"anyhow",
"base64",
@@ -4344,7 +4344,7 @@ dependencies = [
[[package]]
name = "varde-proto"
version = "0.1.8"
version = "0.1.9"
dependencies = [
"serde",
"serde_json",
+1 -1
View File
@@ -3,7 +3,7 @@ resolver = "2"
members = ["varde-proto", "varde-daemon", "varde-ctl"]
[workspace.package]
version = "0.1.8"
version = "0.1.9"
edition = "2021"
license = "MIT OR Apache-2.0"
repository = "https://project.uhhm.no/uhhm/varde"
+7 -5
View File
@@ -15,11 +15,13 @@ Restart=on-failure
# Hardening
DynamicUser=yes
StateDirectory=varde
RuntimeDirectory=varde
# The socket unit's file lives in this directory: removing it on every
# service stop (the default) left varde.socket listening on an unlinked
# path after any restart - "active" with nothing to connect to.
RuntimeDirectoryPreserve=yes
# No RuntimeDirectory= here: varde.socket creates /run/varde for its
# socket file, and the service only uses the activation socket. With
# RuntimeDirectory= on the service, stopping it removed the socket file
# from under the socket unit (0.1.6 and earlier), and preserving it
# (0.1.7/0.1.8) made systemd privatise the directory under DynamicUser -
# /run/varde -> /run/private/varde, 0700 - so no unprivileged client
# could connect at all.
NoNewPrivileges=yes
ProtectSystem=strict
ProtectHome=yes
+3
View File
@@ -5,6 +5,9 @@ Description=varde API socket
[Socket]
ListenStream=/run/varde/varde.sock
SocketMode=0666
# The directory is this unit's, world-readable, so clients of any user
# reach the socket (see varde.service for why the service must not own it).
DirectoryMode=0755
[Install]
WantedBy=sockets.target