A ordem em que pam_exec
e pam_selinux
são invocados é importante. Página de homens para pam_selinux
notas:
Adding pam_selinux into the PAM stack might disrupt behavior of other PAM modules which execute applications. To avoid that, pam_selinux.so open should be placed after such modules in the PAM stack, and pam_selinux.so close should be placed before them. When such a placement is not feasible, pam_selinux.so restore could be used to temporary restore original security contexts.
Da mesma forma, Dan Walsh escreve sobre o assunto:
If you are going to add a pam_module that would exec commands that the user would not be allowed to execute, for example pam_mount, it should be added before the pam_selinux.so open command. If you are adding a pam_module that execs command a user could execute, then you probably want these after the pam_selinux.so open line.
Observe também que o seu script tem atualmente um contexto de segurança de user_home_t
, que provavelmente não é compatível com a política padrão (os contextos de arquivos são preservados quando o arquivo é movido; se você criou o arquivo no diretório inicial, ele será preservado o contexto original). Você provavelmente deve usar o contexto bin_t
padrão. Para restaurar o contexto padrão:
restorecon /usr/local/bin/loginformer.py
Se o seu script não fizer nada muito especial, colocar pam_exec
antes de pam_selinux
e restring o contexto deve ser suficiente para corrigir o seu problema.