diff options
| author | Ophestra Umiker <cat@ophivana.moe> | 2024-11-18 00:18:21 +0900 |
|---|---|---|
| committer | Ophestra Umiker <cat@ophivana.moe> | 2024-11-18 00:18:21 +0900 |
| commit | 05b7dbf066cb74d2901ff9acb3a42662a2af722e (patch) | |
| tree | 72f9d85e591a168a936d82b4e35559e04512cf06 /internal/app/seal.go | |
| parent | 866270ff05379c571c665940a7c1b2010891e960 (diff) | |
app: alternative inner home path
Support binding home to an alternative path in the mount namespace.
Signed-off-by: Ophestra Umiker <cat@ophivana.moe>
Diffstat (limited to 'internal/app/seal.go')
| -rw-r--r-- | internal/app/seal.go | 10 |
1 files changed, 7 insertions, 3 deletions
diff --git a/internal/app/seal.go b/internal/app/seal.go index f01061af..5ad588d0 100644 --- a/internal/app/seal.go +++ b/internal/app/seal.go @@ -100,15 +100,19 @@ func (a *app) Seal(config *Config) error { seal.sys.user = appUser{ aid: config.Confinement.AppID, as: strconv.Itoa(config.Confinement.AppID), - home: config.Confinement.Home, + data: config.Confinement.Outer, + home: config.Confinement.Inner, username: config.Confinement.Username, } if seal.sys.user.username == "" { seal.sys.user.username = "chronos" } - if seal.sys.user.home == "" || !path.IsAbs(seal.sys.user.home) { + if seal.sys.user.data == "" || !path.IsAbs(seal.sys.user.data) { return fmsg.WrapError(ErrHome, - fmt.Sprintf("invalid home directory %q", seal.sys.user.home)) + fmt.Sprintf("invalid home directory %q", seal.sys.user.data)) + } + if seal.sys.user.home == "" { + seal.sys.user.home = seal.sys.user.data } // invoke fsu for full uid |
