Jenkins PWAuth não funciona após o reinício do processo

1

Estou executando o Jenkins (atualmente v2.134, sempre atualizado do repositório Jenkins Debian / Ubuntu) em um servidor Ubuntu 18.04. Ele está configurado para usar o plug-in pwauth para autenticação em contas do sistema.

Aqui está a seção de configuração para o plugin pwauth (gerado a partir da alteração das configurações na GUI):

  <securityRealm class="hudson.plugins.pwauth.PWauthSecurityRealm" plugin="[email protected]">
    <pwauthPath>/usr/sbin/pwauth</pwauthPath>
    <whitelist></whitelist>
    <enableParamAuth>false</enableParamAuth>
    <idPath>/usr/bin/id</idPath>
    <groupsPath>/usr/bin/groups</groupsPath>
    <catPath>/bin/cat</catPath>
    <grepPath>/bin/grep</grepPath>
  </securityRealm>

Ele está usando a estratégia de autorização de matriz, com um grupo chamado jenkinsadmins com permissões completas (a configuração abaixo também é gerada a partir da alteração das configurações na GUI). Para permitir que os usuários façam login no Jenkins, nós apenas os adicionamos a este grupo Unix:

  <authorizationStrategy class="hudson.security.GlobalMatrixAuthorizationStrategy">
    <permission>com.cloudbees.plugins.credentials.CredentialsProvider.Create:jenkinsadmins</permission>
    <permission>com.cloudbees.plugins.credentials.CredentialsProvider.Delete:jenkinsadmins</permission>
    <permission>com.cloudbees.plugins.credentials.CredentialsProvider.ManageDomains:jenkinsadmins</permission>
    <permission>com.cloudbees.plugins.credentials.CredentialsProvider.Update:jenkinsadmins</permission>
    <permission>com.cloudbees.plugins.credentials.CredentialsProvider.View:jenkinsadmins</permission>
    <permission>hudson.model.Computer.Build:jenkinsadmins</permission>
    <permission>hudson.model.Computer.Configure:jenkinsadmins</permission>
    <permission>hudson.model.Computer.Connect:jenkinsadmins</permission>
    <permission>hudson.model.Computer.Create:jenkinsadmins</permission>
    <permission>hudson.model.Computer.Delete:jenkinsadmins</permission>
    <permission>hudson.model.Computer.Disconnect:jenkinsadmins</permission>
    <permission>hudson.model.Hudson.Administer:jenkinsadmins</permission>
    <permission>hudson.model.Hudson.Read:jenkinsadmins</permission>
    <permission>hudson.model.Item.Build:jenkinsadmins</permission>
    <permission>hudson.model.Item.Cancel:jenkinsadmins</permission>
    <permission>hudson.model.Item.Configure:jenkinsadmins</permission>
    <permission>hudson.model.Item.Create:jenkinsadmins</permission>
    <permission>hudson.model.Item.Delete:jenkinsadmins</permission>
    <permission>hudson.model.Item.Discover:jenkinsadmins</permission>
    <permission>hudson.model.Item.Move:jenkinsadmins</permission>
    <permission>hudson.model.Item.Read:jenkinsadmins</permission>
    <permission>hudson.model.Item.ViewStatus:anonymous</permission>
    <permission>hudson.model.Item.ViewStatus:jenkinsadmins</permission>
    <permission>hudson.model.Item.Workspace:jenkinsadmins</permission>
    <permission>hudson.model.Run.Delete:jenkinsadmins</permission>
    <permission>hudson.model.Run.Update:jenkinsadmins</permission>
    <permission>hudson.model.View.Configure:jenkinsadmins</permission>
    <permission>hudson.model.View.Create:jenkinsadmins</permission>
    <permission>hudson.model.View.Delete:jenkinsadmins</permission>
    <permission>hudson.model.View.Read:jenkinsadmins</permission>
    <permission>hudson.scm.SCM.Tag:jenkinsadmins</permission>
    <permission>org.jenkins.ci.plugins.jobimport.JobImportAction.JobImport:jenkinsadmins</permission>
  </authorizationStrategy>

O problema é que toda vez que eu reinicio o Jenkins (incluindo automaticamente após uma reinicialização do servidor, depois de uma atualização do Jenkins, ou depois de trocar plugins), eu não consigo mais logar - Jenkins me diz "Nome de usuário ou senha inválidos".

No entanto, sei que essa configuração realmente funciona, porque posso ir em config.xml e alterar <useSecurity> para false para desabilitar todos os requisitos de login (e reiniciar), depois voltar para as configurações e reaplicar essas configurações configurações, caso em que imediatamente me pede para entrar e meu nome de usuário e senha são aceitos!

Eu verifiquei os logs e não vejo nada relevante.

Eu também sei que pwauth está funcionando bem, já que eu posso fazer login em um shell como o usuário Jenkins e executar pwauth manualmente e ele funciona como esperado.

Como posso descobrir por que essa configuração parece funcionar apenas até o servidor ser reiniciado?

    
por Moshe Katz 26.07.2018 / 04:48

0 respostas