X-Git-Url: https://git.arvados.org/arvados.git/blobdiff_plain/61d58bb6d4687c0794137700df1ba6aca418a191..183f8c6feeb8d3adbf36a1a4adf122607fb55617:/lib/pam/pam_arvados.go diff --git a/lib/pam/pam_arvados.go b/lib/pam/pam_arvados.go index 389033ba96..34b9080536 100644 --- a/lib/pam/pam_arvados.go +++ b/lib/pam/pam_arvados.go @@ -24,6 +24,7 @@ package main import ( "io/ioutil" "log/syslog" + "os" "context" "errors" @@ -104,8 +105,16 @@ func authenticate(logger *logrus.Logger, username, token string, argv []string) logger.Warnf("unkown option: %s\n", arg) } } + if hostname == "" || hostname == "-" { + h, err := os.Hostname() + if err != nil { + logger.WithError(err).Warnf("cannot get hostname -- try using an explicit hostname in pam config") + return fmt.Errorf("cannot get hostname: %w", err) + } + hostname = h + } logger.Debugf("username=%q arvados_api_host=%q hostname=%q insecure=%t", username, apiHost, hostname, insecure) - if apiHost == "" || hostname == "" { + if apiHost == "" { logger.Warnf("cannot authenticate: config error: arvados_api_host and hostname must be non-empty") return errors.New("config error") }