Skip to content

Commit 97582e0

Browse files
committed
expose linux user validation from osutils.
Signed-off-by: pvdvreede <[email protected]>
1 parent 6284c21 commit 97582e0

File tree

2 files changed

+6
-6
lines changed

2 files changed

+6
-6
lines changed

pkg/osutil/user.go

+5-1
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,10 @@ var regexUsername = regexp.MustCompile("^[a-z_][a-z0-9_-]*$")
4040
// regexPath detects valid Linux path.
4141
var regexPath = regexp.MustCompile("^[/a-zA-Z0-9_-]+$")
4242

43+
func ValidateUsername(name string) bool {
44+
return regexUsername.MatchString(name)
45+
}
46+
4347
func LookupUser(name string) (User, error) {
4448
if users == nil {
4549
users = make(map[string]User)
@@ -111,7 +115,7 @@ func LimaUser(warn bool) (*user.User, error) {
111115
cache.Do(func() {
112116
cache.u, cache.err = user.Current()
113117
if cache.err == nil {
114-
if !regexUsername.MatchString(cache.u.Username) {
118+
if !ValidateUsername(cache.u.Username) {
115119
warning := fmt.Sprintf("local user %q is not a valid Linux username (must match %q); using %q username instead",
116120
cache.u.Username, regexUsername.String(), fallbackUser)
117121
cache.warnings = append(cache.warnings, warning)

pkg/osutil/user_test.go

+1-5
Original file line numberDiff line numberDiff line change
@@ -13,15 +13,11 @@ func TestLimaUserWarn(t *testing.T) {
1313
assert.NilError(t, err)
1414
}
1515

16-
func validUsername(username string) bool {
17-
return regexUsername.MatchString(username)
18-
}
19-
2016
func TestLimaUsername(t *testing.T) {
2117
user, err := LimaUser(false)
2218
assert.NilError(t, err)
2319
// check for reasonable unix user name
24-
assert.Assert(t, validUsername(user.Username), user.Username)
20+
assert.Assert(t, ValidateUsername(user.Username), user.Username)
2521
}
2622

2723
func TestLimaUserUid(t *testing.T) {

0 commit comments

Comments
 (0)