nixos/home-assistant: set permission for input devices

Currently only keyboard_remote uses evdev.

Changed files
+15 -5
nixos
modules
services
home-automation
+15 -5
nixos/modules/services/home-automation/home-assistant.nix
···
"amshan"
"benqprojector"
];
+
componentsUsingInputDevices = [
+
# Components that require access to input devices (/dev/input/*)
+
"keyboard_remote"
+
];
in
{
ExecStart = escapeSystemdExecArgs (
···
# Hardening
AmbientCapabilities = capabilities;
CapabilityBoundingSet = capabilities;
-
DeviceAllow = (
+
DeviceAllow =
optionals (any useComponent componentsUsingSerialDevices) [
"char-ttyACM rw"
"char-ttyAMA rw"
"char-ttyUSB rw"
]
-
);
+
++ optionals (any useComponent componentsUsingInputDevices) [
+
"char-input rw"
+
];
DevicePolicy = "closed";
LockPersonality = true;
MemoryDenyWriteExecute = true;
···
RestrictNamespaces = true;
RestrictRealtime = true;
RestrictSUIDSGID = true;
-
SupplementaryGroups = optionals (any useComponent componentsUsingSerialDevices) [
-
"dialout"
-
];
+
SupplementaryGroups =
+
optionals (any useComponent componentsUsingSerialDevices) [
+
"dialout"
+
]
+
++ optionals (any useComponent componentsUsingInputDevices) [
+
"input"
+
];
SystemCallArchitectures = "native";
SystemCallFilter = [
"@system-service"