Revert "Omit privileged setgroups(2) call to test set[ug]id(2) to same user"

3283407897 (step):5:19
shows that it works on Linux, so undo the hack.

This reverts commit 12acd710be.
This commit is contained in:
Klemens Nanni 2024-11-16 15:38:30 +03:00
parent 12acd710be
commit 6cdf74ca98
No known key found for this signature in database
2 changed files with 10 additions and 8 deletions

View file

@ -12,7 +12,7 @@ import (
"golang.org/x/sys/unix" "golang.org/x/sys/unix"
) )
func chuser(input string, skipSetgroupsForTests ...any) error { func chuser(input string) error {
givenUser, givenGroup, _ := strings.Cut(input, ":") givenUser, givenGroup, _ := strings.Cut(input, ":")
var ( var (
@ -43,10 +43,8 @@ func chuser(input string, skipSetgroupsForTests ...any) error {
gid, _ = strconv.Atoi(usr.Gid) gid, _ = strconv.Atoi(usr.Gid)
} }
if len(skipSetgroupsForTests) == 0 { if err := unix.Setgroups([]int{gid}); err != nil {
if err := unix.Setgroups([]int{gid}); err != nil { return fmt.Errorf("setgroups: %d: %v", gid, err)
return fmt.Errorf("setgroups: %d: %v", gid, err)
}
} }
if err := unix.Setgid(gid); err != nil { if err := unix.Setgid(gid); err != nil {
return fmt.Errorf("setgid: %d: %v", gid, err) return fmt.Errorf("setgid: %d: %v", gid, err)

View file

@ -44,14 +44,18 @@ func TestInvalidUserid (t *testing.T) {
} }
} }
// Change to the current user by username and group ID. // Change to the current user by ID.
func TestCurrentUser (t *testing.T) { func TestCurrentUserid (t *testing.T) {
usr, err := user.Current() usr, err := user.Current()
if err != nil { if err != nil {
t.Fatal(err) t.Fatal(err)
} }
if err = chuser(usr.Username + ":" + usr.Gid, true /* skipSetGroupsForTests */); err != nil { if usr.Uid != "0" {
t.Skip("setgroups(2): Only the superuser may set new groups.")
}
if err = chuser(usr.Uid); err != nil {
t.Fatal(err) t.Fatal(err)
} }
} }