Page MenuHomeFreeBSD

Add expose_authtok option to pam_exec(8).
ClosedPublic

Authored by munro_ip9.org on Jul 7 2018, 11:26 AM.
Tags
None
Referenced Files
F163864034: D16171.diff
Sun, Jul 26, 4:57 PM
F163787271: D16171.diff
Sun, Jul 26, 12:47 AM
Unknown Object (File)
Sat, Jul 25, 6:07 PM
Unknown Object (File)
Fri, Jul 24, 7:11 PM
Unknown Object (File)
Thu, Jul 23, 1:57 PM
Unknown Object (File)
Wed, Jul 22, 11:10 PM
Unknown Object (File)
Mon, Jul 20, 3:27 AM
Unknown Object (File)
Mon, Jul 13, 4:31 AM

Details

Summary

For compatibility with Linux PAM's pam_exec module, allow the password to be optionally passed to the executed program's stdin.

Test Plan

Install "pamtester" from pkg/ports.

Create an executable script my_script.sh containing:

#!/bin/sh
read password
if [ "$PAM_USER" == "abc" ] && [ "$password" == "123" ] ; then
  exit 0
else
  exit 1
fi

Create /etc/pam.d/my-service containing:

auth required /path/to/pam_exec.so expose_authtok /path/to/my_script.sh
account required pam_permit.so

Now run:

pamtester my-service abc authenticate

It waits for a password; entering "123" succeeds, anything else fails.

Diff Detail

Lint
Lint Skipped
Unit
Tests Skipped

Event Timeline

munro_ip9.org edited the summary of this revision. (Show Details)
munro_ip9.org edited the test plan for this revision. (Show Details)

Added handling for EAGAIN on write() (not sure if that case is reachable).

des accepted this revision.
des edited reviewers, added: des; removed: manpages.
This revision is now accepted and ready to land.Aug 14 2018, 12:11 AM