Merge pull request #1105 from tejal29/fix_user_metadata
fix user metadata set to USER:GROUP if group string is not set
This commit is contained in:
commit
33a54ca298
|
|
@ -0,0 +1,19 @@
|
|||
# Copyright 2018 Google, Inc. All rights reserved.
|
||||
#
|
||||
# Licensed under the Apache License, Version 2.0 (the "License");
|
||||
# you may not use this file except in compliance with the License.
|
||||
# You may obtain a copy of the License at
|
||||
#
|
||||
# http://www.apache.org/licenses/LICENSE-2.0
|
||||
#
|
||||
# Unless required by applicable law or agreed to in writing, software
|
||||
# distributed under the License is distributed on an "AS IS" BASIS,
|
||||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
# See the License for the specific language governing permissions and
|
||||
# limitations under the License.
|
||||
|
||||
FROM debian:9.11
|
||||
RUN groupadd testgroup && \
|
||||
useradd --create-home --gid testgroup alice
|
||||
|
||||
USER alice
|
||||
|
|
@ -71,7 +71,7 @@ func (r *RunCommand) ExecuteCommand(config *v1.Config, buildArgs *dockerfile.Bui
|
|||
var userStr string
|
||||
// If specified, run the command as a specific user
|
||||
if config.User != "" {
|
||||
uid, gid, err := util.GetUIDAndGIDFromString(config.User, false)
|
||||
uid, gid, err := util.GetUIDAndGIDFromString(config.User, true)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
|
|
|||
|
|
@ -47,16 +47,15 @@ func (r *UserCommand) ExecuteCommand(config *v1.Config, buildArgs *dockerfile.Bu
|
|||
if err != nil {
|
||||
return errors.Wrap(err, fmt.Sprintf("resolving user %s", userAndGroup[0]))
|
||||
}
|
||||
var groupStr = setGroupDefault(userStr)
|
||||
|
||||
if len(userAndGroup) > 1 {
|
||||
groupStr, err = util.ResolveEnvironmentReplacement(userAndGroup[1], replacementEnvs, false)
|
||||
groupStr, err := util.ResolveEnvironmentReplacement(userAndGroup[1], replacementEnvs, false)
|
||||
if err != nil {
|
||||
return errors.Wrap(err, fmt.Sprintf("resolving group %s", userAndGroup[1]))
|
||||
}
|
||||
userStr = userStr + ":" + groupStr
|
||||
}
|
||||
|
||||
userStr = userStr + ":" + groupStr
|
||||
|
||||
config.User = userStr
|
||||
return nil
|
||||
}
|
||||
|
|
@ -64,12 +63,3 @@ func (r *UserCommand) ExecuteCommand(config *v1.Config, buildArgs *dockerfile.Bu
|
|||
func (r *UserCommand) String() string {
|
||||
return r.cmd.String()
|
||||
}
|
||||
|
||||
func setGroupDefault(userStr string) string {
|
||||
userObj, err := Lookup(userStr)
|
||||
if err != nil {
|
||||
logrus.Debugf("could not lookup user %s. Setting group empty", userStr)
|
||||
return ""
|
||||
}
|
||||
return userObj.Gid
|
||||
}
|
||||
|
|
|
|||
|
|
@ -37,22 +37,22 @@ var userTests = []struct {
|
|||
{
|
||||
user: "root",
|
||||
userObj: &user.User{Uid: "root", Gid: "root"},
|
||||
expectedUID: "root:root",
|
||||
expectedUID: "root",
|
||||
},
|
||||
{
|
||||
user: "root-add",
|
||||
userObj: &user.User{Uid: "root-add", Gid: "root"},
|
||||
expectedUID: "root-add:root",
|
||||
expectedUID: "root-add",
|
||||
},
|
||||
{
|
||||
user: "0",
|
||||
userObj: &user.User{Uid: "0", Gid: "0"},
|
||||
expectedUID: "0:0",
|
||||
expectedUID: "0",
|
||||
},
|
||||
{
|
||||
user: "fakeUser",
|
||||
userObj: &user.User{Uid: "fakeUser", Gid: "fakeUser"},
|
||||
expectedUID: "fakeUser:fakeUser",
|
||||
expectedUID: "fakeUser",
|
||||
},
|
||||
{
|
||||
user: "root:root",
|
||||
|
|
@ -78,7 +78,7 @@ var userTests = []struct {
|
|||
{
|
||||
user: "$envuser",
|
||||
userObj: &user.User{Uid: "root", Gid: "root"},
|
||||
expectedUID: "root:root",
|
||||
expectedUID: "root",
|
||||
},
|
||||
{
|
||||
user: "root:$envgroup",
|
||||
|
|
@ -92,7 +92,7 @@ var userTests = []struct {
|
|||
},
|
||||
{
|
||||
user: "some",
|
||||
expectedUID: "some:",
|
||||
expectedUID: "some",
|
||||
},
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue