more UI and change default local user permissions

This commit is contained in:
2026-03-19 22:22:24 +00:00
parent a997b184f5
commit a79666f5a6
4 changed files with 198 additions and 37 deletions

48
app.go
View File

@@ -744,6 +744,52 @@ func (a *App) collectCIFSMountConfig(defaults CIFSMountConfig) (CIFSMountConfig,
}, nil
}
func defaultCIFSMountConfig() CIFSMountConfig {
uid, gid := defaultLocalMountOwnerGroup(os.Getenv, user.Current, user.Lookup, user.LookupGroupId)
return CIFSMountConfig{
UID: uid,
GID: gid,
}
}
func defaultLocalMountOwnerGroup(
getenv func(string) string,
currentUser func() (*user.User, error),
lookupUser func(string) (*user.User, error),
lookupGroupID func(string) (*user.Group, error),
) (uid string, gid string) {
resolveGroup := func(groupID string) string {
if strings.TrimSpace(groupID) == "" {
return ""
}
group, err := lookupGroupID(groupID)
if err != nil {
return strings.TrimSpace(groupID)
}
return strings.TrimSpace(group.Name)
}
if sudoUser := strings.TrimSpace(getenv("SUDO_USER")); sudoUser != "" {
uid = sudoUser
if sudoGID := strings.TrimSpace(getenv("SUDO_GID")); sudoGID != "" {
return uid, resolveGroup(sudoGID)
}
if u, err := lookupUser(sudoUser); err == nil {
return uid, resolveGroup(u.Gid)
}
return uid, ""
}
u, err := currentUser()
if err != nil {
return "", ""
}
uid = strings.TrimSpace(u.Username)
gid = resolveGroup(u.Gid)
return uid, gid
}
func (a *App) ensureMountPoint(path string) error {
info, err := os.Stat(path)
if err == nil {
@@ -1545,7 +1591,7 @@ func (a *App) addClientMount() error {
return err
}
cfg, err := a.collectCIFSMountConfig(CIFSMountConfig{})
cfg, err := a.collectCIFSMountConfig(defaultCIFSMountConfig())
if err != nil {
return err
}