diff options
| author | Ophestra <cat@gensokyo.uk> | 2025-01-23 17:04:19 +0900 |
|---|---|---|
| committer | Ophestra <cat@gensokyo.uk> | 2025-01-23 17:04:19 +0900 |
| commit | 134247b57d2ff93c7b70815158474d94bed1074b (patch) | |
| tree | ffbe509e339a521b3ba58cd9d89a335e18bef564 /cmd/fuserdb/main.go | |
| parent | b5bb7654da074dc92c354582d086b68d2d45024c (diff) | |
nix: configure target users via nixos
This makes patching home-manager no longer necessary.
Signed-off-by: Ophestra <cat@gensokyo.uk>
Diffstat (limited to 'cmd/fuserdb/main.go')
| -rw-r--r-- | cmd/fuserdb/main.go | 69 |
1 files changed, 0 insertions, 69 deletions
diff --git a/cmd/fuserdb/main.go b/cmd/fuserdb/main.go deleted file mode 100644 index 2c3dd24e..00000000 --- a/cmd/fuserdb/main.go +++ /dev/null @@ -1,69 +0,0 @@ -package main - -import ( - "bytes" - "errors" - "flag" - "fmt" - "os" - "path" - "strconv" - - "git.gensokyo.uk/security/fortify/internal/fmsg" -) - -func main() { - fmsg.SetPrefix("fuserdb") - - const varEmpty = "/var/empty" - - out := flag.String("o", "userdb", "output directory") - homeDir := flag.String("d", varEmpty, "parent of home directories") - shell := flag.String("s", "/sbin/nologin", "absolute path to subordinate user shell") - flag.Parse() - - type user struct { - name string - fid int - } - - users := make([]user, len(flag.Args())) - for i, s := range flag.Args() { - f := bytes.SplitN([]byte(s), []byte{':'}, 2) - if len(f) != 2 { - fmsg.Fatalf("invalid entry at index %d", i) - } - users[i].name = string(f[0]) - if fid, err := strconv.Atoi(string(f[1])); err != nil { - fmsg.Fatal(err.Error()) - } else { - users[i].fid = fid - } - } - - if err := os.MkdirAll(*out, 0755); err != nil && !errors.Is(err, os.ErrExist) { - fmsg.Fatalf("cannot create output: %v", err) - } - - for _, u := range users { - fidString := strconv.Itoa(u.fid) - for aid := 0; aid < 10000; aid++ { - userName := fmt.Sprintf("u%d_a%d", u.fid, aid) - uid := 1000000 + u.fid*10000 + aid - us := strconv.Itoa(uid) - realName := fmt.Sprintf("Fortify subordinate user %d (%s)", aid, u.name) - var homeDirectory string - if *homeDir != varEmpty { - homeDirectory = path.Join(*homeDir, "u"+fidString, "a"+strconv.Itoa(aid)) - } else { - homeDirectory = varEmpty - } - - writeUser(userName, uid, us, realName, homeDirectory, *shell, *out) - writeGroup(userName, uid, us, nil, *out) - } - } - - fmsg.Printf("created %d entries", len(users)*2*10000) - fmsg.Exit(0) -} |
