From e52b953434b255f53e61125c7fd3653adcebdab8 Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Fri, 18 Oct 2019 23:12:35 +0200 Subject: services: network-manager: Create account for 'network-manager-openconnect'. Previously, on startup, we'd see: dbus: Unknown username nm-openconnect in message bus configuration file This fixes it. * gnu/services/networking.scm (network-manager-accounts): New procedure. (network-manager-service-type): Extend 'account-service-type'. * gnu/packages/gnome.scm (network-manager-openconnect)[properties]: Add 'user-accounts'. --- gnu/services/networking.scm | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) (limited to 'gnu/services') diff --git a/gnu/services/networking.scm b/gnu/services/networking.scm index f3925615bf..93d9b6a15e 100644 --- a/gnu/services/networking.scm +++ b/gnu/services/networking.scm @@ -51,6 +51,7 @@ #:use-module (guix gexp) #:use-module (guix records) #:use-module (guix modules) + #:use-module (guix packages) #:use-module (guix deprecation) #:use-module (rnrs enums) #:use-module (srfi srfi-1) @@ -1006,6 +1007,33 @@ and @command{wicd-curses} user interfaces." "Return a directory containing PLUGINS, the NM VPN plugins." (directory-union "network-manager-vpn-plugins" plugins)) +(define (network-manager-accounts config) + "Return the list of and for CONFIG." + (define nologin + (file-append shadow "/sbin/nologin")) + + (define accounts + (append-map (lambda (package) + (map (lambda (name) + (user-account (system? #t) + (name name) + (group "network-manager") + (comment "NetworkManager helper") + (home-directory "/var/empty") + (create-home-directory? #f) + (shell nologin))) + (or (assoc-ref (package-properties package) + 'user-accounts) + '()))) + (network-manager-configuration-vpn-plugins config))) + + (match accounts + (() + '()) + (_ + (cons (user-group (name "network-manager") (system? #t)) + accounts)))) + (define network-manager-environment (match-lambda (($ network-manager dns vpn-plugins) @@ -1055,6 +1083,8 @@ and @command{wicd-curses} user interfaces." (compose list network-manager-configuration-network-manager)) + (service-extension account-service-type + network-manager-accounts) (service-extension activation-service-type network-manager-activation) (service-extension session-environment-service-type -- cgit v1.2.3