⛳
PVEでGPUをroot@pam以外でも変える方法
はじめに
Proxmox VEで複数あるGPUの管理を行いたいと考えました.
しかし,デフォルトの設定ではroot@pam以外のユーザーはGPUの変更ができません.
そのためこの回避方法を紹介します.
方法
/usr/share/perl5/PVE/API2/Qemu.pm
のcheck_hostpci_perm
以下のように編集します.
my sub check_hostpci_perm {
my ($rpcenv, $authuser, $vmid, $pool, $opt, $value) = @_;
return 1 if $authuser eq 'root@pam';
my $device = PVE::JSONSchema::parse_property_string('pve-qm-hostpci', $value);
if ($device->{host}) {
- die "only root can set '$opt' config for non-mapped devices\n";
+ #die "only root can set '$opt' config for non-mapped devices\n";
+ $rpcenv->check_full($authuser, "/mapping/pci/$device->{mapping}", ['Mapping.Use']);
+ $rpcenv->check_vm_perm($authuser, $vmid, $pool, ['VM.Config.HWType']);
} elsif ($device->{mapping}) {
$rpcenv->check_full($authuser, "/mapping/pci/$device->{mapping}", ['Mapping.Use']);
$rpcenv->check_vm_perm($authuser, $vmid, $pool, ['VM.Config.HWType']);
} else {
die "either 'host' or 'mapping' must be set.\n";
}
return 1;
}
これにより,Mapping.Use
の権限を持つユーザーはGPUの変更ができるようになります.
Discussion