From 2be0f82e4af201688dd3f44d0f986e26586d2664 Mon Sep 17 00:00:00 2001 From: Mikhail Klementev Date: Tue, 7 Jan 2020 20:01:52 +0000 Subject: [PATCH] User host user id --- appvm.go | 2 +- base.nix.go | 21 ++++++++++++++++++--- 2 files changed, 19 insertions(+), 4 deletions(-) diff --git a/appvm.go b/appvm.go index 08b835e..fbe4e0e 100644 --- a/appvm.go +++ b/appvm.go @@ -430,7 +430,7 @@ func main() { log.Fatal(err) } - err = ioutil.WriteFile(configDir+"/nix/base.nix", base_nix, 0644) + err = ioutil.WriteFile(configDir+"/nix/base.nix", baseNix(), 0644) if err != nil { log.Fatal(err) } diff --git a/base.nix.go b/base.nix.go index 51ff947..97ac57e 100644 --- a/base.nix.go +++ b/base.nix.go @@ -1,6 +1,12 @@ package main -var base_nix = []byte(` +import ( + "fmt" + "log" + "os/user" +) + +var base_nix = ` {pkgs, ...}: { imports = [ @@ -24,6 +30,7 @@ var base_nix = []byte(` services.spice-vdagentd.enable = true; users.extraUsers.user = { + uid = %s; isNormalUser = true; extraGroups = [ "audio" ]; createHome = true; @@ -58,7 +65,7 @@ startup = do systemd.services.mount-home-user = { description = "Mount /home/user (crutch)"; serviceConfig = { - ExecStart = "/bin/sh -c '/run/current-system/sw/bin/mount -t 9p -o trans=virtio,version=9p2000.L,uid=1000 home /home/user'"; + ExecStart = "/bin/sh -c '/run/current-system/sw/bin/mount -t 9p -o trans=virtio,version=9p2000.L home /home/user'"; RemainAfterExit = "yes"; Type = "oneshot"; User = "root"; @@ -106,4 +113,12 @@ startup = do wantedBy = ["timers.target"]; }; } -`) +` + +func baseNix() []byte { + u, err := user.Current() + if err != nil { + log.Fatal(err) + } + return []byte(fmt.Sprintf(base_nix, u.Uid)) +}