X-Git-Url: https://git.arvados.org/arvados.git/blobdiff_plain/741b677dc5e85f60bc03ef130873e49ac0b75766..a101f4ea6eb2cd23a27e4c0ec5c0f0df226af2fc:/lib/pam/pam_arvados.go diff --git a/lib/pam/pam_arvados.go b/lib/pam/pam_arvados.go index 389033ba96..ee967af6cc 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" @@ -101,11 +102,19 @@ func authenticate(logger *logrus.Logger, username, token string, argv []string) } else if arg == "debug" { logger.SetLevel(logrus.DebugLevel) } else { - logger.Warnf("unkown option: %s\n", arg) + logger.Warnf("unknown 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") }