diff options
| author | Ophestra <cat@gensokyo.uk> | 2025-10-21 20:54:03 +0900 |
|---|---|---|
| committer | Ophestra <cat@gensokyo.uk> | 2025-10-21 20:54:03 +0900 |
| commit | e94acc424c5746eb6cf903ed97b4e71223fda50f (patch) | |
| tree | c55f4b467ed11149006a799421936845bf64de99 /internal/app | |
| parent | b1a4d801be033b41c559e9642ee05e2f0ec43d5b (diff) | |
container/comp: rename from bits
This package will also hold syscall lookup tables for seccomp.
Signed-off-by: Ophestra <cat@gensokyo.uk>
Diffstat (limited to 'internal/app')
| -rw-r--r-- | internal/app/app_test.go | 44 | ||||
| -rw-r--r-- | internal/app/shim.go | 4 | ||||
| -rw-r--r-- | internal/app/spcontainer.go | 12 | ||||
| -rw-r--r-- | internal/app/spcontainer_test.go | 14 | ||||
| -rw-r--r-- | internal/app/spruntime.go | 4 | ||||
| -rw-r--r-- | internal/app/spruntime_test.go | 10 | ||||
| -rw-r--r-- | internal/app/sptmpdir.go | 4 | ||||
| -rw-r--r-- | internal/app/sptmpdir_test.go | 4 |
8 files changed, 48 insertions, 48 deletions
diff --git a/internal/app/app_test.go b/internal/app/app_test.go index 65010917..3f3d2983 100644 --- a/internal/app/app_test.go +++ b/internal/app/app_test.go @@ -17,8 +17,8 @@ import ( "time" "hakurei.app/container" - "hakurei.app/container/bits" "hakurei.app/container/check" + "hakurei.app/container/comp" "hakurei.app/container/fhs" "hakurei.app/hst" "hakurei.app/internal/app/state" @@ -98,24 +98,24 @@ func TestApp(t *testing.T) { "XDG_SESSION_TYPE=tty", }, Ops: new(container.Ops). - Root(m("/"), bits.BindWritable). + Root(m("/"), comp.BindWritable). Proc(m("/proc/")). Tmpfs(hst.AbsPrivateTmp, 4096, 0755). DevWritable(m("/dev/"), true). Tmpfs(m("/dev/shm"), 0, 01777). Tmpfs(m("/run/user/"), 4096, 0755). - Bind(m("/tmp/hakurei.0/runtime/0"), m("/run/user/65534"), bits.BindWritable). - Bind(m("/tmp/hakurei.0/tmpdir/0"), m("/tmp/"), bits.BindWritable). + Bind(m("/tmp/hakurei.0/runtime/0"), m("/run/user/65534"), comp.BindWritable). + Bind(m("/tmp/hakurei.0/tmpdir/0"), m("/tmp/"), comp.BindWritable). Place(m("/etc/passwd"), []byte("chronos:x:65534:65534:Hakurei:/home/chronos:/run/current-system/sw/bin/zsh\n")). Place(m("/etc/group"), []byte("hakurei:x:65534:\n")). - Bind(m("/dev/kvm"), m("/dev/kvm"), bits.BindWritable|bits.BindDevice|bits.BindOptional). + Bind(m("/dev/kvm"), m("/dev/kvm"), comp.BindWritable|comp.BindDevice|comp.BindOptional). Etc(m("/etc/"), "4a450b6596d7bc15bd01780eb9a607ac"). Tmpfs(m("/run/user/1971"), 8192, 0755). Tmpfs(m("/run/nscd"), 8192, 0755). Tmpfs(m("/run/dbus"), 8192, 0755). Remount(m("/dev/"), syscall.MS_RDONLY). Remount(m("/"), syscall.MS_RDONLY), - SeccompPresets: bits.PresetExt | bits.PresetDenyDevel, + SeccompPresets: comp.PresetExt | comp.PresetDenyDevel, HostNet: true, HostAbstract: true, RetainSession: true, @@ -271,14 +271,14 @@ func TestApp(t *testing.T) { "XDG_SESSION_TYPE=wayland", }, Ops: new(container.Ops). - Root(m("/"), bits.BindWritable). + Root(m("/"), comp.BindWritable). Proc(m("/proc/")). Tmpfs(hst.AbsPrivateTmp, 4096, 0755). DevWritable(m("/dev/"), true). Tmpfs(m("/dev/shm"), 0, 01777). Tmpfs(m("/run/user/"), 4096, 0755). - Bind(m("/tmp/hakurei.0/runtime/9"), m("/run/user/65534"), bits.BindWritable). - Bind(m("/tmp/hakurei.0/tmpdir/9"), m("/tmp/"), bits.BindWritable). + Bind(m("/tmp/hakurei.0/runtime/9"), m("/run/user/65534"), comp.BindWritable). + Bind(m("/tmp/hakurei.0/tmpdir/9"), m("/tmp/"), comp.BindWritable). Place(m("/etc/passwd"), []byte("chronos:x:65534:65534:Hakurei:/home/chronos:/run/current-system/sw/bin/zsh\n")). Place(m("/etc/group"), []byte("hakurei:x:65534:\n")). Bind(m("/tmp/hakurei.0/ebf083d1b175911782d413369b64ce7c/wayland"), m("/run/user/65534/wayland-0"), 0). @@ -286,15 +286,15 @@ func TestApp(t *testing.T) { Place(m(hst.PrivateTmp+"/pulse-cookie"), bytes.Repeat([]byte{0}, pulseCookieSizeMax)). Bind(m("/tmp/hakurei.0/ebf083d1b175911782d413369b64ce7c/bus"), m("/run/user/65534/bus"), 0). Bind(m("/tmp/hakurei.0/ebf083d1b175911782d413369b64ce7c/system_bus_socket"), m("/var/run/dbus/system_bus_socket"), 0). - Bind(m("/dev/dri"), m("/dev/dri"), bits.BindWritable|bits.BindDevice|bits.BindOptional). - Bind(m("/dev/kvm"), m("/dev/kvm"), bits.BindWritable|bits.BindDevice|bits.BindOptional). + Bind(m("/dev/dri"), m("/dev/dri"), comp.BindWritable|comp.BindDevice|comp.BindOptional). + Bind(m("/dev/kvm"), m("/dev/kvm"), comp.BindWritable|comp.BindDevice|comp.BindOptional). Etc(m("/etc/"), "ebf083d1b175911782d413369b64ce7c"). Tmpfs(m("/run/user/1971"), 8192, 0755). Tmpfs(m("/run/nscd"), 8192, 0755). Tmpfs(m("/run/dbus"), 8192, 0755). Remount(m("/dev/"), syscall.MS_RDONLY). Remount(m("/"), syscall.MS_RDONLY), - SeccompPresets: bits.PresetExt | bits.PresetDenyDevel, + SeccompPresets: comp.PresetExt | comp.PresetDenyDevel, HostNet: true, HostAbstract: true, RetainSession: true, @@ -428,8 +428,8 @@ func TestApp(t *testing.T) { DevWritable(m("/dev/"), true). Tmpfs(m("/dev/shm"), 0, 01777). Tmpfs(m("/run/user/"), 4096, 0755). - Bind(m("/tmp/hakurei.0/runtime/1"), m("/run/user/1971"), bits.BindWritable). - Bind(m("/tmp/hakurei.0/tmpdir/1"), m("/tmp/"), bits.BindWritable). + Bind(m("/tmp/hakurei.0/runtime/1"), m("/run/user/1971"), comp.BindWritable). + Bind(m("/tmp/hakurei.0/tmpdir/1"), m("/tmp/"), comp.BindWritable). Place(m("/etc/passwd"), []byte("u0_a1:x:1971:100:Hakurei:/var/lib/persist/module/hakurei/0/1:/run/current-system/sw/bin/zsh\n")). Place(m("/etc/group"), []byte("hakurei:x:100:\n")). Bind(m("/run/user/1971/wayland-0"), m("/run/user/1971/wayland-0"), 0). @@ -441,18 +441,18 @@ func TestApp(t *testing.T) { Bind(m("/usr/bin/"), m("/usr/bin/"), 0). Bind(m("/nix/store"), m("/nix/store"), 0). Bind(m("/run/current-system"), m("/run/current-system"), 0). - Bind(m("/sys/block"), m("/sys/block"), bits.BindOptional). - Bind(m("/sys/bus"), m("/sys/bus"), bits.BindOptional). - Bind(m("/sys/class"), m("/sys/class"), bits.BindOptional). - Bind(m("/sys/dev"), m("/sys/dev"), bits.BindOptional). - Bind(m("/sys/devices"), m("/sys/devices"), bits.BindOptional). + Bind(m("/sys/block"), m("/sys/block"), comp.BindOptional). + Bind(m("/sys/bus"), m("/sys/bus"), comp.BindOptional). + Bind(m("/sys/class"), m("/sys/class"), comp.BindOptional). + Bind(m("/sys/dev"), m("/sys/dev"), comp.BindOptional). + Bind(m("/sys/devices"), m("/sys/devices"), comp.BindOptional). Bind(m("/run/opengl-driver"), m("/run/opengl-driver"), 0). - Bind(m("/dev/dri"), m("/dev/dri"), bits.BindDevice|bits.BindWritable|bits.BindOptional). + Bind(m("/dev/dri"), m("/dev/dri"), comp.BindDevice|comp.BindWritable|comp.BindOptional). Etc(m("/etc/"), "8e2c76b066dabe574cf073bdb46eb5c1"). - Bind(m("/var/lib/persist/module/hakurei/0/1"), m("/var/lib/persist/module/hakurei/0/1"), bits.BindWritable|bits.BindEnsure). + Bind(m("/var/lib/persist/module/hakurei/0/1"), m("/var/lib/persist/module/hakurei/0/1"), comp.BindWritable|comp.BindEnsure). Remount(m("/dev/"), syscall.MS_RDONLY). Remount(m("/"), syscall.MS_RDONLY), - SeccompPresets: bits.PresetExt | bits.PresetDenyTTY | bits.PresetDenyDevel, + SeccompPresets: comp.PresetExt | comp.PresetDenyTTY | comp.PresetDenyDevel, HostNet: true, ForwardCancel: true, }, diff --git a/internal/app/shim.go b/internal/app/shim.go index 6be45746..9f85a202 100644 --- a/internal/app/shim.go +++ b/internal/app/shim.go @@ -14,7 +14,7 @@ import ( "time" "hakurei.app/container" - "hakurei.app/container/bits" + "hakurei.app/container/comp" "hakurei.app/container/seccomp" "hakurei.app/hst" "hakurei.app/message" @@ -176,7 +176,7 @@ func ShimMain() { } if err := seccomp.Load( - seccomp.Preset(bits.PresetStrict, seccomp.AllowMultiarch), + seccomp.Preset(comp.PresetStrict, seccomp.AllowMultiarch), seccomp.AllowMultiarch, ); err != nil { log.Fatalf("cannot load syscall filter: %v", err) diff --git a/internal/app/spcontainer.go b/internal/app/spcontainer.go index c6fcada0..65071f7c 100644 --- a/internal/app/spcontainer.go +++ b/internal/app/spcontainer.go @@ -11,8 +11,8 @@ import ( "syscall" "hakurei.app/container" - "hakurei.app/container/bits" "hakurei.app/container/check" + "hakurei.app/container/comp" "hakurei.app/container/fhs" "hakurei.app/container/seccomp" "hakurei.app/hst" @@ -75,16 +75,16 @@ func (s *spParamsOp) toContainer(state *outcomeStateParams) error { } if state.Container.Flags&hst.FSeccompCompat == 0 { - state.params.SeccompPresets |= bits.PresetExt + state.params.SeccompPresets |= comp.PresetExt } if state.Container.Flags&hst.FDevel == 0 { - state.params.SeccompPresets |= bits.PresetDenyDevel + state.params.SeccompPresets |= comp.PresetDenyDevel } if state.Container.Flags&hst.FUserns == 0 { - state.params.SeccompPresets |= bits.PresetDenyNS + state.params.SeccompPresets |= comp.PresetDenyNS } if state.Container.Flags&hst.FTty == 0 { - state.params.SeccompPresets |= bits.PresetDenyTTY + state.params.SeccompPresets |= comp.PresetDenyTTY } if state.Container.Flags&hst.FMapRealUID != 0 { @@ -112,7 +112,7 @@ func (s *spParamsOp) toContainer(state *outcomeStateParams) error { if state.Container.Flags&hst.FDevice == 0 { state.params.DevWritable(fhs.AbsDev, true) } else { - state.params.Bind(fhs.AbsDev, fhs.AbsDev, bits.BindWritable|bits.BindDevice) + state.params.Bind(fhs.AbsDev, fhs.AbsDev, comp.BindWritable|comp.BindDevice) } // /dev is mounted readonly later on, this prevents /dev/shm from going readonly with it state.params.Tmpfs(fhs.AbsDev.Append("shm"), 0, 01777) diff --git a/internal/app/spcontainer_test.go b/internal/app/spcontainer_test.go index 060e8e6e..154b9297 100644 --- a/internal/app/spcontainer_test.go +++ b/internal/app/spcontainer_test.go @@ -8,8 +8,8 @@ import ( "testing" "hakurei.app/container" - "hakurei.app/container/bits" "hakurei.app/container/check" + "hakurei.app/container/comp" "hakurei.app/container/fhs" "hakurei.app/container/seccomp" "hakurei.app/container/stub" @@ -65,11 +65,11 @@ func TestSpParamsOp(t *testing.T) { HostAbstract: true, Path: config.Container.Path, Args: []string{config.Container.Path.String()}, - SeccompPresets: bits.PresetExt | bits.PresetDenyDevel | bits.PresetDenyNS | bits.PresetDenyTTY, + SeccompPresets: comp.PresetExt | comp.PresetDenyDevel | comp.PresetDenyNS | comp.PresetDenyTTY, Uid: 1000, Gid: 100, Ops: new(container.Ops). - Root(m("/var/lib/hakurei/base/org.debian"), bits.BindWritable). + Root(m("/var/lib/hakurei/base/org.debian"), comp.BindWritable). Proc(fhs.AbsProc).Tmpfs(hst.AbsPrivateTmp, 1<<12, 0755). DevWritable(fhs.AbsDev, true). Tmpfs(fhs.AbsDev.Append("shm"), 0, 01777), @@ -107,9 +107,9 @@ func TestSpParamsOp(t *testing.T) { Uid: 1000, Gid: 100, Ops: new(container.Ops). - Root(m("/var/lib/hakurei/base/org.debian"), bits.BindWritable). + Root(m("/var/lib/hakurei/base/org.debian"), comp.BindWritable). Proc(fhs.AbsProc).Tmpfs(hst.AbsPrivateTmp, 1<<12, 0755). - Bind(fhs.AbsDev, fhs.AbsDev, bits.BindWritable|bits.BindDevice). + Bind(fhs.AbsDev, fhs.AbsDev, comp.BindWritable|comp.BindDevice). Tmpfs(fhs.AbsDev.Append("shm"), 0, 01777), }, paramsWantEnv(config, map[string]string{ "TERM": "xterm", @@ -425,8 +425,8 @@ func TestSpFilesystemOp(t *testing.T) { Bind( fhs.AbsVarLib.Append("hakurei/u0/org.chromium.Chromium"), check.MustAbs("/data/data/org.chromium.Chromium"), - bits.BindWritable|bits.BindEnsure). - Bind(fhs.AbsDev.Append("dri"), fhs.AbsDev.Append("dri"), bits.BindDevice|bits.BindWritable|bits.BindOptional). + comp.BindWritable|comp.BindEnsure). + Bind(fhs.AbsDev.Append("dri"), fhs.AbsDev.Append("dri"), comp.BindDevice|comp.BindWritable|comp.BindOptional). Remount(fhs.AbsRoot, syscall.MS_RDONLY), }, nil, nil}, }) diff --git a/internal/app/spruntime.go b/internal/app/spruntime.go index d8c5af94..25c04b83 100644 --- a/internal/app/spruntime.go +++ b/internal/app/spruntime.go @@ -3,8 +3,8 @@ package app import ( "encoding/gob" - "hakurei.app/container/bits" "hakurei.app/container/check" + "hakurei.app/container/comp" "hakurei.app/container/fhs" "hakurei.app/hst" "hakurei.app/system" @@ -111,7 +111,7 @@ func (s *spRuntimeOp) toContainer(state *outcomeStateParams) error { state.params.Tmpfs(fhs.AbsRunUser, 1<<12, 0755) if state.Container.Flags&hst.FShareRuntime != 0 { _, runtimeDirInst := s.commonPaths(state.outcomeState) - state.params.Bind(runtimeDirInst, state.runtimeDir, bits.BindWritable) + state.params.Bind(runtimeDirInst, state.runtimeDir, comp.BindWritable) } else { state.params.Mkdir(state.runtimeDir, 0700) } diff --git a/internal/app/spruntime_test.go b/internal/app/spruntime_test.go index 493e66a3..1675a7e5 100644 --- a/internal/app/spruntime_test.go +++ b/internal/app/spruntime_test.go @@ -4,7 +4,7 @@ import ( "testing" "hakurei.app/container" - "hakurei.app/container/bits" + "hakurei.app/container/comp" "hakurei.app/container/fhs" "hakurei.app/container/stub" "hakurei.app/hst" @@ -41,7 +41,7 @@ func TestSpRuntimeOp(t *testing.T) { }, &container.Params{ Ops: new(container.Ops). Tmpfs(fhs.AbsRunUser, 1<<12, 0755). - Bind(m("/proc/nonexistent/tmp/hakurei.0/runtime/9"), m("/run/user/1000"), bits.BindWritable), + Bind(m("/proc/nonexistent/tmp/hakurei.0/runtime/9"), m("/run/user/1000"), comp.BindWritable), }, paramsWantEnv(config, map[string]string{ "XDG_RUNTIME_DIR": "/run/user/1000", "XDG_SESSION_CLASS": "user", @@ -68,7 +68,7 @@ func TestSpRuntimeOp(t *testing.T) { }, &container.Params{ Ops: new(container.Ops). Tmpfs(fhs.AbsRunUser, 1<<12, 0755). - Bind(m("/proc/nonexistent/tmp/hakurei.0/runtime/9"), m("/run/user/1000"), bits.BindWritable), + Bind(m("/proc/nonexistent/tmp/hakurei.0/runtime/9"), m("/run/user/1000"), comp.BindWritable), }, paramsWantEnv(config, map[string]string{ "XDG_RUNTIME_DIR": "/run/user/1000", "XDG_SESSION_CLASS": "user", @@ -95,7 +95,7 @@ func TestSpRuntimeOp(t *testing.T) { }, &container.Params{ Ops: new(container.Ops). Tmpfs(fhs.AbsRunUser, 1<<12, 0755). - Bind(m("/proc/nonexistent/tmp/hakurei.0/runtime/9"), m("/run/user/1000"), bits.BindWritable), + Bind(m("/proc/nonexistent/tmp/hakurei.0/runtime/9"), m("/run/user/1000"), comp.BindWritable), }, paramsWantEnv(config, map[string]string{ "XDG_RUNTIME_DIR": "/run/user/1000", "XDG_SESSION_CLASS": "user", @@ -118,7 +118,7 @@ func TestSpRuntimeOp(t *testing.T) { }, &container.Params{ Ops: new(container.Ops). Tmpfs(fhs.AbsRunUser, 1<<12, 0755). - Bind(m("/proc/nonexistent/tmp/hakurei.0/runtime/9"), m("/run/user/1000"), bits.BindWritable), + Bind(m("/proc/nonexistent/tmp/hakurei.0/runtime/9"), m("/run/user/1000"), comp.BindWritable), }, paramsWantEnv(config, map[string]string{ "XDG_RUNTIME_DIR": "/run/user/1000", "XDG_SESSION_CLASS": "user", diff --git a/internal/app/sptmpdir.go b/internal/app/sptmpdir.go index b926f46e..5b7b54b9 100644 --- a/internal/app/sptmpdir.go +++ b/internal/app/sptmpdir.go @@ -3,8 +3,8 @@ package app import ( "encoding/gob" - "hakurei.app/container/bits" "hakurei.app/container/check" + "hakurei.app/container/comp" "hakurei.app/container/fhs" "hakurei.app/hst" "hakurei.app/system" @@ -30,7 +30,7 @@ func (s spTmpdirOp) toSystem(state *outcomeStateSys) error { func (s spTmpdirOp) toContainer(state *outcomeStateParams) error { if state.Container.Flags&hst.FShareTmpdir != 0 { _, tmpdirInst := s.commonPaths(state.outcomeState) - state.params.Bind(tmpdirInst, fhs.AbsTmp, bits.BindWritable) + state.params.Bind(tmpdirInst, fhs.AbsTmp, comp.BindWritable) } else { state.params.Tmpfs(fhs.AbsTmp, 0, 01777) } diff --git a/internal/app/sptmpdir_test.go b/internal/app/sptmpdir_test.go index 4763ea86..53b44fbe 100644 --- a/internal/app/sptmpdir_test.go +++ b/internal/app/sptmpdir_test.go @@ -4,7 +4,7 @@ import ( "testing" "hakurei.app/container" - "hakurei.app/container/bits" + "hakurei.app/container/comp" "hakurei.app/container/fhs" "hakurei.app/container/stub" "hakurei.app/hst" @@ -28,7 +28,7 @@ func TestSpTmpdirOp(t *testing.T) { // this op configures the container state and does not make calls during toContainer }, &container.Params{ Ops: new(container.Ops). - Bind(m("/proc/nonexistent/tmp/hakurei.0/tmpdir/9"), fhs.AbsTmp, bits.BindWritable), + Bind(m("/proc/nonexistent/tmp/hakurei.0/tmpdir/9"), fhs.AbsTmp, comp.BindWritable), }, nil, nil}, }) } |
