diff --git a/qemu/qemu.go b/qemu/qemu.go index c4aada81e5..1152ffd72a 100644 --- a/qemu/qemu.go +++ b/qemu/qemu.go @@ -2439,6 +2439,13 @@ type Config struct { // Ctx is the context used when launching qemu. Ctx context.Context + // User ID. + Uid uint32 + // Group ID. + Gid uint32 + // Supplementary group IDs. + Groups []uint32 + // Name is the qemu guest name Name string @@ -2898,8 +2905,15 @@ func LaunchQemu(config Config, logger QMPLog) (string, error) { ctx = context.Background() } + attr := syscall.SysProcAttr{} + attr.Credential = &syscall.Credential{ + Uid: config.Uid, + Gid: config.Gid, + Groups: config.Groups, + } + return LaunchCustomQemu(ctx, config.Path, config.qemuParams, - config.fds, nil, logger) + config.fds, &attr, logger) } // LaunchCustomQemu can be used to launch a new qemu instance.