If available, set a home directory env var and chdir to it when entering a shell

master
xSmurf 10 years ago
parent 0c29e9eeac
commit a877d5d5be

@ -108,6 +108,13 @@ func NewFilesystem(name string, user *user.User, basePath string, log *logging.L
return fs
}
func (fs *Filesystem) GetHomeDir() (string, error) {
if fs.user == nil {
return "", fmt.Errorf("Home directory not set")
}
return fs.user.HomeDir, nil
}
/*
func xcreateEmptyDirectories(base string, paths []string) error {
for _, p := range paths {

@ -304,6 +304,12 @@ func (st *initState) handleRunShell(rs *RunShellMsg, msg *ipc.Message) error {
if rs.Term != "" {
cmd.Env = append(cmd.Env, "TERM="+rs.Term)
}
if msg.Ucred.Uid != 0 && msg.Ucred.Gid != 0 {
if homedir, _ := st.fs.GetHomeDir(); homedir != "" {
cmd.Dir = homedir
cmd.Env = append(cmd.Env, "HOME="+homedir)
}
}
cmd.Env = append(cmd.Env, "PATH=/usr/bin:/bin")
cmd.Env = append(cmd.Env, fmt.Sprintf("PS1=[%s] $ ", st.profile.Name))
st.log.Info("Executing shell...")

Loading…
Cancel
Save