
See the comments in pam_members.c in detail Signed-off-by: Shu Ming <shuming@linux.vnet.ibm.com> --- src/kimchi/pamauth_acc.py | 51 +++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 51 insertions(+) create mode 100644 src/kimchi/pamauth_acc.py diff --git a/src/kimchi/pamauth_acc.py b/src/kimchi/pamauth_acc.py new file mode 100644 index 0000000..da6a4c2 --- /dev/null +++ b/src/kimchi/pamauth_acc.py @@ -0,0 +1,51 @@ +# An example to demo how pam_members.so is used +# See the comments in pam_members.c +#!/usr/bin/env python + +import sys +import PAM + +if __name__ == '__main__': + + if len(sys.argv) == 2: + user = sys.argv[1] + else: + user = None + + auth = PAM.pam() + auth.start('vmadmin') + + if user != None: + auth.set_item(PAM.PAM_USER, user) + + auth.set_userdata("vmadmin data") + + try: + auth.acct_mgmt() + except PAM.error, (resp, code): + print 'Not vmadmin' + print 'Go away! (%s)' % resp + except: + print 'Internal error' + else: + print 'Good to go!' + + service = 'vmusr' + auth = PAM.pam() + auth.start('vmuser') + + if user != None: + auth.set_item(PAM.PAM_USER, user) + + auth.set_userdata("vmuser data") + + try: + auth.acct_mgmt() + except PAM.error, (resp, code): + print 'Not vmuser' + print 'Go away! (%s)' % resp + except: + print 'Internal error' + else: + print 'Good to go!' + -- 1.8.1.4