mirror of
https://github.com/containers/skopeo.git
synced 2025-09-04 16:20:23 +00:00
Bump github.com/containers/common from 0.0.7 to 0.1.4
Bumps [github.com/containers/common](https://github.com/containers/common) from 0.0.7 to 0.1.4. - [Release notes](https://github.com/containers/common/releases) - [Commits](https://github.com/containers/common/compare/v0.0.7...v0.1.4) Signed-off-by: dependabot-preview[bot] <support@dependabot.com> Signed-off-by: Valentin Rothberg <rothberg@redhat.com>
This commit is contained in:
committed by
Valentin Rothberg
parent
97aae7a7e4
commit
e3f9f55c56
22
vendor/github.com/containers/common/pkg/unshare/getenv_linux_cgo.go
generated
vendored
Normal file
22
vendor/github.com/containers/common/pkg/unshare/getenv_linux_cgo.go
generated
vendored
Normal file
@@ -0,0 +1,22 @@
|
||||
// +build linux,cgo
|
||||
|
||||
package unshare
|
||||
|
||||
import (
|
||||
"unsafe"
|
||||
)
|
||||
|
||||
/*
|
||||
#cgo remoteclient CFLAGS: -Wall -Werror
|
||||
#include <stdlib.h>
|
||||
*/
|
||||
import "C"
|
||||
|
||||
func getenv(name string) string {
|
||||
cName := C.CString(name)
|
||||
defer C.free(unsafe.Pointer(cName))
|
||||
|
||||
value := C.GoString(C.getenv(cName))
|
||||
|
||||
return value
|
||||
}
|
11
vendor/github.com/containers/common/pkg/unshare/getenv_linux_nocgo.go
generated
vendored
Normal file
11
vendor/github.com/containers/common/pkg/unshare/getenv_linux_nocgo.go
generated
vendored
Normal file
@@ -0,0 +1,11 @@
|
||||
// +build linux,!cgo
|
||||
|
||||
package unshare
|
||||
|
||||
import (
|
||||
"os"
|
||||
)
|
||||
|
||||
func getenv(name string) string {
|
||||
return os.Getenv(name)
|
||||
}
|
35
vendor/github.com/containers/common/pkg/unshare/unshare_linux.go
generated
vendored
35
vendor/github.com/containers/common/pkg/unshare/unshare_linux.go
generated
vendored
@@ -50,6 +50,31 @@ func Command(args ...string) *Cmd {
|
||||
}
|
||||
}
|
||||
|
||||
func getRootlessUID() int {
|
||||
uidEnv := getenv("_CONTAINERS_ROOTLESS_UID")
|
||||
if uidEnv != "" {
|
||||
u, _ := strconv.Atoi(uidEnv)
|
||||
return u
|
||||
}
|
||||
return os.Geteuid()
|
||||
}
|
||||
|
||||
func getRootlessGID() int {
|
||||
gidEnv := getenv("_CONTAINERS_ROOTLESS_GID")
|
||||
if gidEnv != "" {
|
||||
u, _ := strconv.Atoi(gidEnv)
|
||||
return u
|
||||
}
|
||||
|
||||
/* If the _CONTAINERS_ROOTLESS_UID is set, assume the gid==uid. */
|
||||
uidEnv := os.Getenv("_CONTAINERS_ROOTLESS_UID")
|
||||
if uidEnv != "" {
|
||||
u, _ := strconv.Atoi(uidEnv)
|
||||
return u
|
||||
}
|
||||
return os.Getegid()
|
||||
}
|
||||
|
||||
func (c *Cmd) Start() error {
|
||||
runtime.LockOSThread()
|
||||
defer runtime.UnlockOSThread()
|
||||
@@ -61,10 +86,10 @@ func (c *Cmd) Start() error {
|
||||
c.Env = append(c.Env, fmt.Sprintf("_Containers-unshare=%d", c.UnshareFlags))
|
||||
|
||||
// Please the libpod "rootless" package to find the expected env variables.
|
||||
if os.Geteuid() != 0 {
|
||||
if IsRootless() {
|
||||
c.Env = append(c.Env, "_CONTAINERS_USERNS_CONFIGURED=done")
|
||||
c.Env = append(c.Env, fmt.Sprintf("_CONTAINERS_ROOTLESS_UID=%d", os.Geteuid()))
|
||||
c.Env = append(c.Env, fmt.Sprintf("_CONTAINERS_ROOTLESS_GID=%d", os.Getegid()))
|
||||
c.Env = append(c.Env, fmt.Sprintf("_CONTAINERS_ROOTLESS_UID=%d", getRootlessUID()))
|
||||
c.Env = append(c.Env, fmt.Sprintf("_CONTAINERS_ROOTLESS_GID=%d", getRootlessGID()))
|
||||
}
|
||||
|
||||
// Create the pipe for reading the child's PID.
|
||||
@@ -318,14 +343,14 @@ const (
|
||||
// IsRootless tells us if we are running in rootless mode
|
||||
func IsRootless() bool {
|
||||
isRootlessOnce.Do(func() {
|
||||
isRootless = os.Geteuid() != 0 || os.Getenv(UsernsEnvName) != ""
|
||||
isRootless = getRootlessUID() != 0 || getenv(UsernsEnvName) != ""
|
||||
})
|
||||
return isRootless
|
||||
}
|
||||
|
||||
// GetRootlessUID returns the UID of the user in the parent userNS
|
||||
func GetRootlessUID() int {
|
||||
uidEnv := os.Getenv("_CONTAINERS_ROOTLESS_UID")
|
||||
uidEnv := getenv("_CONTAINERS_ROOTLESS_UID")
|
||||
if uidEnv != "" {
|
||||
u, _ := strconv.Atoi(uidEnv)
|
||||
return u
|
||||
|
Reference in New Issue
Block a user