Como você obtém o 'pam_succeed_if.so' para reconhecer o usuário 'service'?

2

Eu tenho um sistema Linux com um usuário chamado service . Estou usando o módulo pam_succeed_if.so para corresponder a esse nome de usuário. Por exemplo:

auth      required      pam_succeed_if.so user = service

Mas não corresponderá a um nome de usuário de service , aparentemente porque também é um campo aceito por pam_succeed_if.so . Na página man (editada para ênfase):

Available fields are user, uid, gid, shell, home, ruser, rhost, tty and service

Como você escapa valores que correspondem aos nomes dos campos?

Mais solução de problemas:

Eu alterei a opção debug para pam_succeed_if.so e está convertendo o nome de usuário service para login :

login: pam_succeed_if(login:auth): 'user' resolves to 'login'

E esta é a configuração do PAM para o login, /etc/pam.d/login .

    
por CivFan 21.06.2015 / 01:55

1 resposta

2

pam_succeed_if.so converte o percentual passado emuser para o valor field , se esse valor existir. Por exemplo, usando o usuário shell :

login: pam_succeed_if(login:auth): 'user' resolves to '/bin/bash'

Eu não sei como evitar que isso seja claramente uma decisão indesejada. Mas há uma solução alternativa que funcionará para quase todos.

Basta verificar o valor resolvido, em vez do valor real.

Exemplos

Para corresponder ao usuário service na configuração login do PAM:

auth      required      pam_succeed_if.so user = login

Para corresponder ao usuário service na configuração sshd do PAM:

auth      required      pam_succeed_if.so user = sshd

Para corresponder ao usuário shell , cujo shell configurado é /bin/bash :

auth      required      pam_succeed_if.so user = /bin/bash
    
por 21.06.2015 / 02:49

Tags