2020-09-12 08:10:06 +01:00
|
|
|
{ config, pkgs, lib, ... }:
|
|
|
|
{
|
|
|
|
options.virtualisation.spiceUSBRedirection.enable = lib.mkOption {
|
|
|
|
type = lib.types.bool;
|
|
|
|
default = false;
|
2022-07-28 22:19:15 +01:00
|
|
|
description = lib.mdDoc ''
|
2020-09-12 08:10:06 +01:00
|
|
|
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 {
|
2020-09-12 16:00:44 +01:00
|
|
|
environment.systemPackages = [ pkgs.spice-gtk ]; # For polkit actions
|
2021-09-12 17:53:48 +01:00
|
|
|
security.wrappers.spice-client-glib-usb-acl-helper = {
|
|
|
|
owner = "root";
|
|
|
|
group = "root";
|
2020-09-12 16:00:44 +01:00
|
|
|
capabilities = "cap_fowner+ep";
|
2021-09-12 17:53:48 +01:00
|
|
|
source = "${pkgs.spice-gtk}/bin/spice-client-glib-usb-acl-helper";
|
2020-09-12 16:00:44 +01:00
|
|
|
};
|
2020-09-12 08:10:06 +01:00
|
|
|
};
|
|
|
|
|
|
|
|
meta.maintainers = [ lib.maintainers.lheckemann ];
|
|
|
|
}
|