diff options
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 } |
