関数 | |
void | _log_err (int, const char *,...) |
int | set_ctrl (int, int, const char **) |
void | _cleanup (pam_handle_t *, void *, int) |
char * | smbpXstrDup (const char *) |
void | _cleanup_failures (pam_handle_t *, void *, int) |
BOOL | strequal (const char *, const char *) |
Compare 2 strings. | |
smb_passwd * | _my_get_smbpwnam (FILE *, const char *, BOOL *, BOOL *, long *) |
int | _smb_verify_password (pam_handle_t *pamh, struct samu *sampass, const char *p, unsigned int ctrl) |
int | _smb_get_user (pam_handle_t *, unsigned int, const char *, const char **) |
int | _smb_blankpasswd (unsigned int, struct samu *) |
int | _smb_read_password (pam_handle_t *, unsigned int, const char *, const char *, const char *, const char *, char **) |
int | _pam_smb_approve_pass (pam_handle_t *, unsigned int, const char *, const char *) |
void _log_err | ( | int | , | |
const char * | , | |||
... | ||||
) |
参照元 _cleanup_failures()・_smb_add_user()・converse()・pam_sm_acct_mgmt()・pam_sm_authenticate()・pam_sm_chauthtok()・set_ctrl()・smbpXstrDup().
00072 { 00073 va_list args; 00074 00075 va_start( args, format ); 00076 openlog( "PAM_smbpass", LOG_CONS | LOG_PID, LOG_AUTH ); 00077 vsyslog( err, format, args ); 00078 va_end( args ); 00079 closelog(); 00080 }
int set_ctrl | ( | int | , | |
int | , | |||
const char ** | ||||
) |
参照先 _log_err()・dyn_CONFIGFILE・SMB_Ctrls::flag・SMB_Ctrls::mask・secrets_init()・servicesf・smb_args.
参照元 pam_sm_acct_mgmt()・pam_sm_authenticate()・pam_sm_chauthtok().
00130 { 00131 int i = 0; 00132 const char *service_file = dyn_CONFIGFILE; 00133 unsigned int ctrl; 00134 00135 ctrl = SMB_DEFAULTS; /* the default selection of options */ 00136 00137 /* set some flags manually */ 00138 00139 /* A good, sane default (matches Samba's behavior). */ 00140 set( SMB__NONULL, ctrl ); 00141 00142 /* initialize service file location */ 00143 service_file=servicesf; 00144 00145 if (flags & PAM_SILENT) { 00146 set( SMB__QUIET, ctrl ); 00147 } 00148 00149 /* Run through the arguments once, looking for an alternate smb config 00150 file location */ 00151 while (i < argc) { 00152 int j; 00153 00154 for (j = 0; j < SMB_CTRLS_; ++j) { 00155 if (smb_args[j].token 00156 && !strncmp(argv[i], smb_args[j].token, strlen(smb_args[j].token))) 00157 { 00158 break; 00159 } 00160 } 00161 00162 if (j == SMB_CONF_FILE) { 00163 service_file = argv[i] + 8; 00164 } 00165 i++; 00166 } 00167 00168 /* Read some options from the Samba config. Can be overridden by 00169 the PAM config. */ 00170 if(lp_load(service_file,True,False,False,True) == False) { 00171 _log_err( LOG_ERR, "Error loading service file %s", service_file ); 00172 } 00173 00174 secrets_init(); 00175 00176 if (lp_null_passwords()) { 00177 set( SMB__NULLOK, ctrl ); 00178 } 00179 00180 /* now parse the rest of the arguments to this module */ 00181 00182 while (argc-- > 0) { 00183 int j; 00184 00185 for (j = 0; j < SMB_CTRLS_; ++j) { 00186 if (smb_args[j].token 00187 && !strncmp(*argv, smb_args[j].token, strlen(smb_args[j].token))) 00188 { 00189 break; 00190 } 00191 } 00192 00193 if (j >= SMB_CTRLS_) { 00194 _log_err( LOG_ERR, "unrecognized option [%s]", *argv ); 00195 } else { 00196 ctrl &= smb_args[j].mask; /* for turning things off */ 00197 ctrl |= smb_args[j].flag; /* for turning things on */ 00198 } 00199 00200 ++argv; /* step to next argument */ 00201 } 00202 00203 /* auditing is a more sensitive version of debug */ 00204 00205 if (on( SMB_AUDIT, ctrl )) { 00206 set( SMB_DEBUG, ctrl ); 00207 } 00208 /* return the set of flags */ 00209 00210 return ctrl; 00211 }
void _cleanup | ( | pam_handle_t * | , | |
void * | , | |||
int | ||||
) |
char* smbpXstrDup | ( | const char * | ) |
参照先 _log_err().
参照元 _cleanup_failures().
00234 { 00235 register char *newstr = NULL; 00236 00237 if (x != NULL) { 00238 register int i; 00239 00240 for (i = 0; x[i]; ++i); /* length of string */ 00241 if ((newstr = SMB_MALLOC_ARRAY(char, ++i)) == NULL) { 00242 i = 0; 00243 _log_err( LOG_CRIT, "out of memory in smbpXstrDup" ); 00244 } else { 00245 while (i-- > 0) { 00246 newstr[i] = x[i]; 00247 } 00248 } 00249 x = NULL; 00250 } 00251 return newstr; /* return the duplicate or NULL on error */ 00252 }
void _cleanup_failures | ( | pam_handle_t * | , | |
void * | , | |||
int | ||||
) |
参照先 _cleanup()・_cleanup_failures()・_log_err()・_pam_delete()・_pam_smb_approve_pass()・_smb_blankpasswd()・_smb_read_password()・_smb_verify_password()・_pam_failed_auth::agent・converse()・_pam_failed_auth::count・expect()・_pam_failed_auth::id・make_remark()・name・nt_lm_owf_gen()・pdb_get_acct_ctrl()・pdb_get_nt_passwd()・pdb_get_user_sid()・pdb_get_username()・quiet・sid_to_uid()・smbpXstrDup()・uidtoname()・_pam_failed_auth::user.
参照元 _cleanup_failures().
BOOL strequal | ( | const char * | s1, | |
const char * | s2 | |||
) |
Compare 2 strings.
util_str.c の 283 行で定義されています。
参照先 StrCaseCmp().
参照元 _dfs_Remove()・_net_sam_logon_internal()・_reg_query_value()・_samr_get_dispenum_index()・_samr_lookup_domain()・_samr_set_aliasinfo()・_spoolss_getform()・_spoolss_getprinterdata()・_spoolss_setprinterdata()・_srv_net_sess_del()・_srv_net_share_add()・_srv_net_share_del()・_srv_net_share_set_info()・add_a_form()・add_afs_ace()・add_failed_connection_entry()・add_name_to_subnet()・add_trusted_domain()・ads_check_posix_schema_mapping()・ads_cleanup_expired_creds()・ads_dc_name()・ads_do_paged_search_args()・ads_generate_service_principal()・ads_get_gpo_list()・ads_gpo_prepare_local_store()・ads_init()・ads_keytab_add_entry()・ads_keytab_verify_ticket()・ads_ou_string()・ads_site_dn_for_machine()・ads_sitename_match()・afs_set_nt_acl()・announce_server()・api_pipe_bind_req()・api_RNetServerEnum()・api_RNetServerGetInfo()・api_SamOEMChangePassword()・assume_domain()・assume_own_realm()・call_trans2qfilepathinfo()・call_trans2qfsinfo()・canonicalize_ea_name()・cgi_load_variables()・cgi_waspost()・check_bind_req()・check_bind_response()・check_domain_match()・check_for_master_browser_fail()・check_magic()・check_master_browser_exists()・check_negative_conn_cache_timeout()・check_ntdomain_security()・check_samstrict_security()・check_share_sanity()・check_trustdomain_security()・check_winbind_security()・child_msg_offline()・child_msg_online()・cli_check_msdfs_proxy()・cli_cm_find()・cli_cm_get_mntpoint()・cli_cm_set_mntpoint()・cli_ns_check_server_type()・cli_resolve_path()・cli_session_setup_spnego()・cmd_help()・cmd_print()・cmd_seal()・cmd_sign()・cmd_spoolss_deletedriverex()・cmd_spoolss_enum_drivers()・cmd_spoolss_setprinterdata()・copy_fn()・copy_id21_to_sam_passwd()・count_fn()・create_local_private_krb5_conf_for_domain()・create_workgroup()・delete_printer_key()・display_finfo()・do_cd()・do_command()・do_list_helper()・do_mget()・dptr_closepath()・driver_arch_fetch_values()・drv_file_in_use()・ea_list_union()・elog_open()・elog_open_tdb()・elog_validate_logname()・enum_dom_groups()・equal_parameter()・eventlog_add_source()・expect()・fcb_or_dos_open()・fetch_domain_info()・fetch_reg_values_specific()・fill_service_values()・fill_share_info()・fill_svc_config()・fillup_pw_field()・find_browser_in_lmb_cache()・find_domain_from_name_noinit()・find_idmap_domain_from_sid()・find_lookup_domain_from_name()・find_memory_creds_by_name()・find_nss_domain()・find_server_in_workgroup()・find_service()・find_service_by_name()・find_valuename_index()・find_workgroup_on_subnet()・flush_negative_conn_cache_for_domain()・fname_equal()・generate_krb5_ccache()・get_a_builtin_ntform()・get_alloc_methods()・get_audit_category_from_param()・get_ccache_by_username()・get_common_service_dispname()・get_dc_list()・get_dc_name()・get_dcs()・get_group_map_from_ntname()・get_lanman2_dir_entry()・get_longvar_val()・get_methods()・get_print_db_byname()・get_printer_subkeys()・get_privilege_dispname()・get_sec_channel_type()・get_server_info()・get_share_type()・gpo_process_a_gpo()・gpo_sync_func()・grant_privilege_by_name()・guid_string_to_name()・idmap_ad_initialize()・idmap_init()・init_bitmap()・init_pipe_handle_list()・init_srv_sess_info_1()・initiate_myworkgroup_startup()・internal_resolve_name()・interpret_protocol()・is_default()・is_executable()・is_myname()・is_myname_or_ipaddr()・is_myworkgroup()・is_our_machine_account()・is_our_primary_domain()・is_owner()・is_trusted_domain_situation()・key_driver_fetch_keys()・key_printers_fetch_keys()・ldapsam_delete_entry()・list_match()・load_usershare_service()・lookup_builtin_name()・lookup_global_sam_name()・lookup_name()・lookup_printerkey()・lookup_wellknown_name()・lp_add_home()・lp_enum()・lp_set_enum_parm()・main()・make_connection()・make_connection_snum()・make_pw_chat()・make_user_info_map()・manage_ntlm_change_password_1_request()・manage_ntlm_server_1_request()・mangled_equal()・map_filename()・map_to_os2_driver()・map_username()・matchname()・move_driver_to_download_area()・msg_failed_to_go_online()・msg_force_tdis()・msg_try_to_go_online()・name_to_guid_string()・named_pipe()・net_ads_join()・net_copy_driverfile()・net_idmap_secret()・net_lookup_dc()・net_rap_server()・net_sam_do_list()・net_sam_policy_set()・net_sam_set_pwdmustchangenow()・net_sam_set_userflag()・net_sh_process()・net_status_sessions()・net_status_shares()・nmb_name_equal()・nmbd_message_election()・nss_get_backend()・nt_open_pipe()・only_ipaddrs_in_list()・parse_dest()・parse_dfs_path()・parse_gpttmpl()・parse_lpq_aix()・parse_lpq_bsd()・parse_lpq_hpux()・parse_lpq_lprng()・parse_lpq_nt()・parse_lpq_os2()・parse_lpq_plp()・parse_lpq_qnx()・parse_lpq_sysv()・pcap_cache_reload()・pcap_printername_ok()・pjob_store_notify()・popt_common_credentials_callback()・print_domain_groups()・print_domain_users()・print_notify_send_messages_to_printer()・printer_driver_files_in_use()・printer_driver_in_use()・process_announce_request()・process_browse_packet()・process_cmd()・process_dgram()・process_election()・process_get_backup_list_request()・process_host_announce()・process_lanman_packet()・process_lm_announce_request()・process_lm_host_announce()・process_name_release_request()・process_node_status_request()・process_tok()・process_workgroup_announce()・py_smb_tconx()・receive_getdc_response()・reg_split_hive()・register_name_response()・regsubkey_ctr_delkey()・regsubkey_ctr_key_exists()・regval_ctr_delvalue()・regval_ctr_getvalue()・regval_ctr_key_exists()・rename_internals()・rename_internals_fsp()・reply_copy()・reply_negprot()・reply_open_pipe_and_X()・reply_spnego_kerberos()・resolve_lmhosts()・revoke_privilege_by_name()・rpc_audit_set_internal()・rpc_auth_verifier_chk()・rpc_group_list_internals()・rpc_printer_migrate_settings_internals()・rpc_rights_list_internal()・rpc_sh_user_flag_edit_internals()・rpc_share_migrate_files_internals()・run_test()・sam_account_from_delta()・sam_account_ok()・samba_private_attr_name()・samu_set_unix_internal()・se_priv_from_name()・SearchDir()・send_notify2_changes()・send_spoolss_notify2_msg()・server_cryptkey()・set_local_machine_name()・set_netbios_aliases()・set_printer_hnd_name()・set_socket_options()・set_user_info_21()・set_workgroup_local_master_browser_name()・setup_return_cc_name()・share_sanity_checks()・smb_delete_user()・smb_ldap_setup_conn()・smb_pam_start()・smbc_getatr()・smbldap_check_root_dse()・smbldap_set_mod()・snapin_guid_string_to_name()・stored_sitename_changed()・string_match()・talktochild()・test_one()・trustdom_recv()・unix_wild_match()・unlink_internals()・unpack_values()・update_printer()・user_in_list()・validate_group()・wbinfo_domain_info()・wbinfo_lookuprids()・winbindd_dual_list_trusted_domains()・winbindd_dual_pam_auth_cached()・winbindd_getgrnam()・winbindd_getpwnam()・winbindd_list_groups()・winbindd_list_users()・winbindd_setpwent_internal()・wins_process_name_query_request()・write_this_workgroup_name()・writetarheader().
00284 { 00285 if (s1 == s2) 00286 return(True); 00287 if (!s1 || !s2) 00288 return(False); 00289 00290 return(StrCaseCmp(s1,s2)==0); 00291 }
struct smb_passwd* _my_get_smbpwnam | ( | FILE * | , | |
const char * | , | |||
BOOL * | , | |||
BOOL * | , | |||
long * | ||||
) |
int _smb_verify_password | ( | pam_handle_t * | pamh, | |
struct samu * | sampass, | |||
const char * | p, | |||
unsigned int | ctrl | |||
) |
int _smb_get_user | ( | pam_handle_t * | , | |
unsigned | int, | |||
const char * | , | |||
const char ** | ||||
) |
int _smb_blankpasswd | ( | unsigned | int, | |
struct samu * | ||||
) |
int _smb_read_password | ( | pam_handle_t * | , | |
unsigned | int, | |||
const char * | , | |||
const char * | , | |||
const char * | , | |||
const char * | , | |||
char ** | ||||
) |
int _pam_smb_approve_pass | ( | pam_handle_t * | , | |
unsigned | int, | |||
const char * | , | |||
const char * | ||||
) |