fedd7cd690
This is slightly more verbose and inconvenient, but it forces you to think about what the wrapper ownership and permissions will be.
27 lines
881 B
Nix
27 lines
881 B
Nix
{ config, pkgs, lib, ... }:
|
|
{
|
|
options.virtualisation.spiceUSBRedirection.enable = lib.mkOption {
|
|
type = lib.types.bool;
|
|
default = false;
|
|
description = ''
|
|
Install the SPICE USB redirection helper with setuid
|
|
privileges. This allows unprivileged users to pass USB devices
|
|
connected to this machine to libvirt VMs, both local and
|
|
remote. Note that this allows users arbitrary access to USB
|
|
devices.
|
|
'';
|
|
};
|
|
|
|
config = lib.mkIf config.virtualisation.spiceUSBRedirection.enable {
|
|
environment.systemPackages = [ pkgs.spice-gtk ]; # For polkit actions
|
|
security.wrappers.spice-client-glib-usb-acl-helper = {
|
|
owner = "root";
|
|
group = "root";
|
|
capabilities = "cap_fowner+ep";
|
|
source = "${pkgs.spice-gtk}/bin/spice-client-glib-usb-acl-helper";
|
|
};
|
|
};
|
|
|
|
meta.maintainers = [ lib.maintainers.lheckemann ];
|
|
}
|