Bugzilla – Attachment 435099 Details for
Bug 700053
support for pam_systemd in pam-config
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Requests
|
Forgot Password
[patch]
add support for "debug" option
pam_systemd.patch (text/plain), 5.94 KB, created by
Frederic Crozat
on 2011-06-17 12:34:27 UTC
(
hide
)
Description:
add support for "debug" option
Filename:
MIME Type:
Creator:
Frederic Crozat
Created:
2011-06-17 12:34:27 UTC
Size:
5.94 KB
patch
obsolete
>Index: pam-config-0.79/src/Makefile.am >=================================================================== >--- pam-config-0.79.orig/src/Makefile.am >+++ pam-config-0.79/src/Makefile.am >@@ -30,7 +30,7 @@ pam_config_SOURCES = pam-config.c load_c > mod_pam_group.c mod_pam_time.c mod_pam_ssh.c mod_pam_succeed_if.c \ > mod_pam_csync.c mod_pam_fp.c mod_pam_fprint.c mod_pam_pwhistory.c \ > mod_pam_selinux.c mod_pam_gnome_keyring.c mod_pam_passwdqc.c \ >- mod_pam_exec.c mod_pam_sss.c mod_pam_fprintd.c >+ mod_pam_exec.c mod_pam_sss.c mod_pam_fprintd.c mod_pam_systemd.c > > noinst_HEADERS = pam-config.h pam-module.h > >Index: pam-config-0.79/src/mod_pam_systemd.c >=================================================================== >--- /dev/null >+++ pam-config-0.79/src/mod_pam_systemd.c >@@ -0,0 +1,128 @@ >+/* Copyright (C) 2011 Frederic Crozat >+ Author: Frederic Crozat <fcrozat@suse.com> >+ >+ This program is free software; you can redistribute it and/or modify >+ it under the terms of the GNU General Public License version 2 as >+ published by the Free Software Foundation. >+ >+ This program is distributed in the hope that it will be useful, >+ but WITHOUT ANY WARRANTY; without even the implied warranty of >+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the >+ GNU General Public License for more details. >+ >+ You should have received a copy of the GNU General Public License >+ along with this program; if not, write to the Free Software Foundation, >+ Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ >+ >+#ifdef HAVE_CONFIG_H >+#include <config.h> >+#endif >+ >+#include <stdio.h> >+#include <string.h> >+#include <ctype.h> >+#include <stdlib.h> >+ >+#include "pam-config.h" >+#include "pam-module.h" >+ >+static int >+write_config_systemd (pam_module_t *this, enum write_type op, FILE *fp) >+{ >+ option_set_t *opt_set = this->get_opt_set (this, op); >+ char *opt; >+ >+ if (debug) >+ debug_write_call (this, op); >+ >+ if (op != SESSION || !opt_set->is_enabled (opt_set, "is_enabled")) >+ return 0; >+ >+ fprintf (fp, "session\toptional\tpam_systemd.so"); >+ >+ if (opt_set->is_enabled (opt_set, "debug")) >+ fprintf(fp, " debug"); >+ if ((opt = opt_set->get_opt (opt_set, "create_session"))) >+ fprintf(fp, " create-session=%s",opt); >+ if ((opt = opt_set->get_opt (opt_set, "kill_session"))) >+ fprintf(fp, " kill-session=%s",opt); >+ if ((opt = opt_set->get_opt (opt_set, "kill_user"))) >+ fprintf(fp, " kill-user=%s",opt); >+ if ((opt = opt_set->get_opt (opt_set, "kill_only_users"))) >+ fprintf(fp, " kill-only-users=%s",opt); >+ if ((opt = opt_set->get_opt (opt_set, "kill_exclude_users"))) >+ fprintf(fp, " kill-exclude-users=%s",opt); >+ if ((opt = opt_set->get_opt (opt_set, "controllers"))) >+ fprintf(fp, " controllers=%s",opt); >+ if ((opt = opt_set->get_opt (opt_set, "reset_controllers"))) >+ fprintf(fp, " reset-controllers=%s",opt); >+ >+ fprintf(fp, "\n"); >+ return 0; >+ >+} >+ >+static int >+parse_config_systemd (pam_module_t *this, char *args, write_type_t type) >+{ >+ option_set_t *opt_set = this->get_opt_set (this, type); >+ >+ if (debug) >+ printf ("**** parse_config_%s (%s): '%s'\n", this->name, >+ type2string (type), args ? args : ""); >+ >+ opt_set->enable (opt_set, "is_enabled", TRUE); >+ >+ while (args && strlen (args) > 0) >+ { >+ char *cp = strsep (&args, " \t"); >+ >+ if (args) >+ while (isspace ((int) *args)) >+ ++args; >+ >+ if (strcmp (cp, "debug") == 0) >+ opt_set->enable (opt_set, "debug", TRUE); >+ else if (strncmp (cp, "create-session=", 15) == 0) >+ opt_set->set_opt (opt_set, "create_session", strdup(&cp[15])); >+ else if (strncmp (cp, "kill-session=", 13) == 0) >+ opt_set->set_opt (opt_set, "kill_session", strdup(&cp[13])); >+ else if (strncmp (cp, "kill-user=", 10) == 0) >+ opt_set->set_opt (opt_set, "kill_user", strdup(&cp[10])); >+ else if (strncmp (cp, "kill-only-users=", 16) == 0) >+ opt_set->set_opt (opt_set, "kill_only_users", strdup (&cp[16])); >+ else if (strncmp (cp, "kill-exclude-users=", 19) == 0) >+ opt_set->set_opt (opt_set, "kill_exclude_users", strdup (&cp[19])); >+ else if (strncmp (cp, "controllers=", 12) == 0) >+ opt_set->set_opt (opt_set, "controllers", strdup (&cp[12])); >+ else if (strncmp (cp, "reset-controllers=", 18) == 0) >+ opt_set->set_opt (opt_set, "reset_controllers", strdup (&cp[18])); >+ else >+ print_unknown_option_error ("pam_systemd.so", cp); >+ } >+ return 1; >+} >+ >+GETOPT_START_1(SESSION) >+GETOPT_END_1(SESSION) >+ >+PRINT_ARGS("systemd") >+PRINT_XMLHELP("systemd") >+ >+/* ---- contruct module object ---- */ >+DECLARE_BOOL_OPTS_2 (is_enabled, debug); >+DECLARE_STRING_OPTS_7 (create_session, kill_session, kill_user, kill_only_users, kill_exclude_users, controllers, reset_controllers); >+DECLARE_OPT_SETS; >+ >+static module_helptext_t helptext[] = {{NULL, NULL, NULL}}; >+ >+ >+/* at last construct the complete module object */ >+pam_module_t mod_pam_systemd = { "pam_systemd.so", opt_sets, helptext, >+ &parse_config_systemd, >+ &def_print_module, >+ &write_config_systemd, >+ &get_opt_set, >+ &getopt, >+ &print_args, >+ &print_xmlhelp}; >Index: pam-config-0.79/src/supported-modules.h >=================================================================== >--- pam-config-0.79.orig/src/supported-modules.h >+++ pam-config-0.79/src/supported-modules.h >@@ -39,6 +39,7 @@ extern pam_module_t mod_pam_cryptpass; > extern pam_module_t mod_pam_csync; > extern pam_module_t mod_pam_loginuid; > extern pam_module_t mod_pam_mount; >+extern pam_module_t mod_pam_systemd; > > pam_module_t *common_module_list[] = { > &mod_pam_apparmor, >@@ -67,6 +68,7 @@ pam_module_t *common_module_list[] = { > &mod_pam_ssh, > &mod_pam_sss, > &mod_pam_succeed_if, >+ &mod_pam_systemd, > &mod_pam_thinkfinger, > &mod_pam_umask, > &mod_pam_unix, >@@ -143,6 +145,7 @@ static pam_module_t *module_list_session > &mod_pam_nam, > &mod_pam_umask, > &mod_pam_ssh, >+ &mod_pam_systemd, > &mod_pam_selinux, > &mod_pam_gnome_keyring, > &mod_pam_exec,
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
Actions:
View
|
Diff
Attachments on
bug 700053
:
434561
|
434564
|
434571
|
435099
|
446170