Quellcode durchsuchen

Fix default socket group regression

Signed-off-by: Tonis Tiigi <tonistiigi@gmail.com>
Tonis Tiigi vor 8 Jahren
Ursprung
Commit
c7c2cd4e8e
3 geänderte Dateien mit 16 neuen und 2 gelöschten Zeilen
  1. 2 0
      pkg/listeners/group_unix.go
  2. 7 1
      pkg/listeners/listeners_solaris.go
  3. 7 1
      pkg/listeners/listeners_unix.go

+ 2 - 0
pkg/listeners/group_unix.go

@@ -10,6 +10,8 @@ import (
 	"github.com/pkg/errors"
 	"github.com/pkg/errors"
 )
 )
 
 
+const defaultSocketGroup = "docker"
+
 func lookupGID(name string) (int, error) {
 func lookupGID(name string) (int, error) {
 	groupFile, err := user.GetGroupPath()
 	groupFile, err := user.GetGroupPath()
 	if err != nil {
 	if err != nil {

+ 7 - 1
pkg/listeners/listeners_solaris.go

@@ -4,7 +4,9 @@ import (
 	"crypto/tls"
 	"crypto/tls"
 	"fmt"
 	"fmt"
 	"net"
 	"net"
+	"os"
 
 
+	"github.com/Sirupsen/logrus"
 	"github.com/docker/go-connections/sockets"
 	"github.com/docker/go-connections/sockets"
 )
 )
 
 
@@ -20,7 +22,11 @@ func Init(proto, addr, socketGroup string, tlsConfig *tls.Config) (ls []net.List
 	case "unix":
 	case "unix":
 		gid, err := lookupGID(socketGroup)
 		gid, err := lookupGID(socketGroup)
 		if err != nil {
 		if err != nil {
-			return nil, err
+			if socketGroup != defaultSocketGroup {
+				return nil, err
+			}
+			logrus.Warnf("could not change group %s to %s: %v", addr, defaultSocketGroup, err)
+			gid = os.Getgid()
 		}
 		}
 		l, err := sockets.NewUnixSocket(addr, gid)
 		l, err := sockets.NewUnixSocket(addr, gid)
 		if err != nil {
 		if err != nil {

+ 7 - 1
pkg/listeners/listeners_unix.go

@@ -6,8 +6,10 @@ import (
 	"crypto/tls"
 	"crypto/tls"
 	"fmt"
 	"fmt"
 	"net"
 	"net"
+	"os"
 	"strconv"
 	"strconv"
 
 
+	"github.com/Sirupsen/logrus"
 	"github.com/coreos/go-systemd/activation"
 	"github.com/coreos/go-systemd/activation"
 	"github.com/docker/go-connections/sockets"
 	"github.com/docker/go-connections/sockets"
 )
 )
@@ -33,7 +35,11 @@ func Init(proto, addr, socketGroup string, tlsConfig *tls.Config) ([]net.Listene
 	case "unix":
 	case "unix":
 		gid, err := lookupGID(socketGroup)
 		gid, err := lookupGID(socketGroup)
 		if err != nil {
 		if err != nil {
-			return nil, err
+			if socketGroup != defaultSocketGroup {
+				return nil, err
+			}
+			logrus.Warnf("could not change group %s to %s: %v", addr, defaultSocketGroup, err)
+			gid = os.Getgid()
 		}
 		}
 		l, err := sockets.NewUnixSocket(addr, gid)
 		l, err := sockets.NewUnixSocket(addr, gid)
 		if err != nil {
 		if err != nil {