cilium
50 строк · 1.1 Кб
1// SPDX-License-Identifier: Apache-2.0
2// Copyright Authors of Cilium
3
4package main5
6import (7"fmt"8"os/user"9"runtime"10)
11
12// A dockerGroupCheck checks that the current user is in the docker group.
13type dockerGroupCheck struct{}14
15func (dockerGroupCheck) Name() string {16return "docker-group"17}
18
19func (dockerGroupCheck) Run() (checkResult, string) {20if runtime.GOOS != "linux" {21return checkSkipped, "docker group only used on linux"22}23
24currentUser, err := user.Current()25if err != nil {26return checkFailed, err.Error()27}28
29groupIDs, err := currentUser.GroupIds()30if err != nil {31return checkFailed, err.Error()32}33
34dockerGroup, err := user.LookupGroup("docker")35if err != nil {36return checkFailed, err.Error()37}38
39for _, groupID := range groupIDs {40if groupID == dockerGroup.Gid {41return checkOK, fmt.Sprintf("user %s in docker group", currentUser.Username)42}43}44
45return checkError, fmt.Sprintf("user %s not in docker group", currentUser.Username)46}
47
48func (dockerGroupCheck) Hint() string {49return `Run "sudo usermod $USER --append --group docker", then log out and back in.`50}
51