diff options
| author | Ophestra <cat@gensokyo.uk> | 2026-06-19 23:41:36 +0900 |
|---|---|---|
| committer | Ophestra <cat@gensokyo.uk> | 2026-06-20 00:16:35 +0900 |
| commit | cb618093d5a2156e6c5a03eaf8ca7d370bf33740 (patch) | |
| tree | 7bf8488b7dc0c81f75c6bd96f2da5b1dca9241c2 /internal/outcome/spaccount.go | |
| parent | b0b2471c0cd783c670ed7531d5512415259f551d (diff) | |
hst: optionally disable file placement
This works around stubborn package managers.
Signed-off-by: Ophestra <cat@gensokyo.uk>
Diffstat (limited to 'internal/outcome/spaccount.go')
| -rw-r--r-- | internal/outcome/spaccount.go | 23 |
1 files changed, 13 insertions, 10 deletions
diff --git a/internal/outcome/spaccount.go b/internal/outcome/spaccount.go index 1a849cb5..ccc64479 100644 --- a/internal/outcome/spaccount.go +++ b/internal/outcome/spaccount.go @@ -6,6 +6,7 @@ import ( "syscall" "hakurei.app/fhs" + "hakurei.app/hst" "hakurei.app/internal/validate" ) @@ -41,16 +42,18 @@ func (s spAccountOp) toContainer(state *outcomeStateParams) error { state.env["USER"] = username state.env["SHELL"] = state.Container.Shell.String() - state.params. - Place(fhs.AbsEtc.Append("passwd"), - []byte(username+":x:"+ - state.mapuid.String()+":"+ - state.mapgid.String()+ - ":Hakurei:"+ - state.Container.Home.String()+":"+ - state.Container.Shell.String()+"\n")). - Place(fhs.AbsEtc.Append("group"), - []byte("hakurei:x:"+state.mapgid.String()+":\n")) + if state.Container.Flags&hst.FNoPlace == 0 { + state.params. + Place(fhs.AbsEtc.Append("passwd"), + []byte(username+":x:"+ + state.mapuid.String()+":"+ + state.mapgid.String()+ + ":Hakurei:"+ + state.Container.Home.String()+":"+ + state.Container.Shell.String()+"\n")). + Place(fhs.AbsEtc.Append("group"), + []byte("hakurei:x:"+state.mapgid.String()+":\n")) + } return nil } |
