ipn/ipnauth, util/winutil: add temporary LookupPseudoUser workaround to address os/user.LookupId errors on Windows
I added util/winutil/LookupPseudoUser, which essentially consists of the bits that I am in the process of adding to Go's standard library. We check the provided SID for "S-1-5-x" where 17 <= x <= 20 (which are the known pseudo-users) and then manually populate a os/user.User struct with the correct information. Fixes https://github.com/tailscale/tailscale/issues/869 Fixes https://github.com/tailscale/tailscale/issues/2894 Signed-off-by: Aaron Klotz <aaron@tailscale.com>
This commit is contained in:
@ -6,6 +6,12 @@
|
||||
|
||||
package winutil
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"os/user"
|
||||
"runtime"
|
||||
)
|
||||
|
||||
const regBase = ``
|
||||
|
||||
func getPolicyString(name, defval string) string { return defval }
|
||||
@ -17,3 +23,7 @@ func getRegString(name, defval string) string { return defval }
|
||||
func getRegInteger(name string, defval uint64) uint64 { return defval }
|
||||
|
||||
func isSIDValidPrincipal(uid string) bool { return false }
|
||||
|
||||
func lookupPseudoUser(uid string) (*user.User, error) {
|
||||
return nil, fmt.Errorf("unimplemented on %v", runtime.GOOS)
|
||||
}
|
||||
|
Reference in New Issue
Block a user