aboutsummaryrefslogtreecommitdiffhomepage
path: root/internal/app/launch.machinectl.go
diff options
context:
space:
mode:
authorOphestra Umiker <cat@ophivana.moe>2024-11-16 21:19:45 +0900
committerOphestra Umiker <cat@ophivana.moe>2024-11-16 21:19:45 +0900
commitdf33123bd7f1e0cb4e98580b7e63818c82aa7206 (patch)
tree8b21831634e6169eb875cbfd359fa4006d6c66b3 /internal/app/launch.machinectl.go
parent1a09b55bd4753c6d5cbecf96d1b56f23b0e44b95 (diff)
app: integrate fsu
This removes the dependency on external user switchers like sudo/machinectl and decouples fortify user ids from the passwd database. Signed-off-by: Ophestra Umiker <cat@ophivana.moe>
Diffstat (limited to 'internal/app/launch.machinectl.go')
-rw-r--r--internal/app/launch.machinectl.go57
1 files changed, 0 insertions, 57 deletions
diff --git a/internal/app/launch.machinectl.go b/internal/app/launch.machinectl.go
deleted file mode 100644
index 3c196b84..00000000
--- a/internal/app/launch.machinectl.go
+++ /dev/null
@@ -1,57 +0,0 @@
-package app
-
-import (
- "strings"
-
- "git.ophivana.moe/security/fortify/internal/fmsg"
-)
-
-func (a *app) commandBuilderMachineCtl(shimEnv string) (args []string) {
- args = make([]string, 0, 9+len(a.seal.sys.bwrap.SetEnv))
-
- // shell --uid=$USER
- args = append(args, "shell", "--uid="+a.seal.sys.user.Username)
-
- // --quiet
- if !fmsg.Verbose() {
- args = append(args, "--quiet")
- }
-
- // environ
- envQ := make([]string, 0, len(a.seal.sys.bwrap.SetEnv)+1)
- for k, v := range a.seal.sys.bwrap.SetEnv {
- envQ = append(envQ, "-E"+k+"="+v)
- }
- // add shim payload to environment for shim path
- envQ = append(envQ, "-E"+shimEnv)
- args = append(args, envQ...)
-
- // -- .host
- args = append(args, "--", ".host")
-
- // /bin/sh -c
- if sh, err := a.os.LookPath("sh"); err != nil {
- // hardcode /bin/sh path since it exists more often than not
- args = append(args, "/bin/sh", "-c")
- } else {
- args = append(args, sh, "-c")
- }
-
- // build inner command expression ran as target user
- innerCommand := strings.Builder{}
-
- // apply custom environment variables to activation environment
- innerCommand.WriteString("dbus-update-activation-environment --systemd")
- for k := range a.seal.sys.bwrap.SetEnv {
- innerCommand.WriteString(" " + k)
- }
- innerCommand.WriteString("; ")
-
- // launch fortify shim
- innerCommand.WriteString("exec " + a.os.FshimPath())
-
- // append inner command
- args = append(args, innerCommand.String())
-
- return
-}