зеркало из https://github.com/microsoft/docker.git
Merge pull request #5449 from tianon/remove-libcontainer-root-special-case
Remove "root" and "" special cases in libcontainer
This commit is contained in:
Коммит
eb6a1c9f49
|
@ -83,31 +83,18 @@ func (ns *linuxNs) Init(container *libcontainer.Container, uncleanRootfs, consol
|
||||||
}
|
}
|
||||||
|
|
||||||
func setupUser(container *libcontainer.Container) error {
|
func setupUser(container *libcontainer.Container) error {
|
||||||
switch container.User {
|
uid, gid, suppGids, err := user.GetUserGroupSupplementary(container.User, syscall.Getuid(), syscall.Getgid())
|
||||||
case "root", "":
|
if err != nil {
|
||||||
if err := system.Setgroups(nil); err != nil {
|
return fmt.Errorf("GetUserGroupSupplementary %s", err)
|
||||||
return err
|
}
|
||||||
}
|
if err := system.Setgroups(suppGids); err != nil {
|
||||||
if err := system.Setresgid(0, 0, 0); err != nil {
|
return fmt.Errorf("setgroups %s", err)
|
||||||
return err
|
}
|
||||||
}
|
if err := system.Setgid(gid); err != nil {
|
||||||
if err := system.Setresuid(0, 0, 0); err != nil {
|
return fmt.Errorf("setgid %s", err)
|
||||||
return err
|
}
|
||||||
}
|
if err := system.Setuid(uid); err != nil {
|
||||||
default:
|
return fmt.Errorf("setuid %s", err)
|
||||||
uid, gid, suppGids, err := user.GetUserGroupSupplementary(container.User, syscall.Getuid(), syscall.Getgid())
|
|
||||||
if err != nil {
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
if err := system.Setgroups(suppGids); err != nil {
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
if err := system.Setgid(gid); err != nil {
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
if err := system.Setuid(uid); err != nil {
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
Загрузка…
Ссылка в новой задаче