mirror of
https://github.com/netbirdio/netbird.git
synced 2026-10-02 11:39:06 +02:00
122 lines
2.6 KiB
Go
122 lines
2.6 KiB
Go
package ipcauth
|
|
|
|
import (
|
|
"testing"
|
|
|
|
"github.com/stretchr/testify/assert"
|
|
)
|
|
|
|
func TestIdentitySameUser(t *testing.T) {
|
|
tests := []struct {
|
|
name string
|
|
a Identity
|
|
b Identity
|
|
want bool
|
|
}{
|
|
{
|
|
name: "same uid",
|
|
a: Identity{UID: 1000, GID: 1000},
|
|
b: Identity{UID: 1000, GID: 1000},
|
|
want: true,
|
|
},
|
|
{
|
|
name: "same uid, different gid and pid still the same user",
|
|
a: Identity{UID: 1000, GID: 1000, PID: 11},
|
|
b: Identity{UID: 1000, GID: 27, PID: 22},
|
|
want: true,
|
|
},
|
|
{
|
|
name: "different uid",
|
|
a: Identity{UID: 1000},
|
|
b: Identity{UID: 1001},
|
|
want: false,
|
|
},
|
|
{
|
|
name: "same sid",
|
|
a: Identity{SID: "S-1-5-21-1-2-3-1001"},
|
|
b: Identity{SID: "S-1-5-21-1-2-3-1001"},
|
|
want: true,
|
|
},
|
|
{
|
|
name: "same sid, elevation and groups differ",
|
|
a: Identity{SID: "S-1-5-21-1-2-3-1001", Elevated: true, Groups: []string{sidAdministrators}},
|
|
b: Identity{SID: "S-1-5-21-1-2-3-1001"},
|
|
want: true,
|
|
},
|
|
{
|
|
name: "different sid",
|
|
a: Identity{SID: "S-1-5-21-1-2-3-1001"},
|
|
b: Identity{SID: "S-1-5-21-1-2-3-1002"},
|
|
want: false,
|
|
},
|
|
{
|
|
name: "a windows principal is never a unix one",
|
|
a: Identity{SID: "S-1-5-18"},
|
|
b: Identity{UID: 0},
|
|
want: false,
|
|
},
|
|
}
|
|
|
|
for _, tt := range tests {
|
|
t.Run(tt.name, func(t *testing.T) {
|
|
assert.Equal(t, tt.want, tt.a.SameUser(tt.b))
|
|
assert.Equal(t, tt.want, tt.b.SameUser(tt.a), "SameUser must be symmetric")
|
|
})
|
|
}
|
|
}
|
|
|
|
func TestIdentityIsPrivileged(t *testing.T) {
|
|
tests := []struct {
|
|
name string
|
|
id Identity
|
|
want bool
|
|
}{
|
|
{
|
|
name: "Root",
|
|
id: Identity{UID: 0, GID: 0},
|
|
want: true,
|
|
},
|
|
{
|
|
name: "Non-root",
|
|
id: Identity{UID: 1000, GID: 1000},
|
|
want: false,
|
|
},
|
|
{
|
|
name: "Local system windows",
|
|
id: Identity{SID: sidLocalSystem},
|
|
want: true,
|
|
},
|
|
{
|
|
name: "Windows elevated",
|
|
id: Identity{SID: "S-1-5-21-1927267129-3959769253-3036563910-1001", Elevated: true},
|
|
want: true,
|
|
},
|
|
{
|
|
name: "Admin group windows",
|
|
id: Identity{SID: "S-1-5-21-1927267129-3959769253-3036563910-1001", Groups: []string{sidAdministrators}},
|
|
want: true,
|
|
},
|
|
{
|
|
name: "Regular user windows",
|
|
id: Identity{SID: "S-1-5-21-1927267129-3959769253-3036563910-1001"},
|
|
want: false,
|
|
},
|
|
{
|
|
name: "Network service windows",
|
|
id: Identity{SID: sidNetworkService},
|
|
want: false,
|
|
},
|
|
{
|
|
name: "Local service windows",
|
|
id: Identity{SID: sidLocalService},
|
|
want: false,
|
|
},
|
|
}
|
|
|
|
for _, tt := range tests {
|
|
t.Run(tt.name, func(t *testing.T) {
|
|
assert.Equal(t, tt.want, tt.id.IsPrivileged())
|
|
})
|
|
}
|
|
}
|