Changeset 740 for vendor/current/source4/utils
- Timestamp:
- Nov 14, 2012, 12:59:34 PM (13 years ago)
- Location:
- vendor/current/source4/utils
- Files:
-
- 2 added
- 17 deleted
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
vendor/current/source4/utils/man/ntlm_auth.1.xml
r414 r740 1 1 <?xml version="1.0" encoding="iso-8859-1"?> 2 <!DOCTYPE refentry PUBLIC "-// Samba-Team//DTD DocBook V4.2-Based Variant V1.0//EN" "http://www.samba.org/samba/DTD/samba-doc">2 <!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.2//EN" "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd"> 3 3 <refentry id="ntlm-auth.1"> 4 4 … … 204 204 </varlistentry> 205 205 206 &popt.common.samba;207 &stdarg.help;208 209 206 </variablelist> 210 207 </refsect1> -
vendor/current/source4/utils/ntlm_auth.c
r414 r740 25 25 #include "system/filesys.h" 26 26 #include "lib/cmdline/popt_common.h" 27 #include "lib/ldb/include/ldb.h"27 #include <ldb.h> 28 28 #include "auth/credentials/credentials.h" 29 29 #include "auth/gensec/gensec.h" … … 212 212 213 213 nt_status = ntlm_password_check(mem_ctx, 214 lp _lanman_auth(lp_ctx),215 lp _ntlm_auth(lp_ctx),214 lpcfg_lanman_auth(lp_ctx), 215 lpcfg_ntlm_auth(lp_ctx), 216 216 MSV1_0_ALLOW_SERVER_TRUST_ACCOUNT | 217 217 MSV1_0_ALLOW_WORKSTATION_TRUST_ACCOUNT, … … 226 226 if (NT_STATUS_IS_OK(nt_status)) { 227 227 if (unix_name) { 228 asprintf(unix_name, 229 "%s%c%s", domain, 230 *lp_winbind_separator(lp_ctx), 231 username); 228 if (asprintf(unix_name, "%s%c%s", domain, 229 *lpcfg_winbind_separator(lp_ctx), 230 username) < 0) { 231 nt_status = NT_STATUS_NO_MEMORY; 232 } 232 233 } 233 234 } else { … … 477 478 478 479 nt_status = gensec_client_start(NULL, &state->gensec_state, ev, 479 lp _gensec_settings(NULL, lp_ctx));480 lpcfg_gensec_settings(NULL, lp_ctx)); 480 481 if (!NT_STATUS_IS_OK(nt_status)) { 481 482 talloc_free(mem_ctx); … … 490 491 struct auth_context *auth_context; 491 492 492 msg = messaging_client_init(state, lp_messaging_path(state, lp_ctx), 493 lp_iconv_convenience(lp_ctx), ev); 493 msg = messaging_client_init(state, lpcfg_messaging_path(state, lp_ctx), ev); 494 494 if (!msg) { 495 495 talloc_free(mem_ctx); … … 501 501 msg, 502 502 lp_ctx, 503 NULL, 503 504 &auth_context); 504 505 … … 509 510 510 511 if (!NT_STATUS_IS_OK(gensec_server_start(state, ev, 511 lp _gensec_settings(state, lp_ctx),512 lpcfg_gensec_settings(state, lp_ctx), 512 513 auth_context, &state->gensec_state))) { 513 514 talloc_free(mem_ctx); … … 617 618 struct security_token *token = session_info->security_token; 618 619 const char *sidstr = dom_sid_string(session_info, 619 token->sids[i]);620 &token->sids[i]); 620 621 grouplist = talloc_asprintf_append_buffer(grouplist, "%s,", sidstr); 621 622 } … … 647 648 648 649 if (strncmp(buf, "GF", 2) == 0) { 649 struct gensec_ntlmssp_state *gensec_ntlmssp_state;650 struct ntlmssp_state *ntlmssp_state; 650 651 uint32_t neg_flags; 651 652 652 gensec_ntlmssp_state = talloc_get_type(state->gensec_state->private_data,653 struct gensec_ntlmssp_state);654 neg_flags = gensec_ntlmssp_state->neg_flags;653 ntlmssp_state = talloc_get_type(state->gensec_state->private_data, 654 struct ntlmssp_state); 655 neg_flags = ntlmssp_state->neg_flags; 655 656 656 657 DEBUG(10, ("Requested negotiated feature flags\n")); … … 662 663 663 664 /* don't leak 'bad password'/'no such user' info to the network client */ 664 nt_status = auth_nt_status_squash(nt_status);665 nt_status = nt_status_squash(nt_status); 665 666 666 667 if (out.length) { … … 702 703 reply_code = "BH Failed to retrive session info"; 703 704 reply_arg = nt_errstr(nt_status); 704 DEBUG(1, ("GENSEC failed to retr eive the session info: %s\n", nt_errstr(nt_status)));705 DEBUG(1, ("GENSEC failed to retrieve the session info: %s\n", nt_errstr(nt_status))); 705 706 } else { 706 707 707 708 reply_code = "AF"; 708 709 reply_arg = talloc_asprintf(state->gensec_state, 709 "%s%s%s", session_info-> server_info->domain_name,710 lp _winbind_separator(lp_ctx), session_info->server_info->account_name);710 "%s%s%s", session_info->info->domain_name, 711 lpcfg_winbind_separator(lp_ctx), session_info->info->account_name); 711 712 talloc_free(session_info); 712 713 } … … 760 761 /* handle this request as plaintext */ 761 762 if (!full_username) { 762 if (asprintf(&full_username, "%s%c%s", domain, *lp _winbind_separator(lp_ctx), username) == -1) {763 if (asprintf(&full_username, "%s%c%s", domain, *lpcfg_winbind_separator(lp_ctx), username) < 0) { 763 764 mux_printf(mux_id, "Error: Out of memory in asprintf!\n.\n"); 764 765 return; … … 785 786 if (!parse_ntlm_auth_domain_user(full_username, &username, 786 787 &domain, 787 *lp _winbind_separator(lp_ctx))) {788 *lpcfg_winbind_separator(lp_ctx))) { 788 789 /* username might be 'tainted', don't print into our new-line deleimianted stream */ 789 790 mux_printf(mux_id, "Error: Could not parse into domain and username\n"); … … 792 793 793 794 if (!domain) { 794 domain = smb_xstrdup(lp _workgroup(lp_ctx));795 domain = smb_xstrdup(lpcfg_workgroup(lp_ctx)); 795 796 } 796 797 … … 805 806 username, 806 807 domain, 807 lp _netbios_name(lp_ctx),808 lpcfg_netbios_name(lp_ctx), 808 809 &challenge, 809 810 &lm_response, … … 933 934 } 934 935 935 static void manage_squid_request(struct loadparm_context *lp_ctx, enum stdio_helper_mode helper_mode, 936 static void manage_squid_request(struct loadparm_context *lp_ctx, enum stdio_helper_mode helper_mode, 936 937 stdio_helper_function fn, void **private2) 937 938 { … … 1040 1041 } 1041 1042 1042 static void squid_stream(struct loadparm_context *lp_ctx, 1043 static void squid_stream(struct loadparm_context *lp_ctx, 1043 1044 enum stdio_helper_mode stdio_mode, 1044 1045 stdio_helper_function fn) { … … 1133 1134 1134 1135 if (opt_domain == NULL) { 1135 opt_domain = lp _workgroup(cmdline_lp_ctx);1136 opt_domain = lpcfg_workgroup(cmdline_lp_ctx); 1136 1137 } 1137 1138 … … 1160 1161 1161 1162 if (opt_workstation == NULL) { 1162 opt_workstation = lp _netbios_name(cmdline_lp_ctx);1163 opt_workstation = lpcfg_netbios_name(cmdline_lp_ctx); 1163 1164 } 1164 1165 … … 1170 1171 char *user; 1171 1172 1172 asprintf(&user, "%s%c%s", opt_domain, *lp_winbind_separator(cmdline_lp_ctx), opt_username); 1173 if (asprintf(&user, "%s%c%s", opt_domain, 1174 *lpcfg_winbind_separator(cmdline_lp_ctx), 1175 opt_username) < 0) { 1176 return 1; 1177 } 1173 1178 if (!check_plaintext_auth(user, opt_password, true)) { 1174 1179 return 1; -
vendor/current/source4/utils/oLschema2ldif.c
r414 r740 36 36 #include "tools/cmdline.h" 37 37 #include "dsdb/samdb/samdb.h" 38 #include "../lib/crypto/sha256.h" 39 #include "../librpc/gen_ndr/ndr_misc.h" 40 #include "lib/cmdline/popt_common.h" 38 41 39 42 #define SCHEMA_UNKNOWN 0 … … 337 340 int n; 338 341 342 SHA256_CTX sha256_context; 343 uint8_t digest[SHA256_DIGEST_LENGTH]; 344 345 struct GUID guid; 346 347 bool isAttribute = false; 348 bool single_valued = false; 349 339 350 ctx = talloc_new(mem_ctx); 340 351 msg = ldb_msg_new(ctx); … … 352 363 c += 13; 353 364 MSG_ADD_STRING("objectClass", "attributeSchema"); 365 isAttribute = true; 354 366 break; 355 367 } … … 375 387 n = strcspn(c, " \t"); 376 388 s = talloc_strndup(msg, c, n); 377 MSG_ADD_STRING("attributeID", s); 389 if (isAttribute) { 390 MSG_ADD_STRING("attributeID", s); 391 } else { 392 MSG_ADD_STRING("governsID", s); 393 } 394 395 SHA256_Init(&sha256_context); 396 SHA256_Update(&sha256_context, (uint8_t*)s, strlen(s)); 397 SHA256_Final(digest, &sha256_context); 398 399 memcpy(&guid, digest, sizeof(struct GUID)); 400 401 if (dsdb_msg_add_guid(msg, &guid, "schemaIdGuid") != 0) { 402 goto failed; 403 } 404 378 405 c += n; 379 406 c = skip_spaces(c); … … 417 444 418 445 case SCHEMA_SINGLE_VALUE: 419 MSG_ADD_STRING("isSingleValued", "TRUE");446 single_valued = true; 420 447 break; 421 448 … … 434 461 case SCHEMA_SYNTAX: 435 462 { 436 const struct dsdb_syntax *map = 437 find_syntax_map_by_standard_oid(token->value); 463 char *syntax_oid; 464 const struct dsdb_syntax *map; 465 char *oMSyntax; 466 467 n = strcspn(token->value, "{"); 468 syntax_oid = talloc_strndup(ctx, token->value, n); 469 470 map = find_syntax_map_by_standard_oid(syntax_oid); 438 471 if (!map) { 439 472 break; 440 473 } 474 441 475 MSG_ADD_STRING("attributeSyntax", map->attributeSyntax_oid); 476 477 oMSyntax = talloc_asprintf(msg, "%d", map->oMSyntax); 478 MSG_ADD_STRING("oMSyntax", oMSyntax); 479 442 480 break; 443 481 } … … 449 487 fprintf(stderr, "Unknown Definition: %s\n", token->value); 450 488 } 489 } 490 491 if (isAttribute) { 492 MSG_ADD_STRING("isSingleValued", single_valued ? "TRUE" : "FALSE"); 493 } else { 494 MSG_ADD_STRING("defaultObjectCategory", ldb_dn_get_linearized(msg->dn)); 451 495 } 452 496 … … 541 585 } 542 586 587 static struct options { 588 const char *basedn; 589 const char *input; 590 const char *output; 591 } options; 592 593 static struct poptOption popt_options[] = { 594 POPT_AUTOHELP 595 { "basedn", 'b', POPT_ARG_STRING, &options.basedn, 0, "base DN", "DN" }, 596 { "input", 'I', POPT_ARG_STRING, &options.input, 0, 597 "inputfile of OpenLDAP style schema otherwise STDIN", "inputfile"}, 598 { "output", 'O', POPT_ARG_STRING, &options.output, 0, 599 "outputfile otherwise STDOUT", "outputfile"}, 600 POPT_COMMON_VERSION 601 { NULL } 602 }; 603 604 543 605 static void usage(void) 544 606 { 545 printf("Usage: oLschema2ldif -H NONE <options>\n"); 607 poptContext pc; 608 printf("Usage: oLschema2ldif <options>\n"); 546 609 printf("\nConvert OpenLDAP schema to AD-like LDIF format\n\n"); 547 printf("Options:\n");548 printf(" -I inputfile inputfile of OpenLDAP style schema otherwise STDIN\n");549 printf(" -O outputfile outputfile otherwise STDOUT\n");550 printf(" -o options pass options like modules to activate\n");551 printf(" e.g: -o modules:timestamps\n");552 printf("\n");553 610 printf("Converts records from an openLdap formatted schema to an ldif schema\n\n"); 611 pc = poptGetContext("oLschema2ldif", 0, NULL, popt_options, 612 POPT_CONTEXT_KEEP_FIRST); 613 poptPrintHelp(pc, stdout, 0); 554 614 exit(1); 555 615 } 616 556 617 557 618 int main(int argc, const char **argv) … … 559 620 TALLOC_CTX *ctx; 560 621 struct schema_conv ret; 561 struct ldb_cmdline *options;562 622 FILE *in = stdin; 563 623 FILE *out = stdout; 624 poptContext pc; 625 int opt; 626 564 627 ctx = talloc_new(NULL); 565 628 ldb_ctx = ldb_init(ctx, NULL); 566 629 567 630 setenv("LDB_URL", "NONE", 1); 568 options = ldb_cmdline_process(ldb_ctx, argc, argv, usage); 569 570 if (options->basedn == NULL) { 571 perror("Base DN not specified"); 631 632 pc = poptGetContext(argv[0], argc, argv, popt_options, 633 POPT_CONTEXT_KEEP_FIRST); 634 635 while((opt = poptGetNextOpt(pc)) != -1) { 636 fprintf(stderr, "Invalid option %s: %s\n", 637 poptBadOption(pc, 0), poptStrerror(opt)); 638 usage(); 639 } 640 641 if (options.basedn == NULL) { 642 printf("Base DN not specified\n"); 643 usage(); 572 644 exit(1); 573 645 } else { 574 basedn = ldb_dn_new(ctx, ldb_ctx, options ->basedn);646 basedn = ldb_dn_new(ctx, ldb_ctx, options.basedn); 575 647 if ( ! ldb_dn_validate(basedn)) { 576 perror("Malformed Base DN"); 648 printf("Malformed Base DN\n"); 649 usage(); 577 650 exit(1); 578 651 } 579 652 } 580 653 581 if (options ->input) {582 in = fopen(options ->input, "r");654 if (options.input) { 655 in = fopen(options.input, "r"); 583 656 if (!in) { 584 perror(options->input); 657 perror(options.input); 658 usage(); 585 659 exit(1); 586 660 } 587 661 } 588 if (options ->output) {589 out = fopen(options ->output, "w");662 if (options.output) { 663 out = fopen(options.output, "w"); 590 664 if (!out) { 591 perror(options->output); 665 perror(options.output); 666 usage(); 592 667 exit(1); 593 668 }
Note:
See TracChangeset
for help on using the changeset viewer.