AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • Início
  • system&network
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • Início
  • system&network
    • Recentes
    • Highest score
    • tags
  • Ubuntu
    • Recentes
    • Highest score
    • tags
  • Unix
    • Recentes
    • tags
  • DBA
    • Recentes
    • tags
  • Computer
    • Recentes
    • tags
  • Coding
    • Recentes
    • tags
Início / server / Perguntas / 644226
Accepted
pgoetz
pgoetz
Asked: 2014-11-14 14:42:29 +0800 CST2014-11-14 14:42:29 +0800 CST 2014-11-14 14:42:29 +0800 CST

Como funcionam as opções avançadas do PAM, exatamente?

  • 772

Tenho lido tudo o que posso encontrar no PAM (por exemplo , http://wpollock.com/AUnix2/PAM-Help.htm ), no entanto, ainda estou confuso sobre a precisão com que as opções avançadas devem funcionar. Por exemplo, toda referência diz isso:

Each of the four control-flag keywords (required, requisite, sufficient, and
optional) have an equivalent expression in terms of the [...] syntax:

required
    [success=ok new_authtok_reqd=ok ignore=ignore default=bad]

Meu entendimento é que os módulos podem retornar uma variedade de tokens e que a ação associada a cada token é descrita no arquivo de configuração. Com base nesse entendimento, o que

new_authtok_reqd=ok

tem a ver com o sinalizador de controle necessário ? Qual é o significado/propósito de

ignore=ignore ?

Isso por si só:

success=ok

é o que eu acho que corresponde ao comportamento exigido , mas não

default=bad

significa que se o módulo retornar qualquer outro token de ação, o módulo falhará? O token action=value success=ok é substituído por default=bad ou vice-versa? Qual tem precedência? Não está claro em nada que li.

Mais geralmente, suponha que eu tenha algo como

[success=done default=die]

O que acontece se o módulo retornar sucesso e um outro token?

Por fim, também não consigo encontrar a resposta para esta pergunta: todo valor pode ok, done, bad, die, ignore, reset, Nser associado a qualquer ação? O que significaria mesmo dizer

[default=done] ?
linux
  • 2 2 respostas
  • 12336 Views

2 respostas

  • Voted
  1. ua2b
    2014-11-14T19:19:50+08:002014-11-14T19:19:50+08:00

    Os módulos PAM têm mais de 30 valores de retorno diferentes que são mapeados para aprovação ou reprovação de toda a pilha PAM, conforme declarado pela configuração.

    Vale ressaltar que um módulo PAM pode se comportar diferente dependendo do contexto (autenticação, conta, senha, sessão) em que é chamado.

    Os pares de valor = ação entre colchetes descrevem qual ação tomar para cada valor de retorno possível do módulo PAM.

    Uma boa explicação de valores e ações pode ser encontrada lendo atentamente a página acima mencionada até o final.

    • success=oko módulo retornou com sucesso, isso será honrado na avaliação de toda a pilha PAM, se nenhum módulo anterior falhou, considere passar para toda a pilha até este ponto.
    • new_authtok_reqd=okum novo token de autenticação é necessário. Por exemplo, no contexto da sessão , isso pode fazer com que o usuário altere sua senha.
    • ignore=ignoreo módulo PAM quer que seu resultado seja ignorado, então nós o ignoramos.
    • default=badtodos os outros resultados fazem com que a pilha PAM falhe (mas não pare de processar os módulos subseqüentes)

    O que acontece se o módulo retornar sucesso e um outro token?

    Os módulos PAM retornam apenas um único valor.

    Por fim, também não consigo encontrar a resposta para esta pergunta: todo valor ok, done, bad, die, ignore, reset, N pode ser associado a qualquer ação? O que significaria mesmo dizer

    [default=done] ?

    Isso significa: qualquer token não mencionado aqui (ou seja, todos os tokens possíveis) encerra o processamento da pilha PAM e retorna o resultado até o momento.

    • 8
  2. Best Answer
    pgoetz
    2014-11-20T13:11:21+08:002014-11-20T13:11:21+08:00

    Em primeiro lugar, ua2b forneceu a resposta crítica que estava causando minha confusão:

    Os módulos PAM só podem retornar um único valor de status por chamada

    Como os módulos só podem retornar um código de status, fica claro que a ação para qualquer conjunto de parênteses de valor/ação não é ambígua. Achei que um módulo poderia retornar vários códigos de status de uma só vez ( com base na leitura de vários documentos ), daí minha confusão. Espanta-me que nenhuma referência que encontrei, incluindo a documentação oficial , seja capaz de afirmar isso claramente. Em vez disso, encontram-se comentários como este:

    " Um ou mais códigos de status são retornados por cada rotina PAM-API. "

    Isso para mim parece que um módulo pode retornar vários códigos de status. Foi somente depois de ler o guia do desenvolvedor do módulo PAM que percebi que os códigos de status são retornados como um único número inteiro que mapeia para os possíveis valores de código de status conforme descrito aqui (Sim, a mesma referência!)

    Minha próxima pergunta tinha a ver com igualar a palavra-chave do sinalizador de controle de estilo antigo necessária com esta sintaxe de colchetes:

    [success=ok new_authtok_reqd=ok ignore=ignore default=bad]
    

    Essa equivalência é repetida em todo lugar, por exemplo aqui .

    Acontece que isso é um absurdo completo e absoluto. Os códigos de status retornados por qualquer módulo em particular podem diferir e diferir novamente dependendo do tipo de grupo de gerenciamento (por exemplo, autenticação versus conta).

    Tomemos, por exemplo, o módulo pam_securetty . Este módulo fornece apenas o tipo de autenticação e tem os seguintes valores de retorno de código de status possíveis:

    PAM_SUCCESS
    PAM_AUTH_ERR
    PAM_INCOMPLETE
    PAM_SERVICE_ERR
    PAM_USER_UNKNOWN
    

    O ignore=ignoremapeamento de valor/ação consequentemente parece ser inútil, já que este módulo nunca retorna ignore. Nesse caso, você pode querer considerar o uso user_unknown=ignorese de fato quiser ignorar o resultado se o usuário não puder ser encontrado.

    • 5

relate perguntas

  • Como descobrir detalhes sobre hardware na máquina Linux?

Sidebar

Stats

  • Perguntas 205573
  • respostas 270741
  • best respostas 135370
  • utilizador 68524
  • Highest score
  • respostas
  • Marko Smith

    Você pode passar usuário/passar para autenticação básica HTTP em parâmetros de URL?

    • 5 respostas
  • Marko Smith

    Ping uma porta específica

    • 18 respostas
  • Marko Smith

    Verifique se a porta está aberta ou fechada em um servidor Linux?

    • 7 respostas
  • Marko Smith

    Como automatizar o login SSH com senha?

    • 10 respostas
  • Marko Smith

    Como posso dizer ao Git para Windows onde encontrar minha chave RSA privada?

    • 30 respostas
  • Marko Smith

    Qual é o nome de usuário/senha de superusuário padrão para postgres após uma nova instalação?

    • 5 respostas
  • Marko Smith

    Qual porta o SFTP usa?

    • 6 respostas
  • Marko Smith

    Linha de comando para listar usuários em um grupo do Windows Active Directory?

    • 9 respostas
  • Marko Smith

    O que é um arquivo Pem e como ele difere de outros formatos de arquivo de chave gerada pelo OpenSSL?

    • 3 respostas
  • Marko Smith

    Como determinar se uma variável bash está vazia?

    • 15 respostas
  • Martin Hope
    Davie Ping uma porta específica 2009-10-09 01:57:50 +0800 CST
  • Martin Hope
    kernel O scp pode copiar diretórios recursivamente? 2011-04-29 20:24:45 +0800 CST
  • Martin Hope
    Robert ssh retorna "Proprietário incorreto ou permissões em ~/.ssh/config" 2011-03-30 10:15:48 +0800 CST
  • Martin Hope
    Eonil Como automatizar o login SSH com senha? 2011-03-02 03:07:12 +0800 CST
  • Martin Hope
    gunwin Como lidar com um servidor comprometido? 2011-01-03 13:31:27 +0800 CST
  • Martin Hope
    Tom Feiner Como posso classificar a saída du -h por tamanho 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    Noah Goodrich O que é um arquivo Pem e como ele difere de outros formatos de arquivo de chave gerada pelo OpenSSL? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent Como determinar se uma variável bash está vazia? 2009-05-13 09:54:48 +0800 CST

Hot tag

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • Início
  • Perguntas
    • Recentes
    • Highest score
  • tag
  • help

Footer

AskOverflow.Dev

About Us

  • About Us
  • Contact Us

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve