The PAM Helper is an executable that can be invoked by pam_exec.so
to perform authentication without being dynamically linked to libpam.
This is exceptionally useful for environments where dynamic linking is
not practical. It also means that the code does not need to be linked
to libpam, which allows it to be better tested. Finally, by being
pure Go, it is not necessary to import unsafe or C and write FFI
code.
This executable provides the authentication and account types.
Session logging information is left as an excercise to the reader, and
changing authentication secrets is something which must be handled by
the NetAuth tooling directly.