aboutsummaryrefslogtreecommitdiffhomepage
path: root/internal/app/launch.sudo.go
blob: e7a206721a4627bf689fb3f27ecbd4db782fed8c (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
package app

import (
	"git.ophivana.moe/security/fortify/internal/fmsg"
)

const (
	sudoAskPass = "SUDO_ASKPASS"
)

func (a *app) commandBuilderSudo(shimEnv string) (args []string) {
	args = make([]string, 0, 8)

	// -Hiu $USER
	args = append(args, "-Hiu", a.seal.sys.user.Username)

	// -A?
	if _, ok := a.os.LookupEnv(sudoAskPass); ok {
		fmsg.VPrintln(sudoAskPass, "set, adding askpass flag")
		args = append(args, "-A")
	}

	// shim payload
	args = append(args, shimEnv)

	// -- $@
	args = append(args, "--", a.seal.sys.executable, "shim")

	return
}