スポンサーリンク

このドキュメントの内容は、以下の通りです。

はじめに


PAM プログラミングで、ユーザに入力を求める場合、 pam_prompt() を使います。

サンプルコード


pam_prompt () で得た値を検証し、認証の成功、失敗を決めます。

認証を失敗させる場合には、 PAM_AUTH_ERR を返します。
成功なら PAM_SUCCESS を返します。

PAM_AUTH_ERR を返すと、3回自動的にリトライされました。

#define PAM_SM_AUTH

#define PAM_SM_ACCOUNT
#define PAM_SM_AUTH
#define PAM_SM_PASSWORD
#define PAM_SM_SESSION

#include <syslog.h>

#include <security/pam_modules.h>
#include <security/pam_modutil.h>
#include <security/_pam_macros.h>
#include <security/pam_ext.h>


PAM_EXTERN
int pam_sm_authenticate(pam_handle_t *pamh, int flags,
		int argc, const char **argv)
{
	int             retval = PAM_IGNORE;
	const char      *user   = NULL;
	pam_syslog (pamh, LOG_ERR, "%s", __func__);

	char *resp[2] = { NULL, NULL };
	retval = pam_prompt (pamh, PAM_PROMPT_ECHO_OFF, &resp[0], "%s", "Code: ");

	// ここで、 resp[0] の中身で処理。
	if ( /* 認証条件 * / ) {
		// OK
	} else {
		// エラー
		retval = PAM_AUTH_ERR;
	}

	return retval;
}


スポンサーリンク
スポンサーリンク
 
いつもシェア、ありがとうございます!


もっと情報を探しませんか?

関連記事

最近の記事

人気のページ

スポンサーリンク
 

過去ログ

2020 : 01 02 03 04 05 06 07 08 09 10 11 12
2019 : 01 02 03 04 05 06 07 08 09 10 11 12
2018 : 01 02 03 04 05 06 07 08 09 10 11 12
2017 : 01 02 03 04 05 06 07 08 09 10 11 12
2016 : 01 02 03 04 05 06 07 08 09 10 11 12
2015 : 01 02 03 04 05 06 07 08 09 10 11 12
2014 : 01 02 03 04 05 06 07 08 09 10 11 12
2013 : 01 02 03 04 05 06 07 08 09 10 11 12
2012 : 01 02 03 04 05 06 07 08 09 10 11 12
2011 : 01 02 03 04 05 06 07 08 09 10 11 12
2010 : 01 02 03 04 05 06 07 08 09 10 11 12
2009 : 01 02 03 04 05 06 07 08 09 10 11 12
2008 : 01 02 03 04 05 06 07 08 09 10 11 12
2007 : 01 02 03 04 05 06 07 08 09 10 11 12
2006 : 01 02 03 04 05 06 07 08 09 10 11 12
2005 : 01 02 03 04 05 06 07 08 09 10 11 12
2004 : 01 02 03 04 05 06 07 08 09 10 11 12
2003 : 01 02 03 04 05 06 07 08 09 10 11 12

サイト

Vim入門

C言語入門

C++入門

JavaScript/Node.js入門

Python入門

FreeBSD入門

Ubuntu入門

セキュリティ入門

パソコン自作入門

ブログ

トップ


プライバシーポリシー