diff options
Diffstat (limited to 'source4')
-rw-r--r-- | source4/samba3_nmbd.patch | 178 | ||||
-rw-r--r-- | source4/script/addtosmbpass | 74 | ||||
-rwxr-xr-x | source4/script/convert_smbpasswd | 17 | ||||
-rwxr-xr-x | source4/script/creategroup | 27 | ||||
-rwxr-xr-x | source4/script/findsmb.in | 152 | ||||
-rwxr-xr-x | source4/script/genstruct.pl | 298 | ||||
-rwxr-xr-x | source4/script/mknissmbpasswd.sh | 31 | ||||
-rwxr-xr-x | source4/script/mknissmbpwdtbl.sh | 42 | ||||
-rw-r--r-- | source4/script/mksmbpasswd.sh | 6 | ||||
-rwxr-xr-x | source4/script/scancvslog.pl | 112 | ||||
-rw-r--r-- | source4/script/smbtar | 165 | ||||
-rw-r--r-- | source4/script/updatesmbpasswd.sh | 14 | ||||
-rwxr-xr-x | source4/setup/dcpromo.pl (renamed from source4/script/dcpromo.pl) | 0 | ||||
-rw-r--r-- | source4/setup/hklm.ldif (renamed from source4/hklm.ldif) | 0 | ||||
-rwxr-xr-x | source4/setup/newuser.pl (renamed from source4/script/newuser.pl) | 4 | ||||
-rw-r--r-- | source4/setup/provision.ldif (renamed from source4/provision.ldif) | 0 | ||||
-rwxr-xr-x | source4/setup/provision.pl (renamed from source4/script/provision.pl) | 2 | ||||
-rw-r--r-- | source4/setup/provision.zone (renamed from source4/provision.zone) | 0 | ||||
-rw-r--r-- | source4/setup/rootdse.ldif (renamed from source4/rootdse.ldif) | 0 | ||||
-rwxr-xr-x | source4/setup/rootdse.pl (renamed from source4/script/rootdse.pl) | 2 | ||||
-rw-r--r-- | source4/setup/secrets.ldif (renamed from source4/secrets.ldif) | 0 |
21 files changed, 4 insertions, 1120 deletions
diff --git a/source4/samba3_nmbd.patch b/source4/samba3_nmbd.patch deleted file mode 100644 index 772a0f917e..0000000000 --- a/source4/samba3_nmbd.patch +++ /dev/null @@ -1,178 +0,0 @@ -This is a extremely rough patch that 'fixes' Samba3 nmbd to allow a -join from a WinXP client to a Samba4 server. Note that it hard-codes -the domain GUID. Please only use for testing Samba4 - do not apply -this to Samba3 svn. - - -Index: nmbd/nmbd_processlogon.c -=================================================================== ---- nmbd/nmbd_processlogon.c (revision 4247) -+++ nmbd/nmbd_processlogon.c (working copy) -@@ -58,10 +58,37 @@ - tdb_close(tdb); - } - -+ -+int push_components(unsigned char *q, const char *s) -+{ -+ char *p; -+ int l, len = 0; -+ -+ if (*s == 0) { -+ q[0] = 0; -+ return 1; -+ } -+ -+ while ((p = strchr(s, '.'))) { -+ l = (p-s); -+ q[0] = l; -+ memcpy(q+1, s, l); -+ s += l + 1; -+ q += l+1; -+ len += l+1; -+ } -+ -+ l = strlen(s); -+ q[0] = l; -+ memcpy(q+1, s, l+1); -+ len += strlen(s)+2; -+ -+ return len; -+} -+ - /**************************************************************************** - Process a domain logon packet - **************************************************************************/ -- - void process_logon_packet(struct packet_struct *p, char *buf,int len, - const char *mailslot) - { -@@ -393,6 +420,8 @@ - - get_mydnsdomname(domain); - get_myname(hostname); -+ -+ pstrcpy(domain, "bludom.tridgell.net"); - - if (SVAL(uniuser, 0) == 0) { - SIVAL(q, 0, SAMLOGON_AD_UNK_R); /* user unknown */ -@@ -403,6 +432,9 @@ - - SIVAL(q, 0, ADS_PDC|ADS_GC|ADS_LDAP|ADS_DS| - ADS_KDC|ADS_TIMESERV|ADS_CLOSEST|ADS_WRITABLE); -+ SIVAL(q, 0, 0x3fd); -+ SIVAL(q, 0, ADS_PDC|ADS_DS| -+ ADS_TIMESERV|ADS_CLOSEST|ADS_WRITABLE); - q += 4; - - /* Push Domain GUID */ -@@ -411,80 +443,34 @@ - return; - } - -+ smb_string_to_uuid("b0eac516-4a33-8675-4127-6bf058911234", &domain_guid); -+ -+ dump_data(0, domain_guid.node, 6); -+ - smb_uuid_pack(domain_guid, &flat_guid); - memcpy(q, &flat_guid.info, UUID_FLAT_SIZE); -- q += UUID_FLAT_SIZE; - -- /* Forest */ -- str_offset = q - q_orig; -- dc = domain; -- q1 = q; -- while ((component = strtok(dc, "."))) { -- dc = NULL; -- size = push_ascii(&q[1], component, -1, 0); -- SCVAL(q, 0, size); -- q += (size + 1); -- } -+ dump_data(0, q, 16); - -- /* Unk0 */ -- SCVAL(q, 0, 0); -- q++; -+ q += UUID_FLAT_SIZE; - -- /* Domain */ -- SCVAL(q, 0, 0xc0 | ((str_offset >> 8) & 0x3F)); -- SCVAL(q, 1, str_offset & 0xFF); -- q += 2; -+ const char *dnsname = "192.168.115.1"; - -- /* Hostname */ -- size = push_ascii(&q[1], hostname, -1, 0); -- SCVAL(q, 0, size); -- q += (size + 1); -- SCVAL(q, 0, 0xc0 | ((str_offset >> 8) & 0x3F)); -- SCVAL(q, 1, str_offset & 0xFF); -- q += 2; -- -- /* NETBIOS of domain */ -- size = push_ascii(&q[1], lp_workgroup(), -1, STR_UPPER); -- SCVAL(q, 0, size); -- q += (size + 1); -- -- /* Unk1 */ -- SCVAL(q, 0, 0); -- q++; -- -- /* NETBIOS of hostname */ -- size = push_ascii(&q[1], my_name, -1, 0); -- SCVAL(q, 0, size); -- q += (size + 1); -- -- /* Unk2 */ -- SCVAL(q, 0, 0); -- q++; -- -- /* User name */ -- if (SVAL(uniuser, 0) != 0) { -- size = push_ascii(&q[1], ascuser, -1, 0); -- SCVAL(q, 0, size); -- q += (size + 1); -+ q += push_components(q, domain); -+ q += push_components(q, domain); -+ q += push_components(q, dnsname); -+ q += push_components(q, lp_workgroup()); -+ q += push_components(q, my_name); -+ q += push_components(q, ""); -+ if (SVAL(uniuser, 0)) { -+ q += push_components(q, ascuser); - } -+ q += push_components(q, "Default-First-Site-Name"); -+ q += push_components(q, "Default-First-Site-Name"); - -- q_orig = q; -- /* Site name */ -- size = push_ascii(&q[1], "Default-First-Site-Name", -1, 0); -- SCVAL(q, 0, size); -- q += (size + 1); -- -- /* Site name (2) */ -- str_offset = q - q_orig; -- SCVAL(q, 0, 0xc0 | ((str_offset >> 8) & 0x3F)); -- SCVAL(q, 1, str_offset & 0xFF); -- q += 2; -- -- SCVAL(q, 0, PTR_DIFF(q,q1)); -- SCVAL(q, 1, 0x10); /* unknown */ -- -- SIVAL(q, 0, 0x00000002); -- q += 4; /* unknown */ -+ SCVAL(q, 0, 0x10); /* unknown */ -+ SIVAL(q, 1, 0x00000002); -+ q += 5; - SIVAL(q, 0, (iface_ip(p->ip))->s_addr); - q += 4; - SIVAL(q, 0, 0x00000000); -@@ -495,7 +481,7 @@ - #endif - - /* tell the client what version we are */ -- SIVAL(q, 0, ((ntversion < 11) || (SEC_ADS != lp_security())) ? 1 : 13); -+ SIVAL(q, 0, 13); - /* our ntversion */ - SSVAL(q, 4, 0xffff); /* our lmnttoken */ - SSVAL(q, 6, 0xffff); /* our lm20token */ diff --git a/source4/script/addtosmbpass b/source4/script/addtosmbpass deleted file mode 100644 index bc82851c52..0000000000 --- a/source4/script/addtosmbpass +++ /dev/null @@ -1,74 +0,0 @@ -#!/usr/bin/awk -f -# edit the line above to point to your real location of awk interpreter - -# awk program for adding new entries in smbpasswd files -# arguments are account names to add; feed it an existent Samba password -# file on stdin, results will be written on stdout -# -# Michal Jaegermann, michal@ellpspace.math.ualberta.ca, 1995-11-09 - -BEGIN { - me = "addtosmbpass"; - count = ARGC; - FS = ":"; - - if (count == 1) { - print "Usage:", me, - "name1 [name2 ....] < smbpasswd.in > smbpasswd.out"; - ARGV[1] = "/dev/null"; - ARGC = 2; - exit; - } - - for(i = 1; i < count; i++) { - names[ARGV[i]] = " "; - delete ARGV[i]; - } -# sane awk should work simply with 'ARGC = 1', but not every awk -# implementation is sane - big sigh!! - ARGV[1] = "-"; - ARGC = 2; -# -# If you have ypmatch but is not RPC registered (some Linux systems -# for example) comment out the next line. -# "which ypmatch" | getline ypmatch; - if (1 != match(ypmatch, /^\//)) { - ypmatch = ""; - } - pwdf = "/etc/passwd"; -} -#check for names already present in input -{ - print $0; - for(name in names) { - if($1 == name) { - delete names[name]; - } - } -} -END { - fmt = "%s:%s:XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX:"; - fmt = fmt "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX:[U ]:LCT-00000000:%s:\n"; - for(name in names) { - while ((getline < pwdf) > 0) { - if ($1 == name) { - printf(fmt, $1, $3, $5); - close(pwdf); - notfound = ""; - break; - } - notfound = "n"; - } - $0 = ""; - if (notfound && ypmatch) { -# try to find in NIS databases - command = ypmatch " " name " passwd"; - command | getline; - if (NF > 0) { - printf(fmt, $1, $3, $5); - } - close(command); - } - } -} - diff --git a/source4/script/convert_smbpasswd b/source4/script/convert_smbpasswd deleted file mode 100755 index edb775d3a6..0000000000 --- a/source4/script/convert_smbpasswd +++ /dev/null @@ -1,17 +0,0 @@ -#!/bin/sh -# -# Convert a Samba 1.9.18 smbpasswd file format into -# a Samba 2.0 smbpasswd file format. -# Read from stdin and write to stdout for simplicity. -# Set the last change time to 0x363F96AD to avoid problems -# with trying to work out how to get the seconds since 1970 -# in awk or the shell. JRA. -# -nawk 'BEGIN {FS=":"} -{ - if( $0 ~ "^#" ) { - print $0 - } else { - printf( "%s:%s:%s:%s:[U ]:LCT-363F96AD:\n", $1, $2, $3, $4); - } -}' diff --git a/source4/script/creategroup b/source4/script/creategroup deleted file mode 100755 index 01fb065944..0000000000 --- a/source4/script/creategroup +++ /dev/null @@ -1,27 +0,0 @@ -#!/bin/sh - -# Example script for 'add group command'. Handle weird NT group -# names. First attempt to create the group directly, if that fails -# then create a random group and print the numeric group id. -# -# Note that this is only an example and assumes /dev/urandom. -# -# Volker - -GROUPNAME="$1" -ITERS=0 - -while ! /usr/sbin/groupadd "$GROUPNAME" > /dev/null 2>&1 -do - # we had difficulties creating that group. Maybe the name was - # too weird, or it already existed. Create a random name. - GROUPNAME=nt-$(dd if=/dev/urandom bs=16 count=1 2>/dev/null | md5sum | cut -b 1-5) - ITERS=$(expr "$ITERS" + 1) - if [ "$ITERS" -gt 10 ] - then - # Too many attempts - exit 1 - fi -done - -getent group | grep ^"$GROUPNAME": | cut -d : -f 3 diff --git a/source4/script/findsmb.in b/source4/script/findsmb.in deleted file mode 100755 index 6276bd3f39..0000000000 --- a/source4/script/findsmb.in +++ /dev/null @@ -1,152 +0,0 @@ -#!@PERL@ -# -# Prints info on all smb responding machines on a subnet. -# This script needs to be run on a machine without nmbd running and be -# run as root to get correct info from WIN95 clients. -# -# syntax: -# findsmb [-d|-D] [-r] [subnet broadcast address] -# -# with no agrument it will list machines on the current subnet -# -# There will be a "+" in front of the workgroup name for machines that are -# local master browsers for that workgroup. There will be an "*" in front -# of the workgroup name for machines that are the domain master browser for -# that workgroup. -# -# Options: -# -# -d|-D enable debug -# -r add -r option to nmblookup when finding netbios name -# - -$SAMBABIN = "@prefix@/bin"; - -for ($i = 0; $i < 2; $i++) { # test for -d and -r options - $_ = shift; - if (m/-d|-D/) { - $DEBUG = 1; - } elsif (m/-r/) { - $R_OPTION = "-r"; - } -} - -if ($_) { # set broadcast address if it was specified - $BCAST = "-B $_"; -} - -sub ipsort # do numeric sort on last field of IP address -{ - @t1 = split(/\./,$a); - @t2 = split(/\./,$b); - @t1[3] <=> @t2[3]; -} - -# look for all machines that respond to a name lookup - -open(NMBLOOKUP,"$SAMBABIN/nmblookup $BCAST '*'|") || - die("Can't run nmblookup '*'.\n"); - -# get rid of all lines that are not a response IP address, -# strip everything but IP address and sort by last field in address - -@ipaddrs = sort ipsort grep(s/ \*<00>.*$//,<NMBLOOKUP>); - -# print header info - -print "\nIP ADDR NETBIOS NAME WORKGROUP/OS/VERSION $BCAST\n"; -print "---------------------------------------------------------------------\n"; - -foreach $ip (@ipaddrs) # loop through each IP address found -{ - $ip =~ s/\n//; # strip newline from IP address - -# find the netbios names registered by each machine - - open(NMBLOOKUP,"$SAMBABIN/nmblookup $R_OPTION -A $ip|") || - die("Can't get nmb name list.\n"); - @nmblookup = <NMBLOOKUP>; - close NMBLOOKUP; - -# get the first <00> name - - @name = grep(/<00>/,@nmblookup); - $_ = @name[0]; - if ($_) { # we have a netbios name - if (/GROUP/) { # is it a group name - ($name, $aliases, $type, $length, @addresses) = - gethostbyaddr(pack('C4',split('\.',$ip)),2); - if (! $name) { # could not get name - $name = "unknown nis name"; - } - } else { -# The Netbios name can contain lot of characters also '<' '>' -# and spaces. The follwing cure inside name space but not -# names starting or ending with spaces - /(.{1,15})\s+<00>\s+/; - $name = $1; - } - -# do an smbclient command on the netbios name. - - open(SMB,"$SAMBABIN/smbclient -N -L $name -I $ip -U% |") || - die("Can't do smbclient command.\n"); - @smb = <SMB>; - close SMB; - - if ($DEBUG) { # if -d flag print results of nmblookup and smbclient - print "===============================================================\n"; - print @nmblookup; - print @smb; - } - -# look for the OS= string - - @info = grep(/OS=/,@smb); - $_ = @info[0]; - if ($_) { # we found response - s/Domain=|OS=|Server=|\n//g; # strip out descriptions to make line shorter - - } else { # no OS= string in response (WIN95 client) - -# for WIN95 clients get workgroup name from nmblookup response - @name = grep(/<00> - <GROUP>/,@nmblookup); - $_ = @name[0]; - if ($_) { -# Same as before for space and characters - /(.{1,15})\s+<00>\s+/; - $_ = "[$1]"; - } else { - $_ = "Unknown Workgroup"; - } - } - -# see if machine registered a local master browser name - if (grep(/<1d>/,@nmblookup)) { - $master = '+'; # indicate local master browser - if (grep(/<1b>/,@nmblookup)) { # how about domain master browser? - $master = '*'; # indicate domain master browser - } - } else { - $master = ' '; # not a browse master - } - -# line up info in 3 columns - - print "$ip".' 'x(16-length($ip))."$name".' 'x(14-length($name))."$master"."$_\n"; - - } else { # no netbios name found -# try getting the host name - ($name, $aliases, $type, $length, @addresses) = - gethostbyaddr(pack('C4',split('\.',$ip)),2); - if (! $name) { # could not get name - $name = "unknown nis name"; - } - if ($DEBUG) { # if -d flag print results of nmblookup - print "===============================================================\n"; - print @nmblookup; - } - print "$ip".' 'x(16-length($ip))."$name\n"; - } -} - diff --git a/source4/script/genstruct.pl b/source4/script/genstruct.pl deleted file mode 100755 index 081b81f510..0000000000 --- a/source4/script/genstruct.pl +++ /dev/null @@ -1,298 +0,0 @@ -#!/usr/bin/perl -w -# a simple system for generating C parse info -# this can be used to write generic C structer load/save routines -# Copyright 2002 Andrew Tridgell <genstruct@tridgell.net> -# released under the GNU General Public License v2 or later - -use strict; - -my(%enum_done) = (); -my(%struct_done) = (); - -################################################### -# general handler -sub handle_general($$$$$$$$) -{ - my($name) = shift; - my($ptr_count) = shift; - my($size) = shift; - my($element) = shift; - my($flags) = shift; - my($dump_fn) = shift; - my($parse_fn) = shift; - my($tflags) = shift; - my($array_len) = 0; - my($dynamic_len) = "NULL"; - - # handle arrays, currently treat multidimensional arrays as 1 dimensional - while ($element =~ /(.*)\[(.*?)\]$/) { - $element = $1; - if ($array_len == 0) { - $array_len = $2; - } else { - $array_len = "$2 * $array_len"; - } - } - - if ($flags =~ /_LEN\((\w*?)\)/) { - $dynamic_len = "\"$1\""; - } - - if ($flags =~ /_NULLTERM/) { - $tflags = "FLAG_NULLTERM"; - } - - print OFILE "{\"$element\", $ptr_count, $size, offsetof(struct $name, $element), $array_len, $dynamic_len, $tflags, $dump_fn, $parse_fn},\n"; -} - - -#################################################### -# parse one element -sub parse_one($$$$) -{ - my($name) = shift; - my($type) = shift; - my($element) = shift; - my($flags) = shift; - my($ptr_count) = 0; - my($size) = "sizeof($type)"; - my($tflags) = "0"; - - # enums get the FLAG_ALWAYS flag - if ($type =~ /^enum /) { - $tflags = "FLAG_ALWAYS"; - } - - - # make the pointer part of the base type - while ($element =~ /^\*(.*)/) { - $ptr_count++; - $element = $1; - } - - # convert spaces to _ - $type =~ s/ /_/g; - - my($dump_fn) = "gen_dump_$type"; - my($parse_fn) = "gen_parse_$type"; - - handle_general($name, $ptr_count, $size, $element, $flags, $dump_fn, $parse_fn, $tflags); -} - -#################################################### -# parse one element -sub parse_element($$$) -{ - my($name) = shift; - my($element) = shift; - my($flags) = shift; - my($type); - my($data); - - # pull the base type - if ($element =~ /^struct (\S*) (.*)/) { - $type = "struct $1"; - $data = $2; - } elsif ($element =~ /^enum (\S*) (.*)/) { - $type = "enum $1"; - $data = $2; - } elsif ($element =~ /^unsigned (\S*) (.*)/) { - $type = "unsigned $1"; - $data = $2; - } elsif ($element =~ /^(\S*) (.*)/) { - $type = $1; - $data = $2; - } else { - die "Can't parse element '$element'"; - } - - # handle comma separated lists - while ($data =~ /(\S*),[\s]?(.*)/) { - parse_one($name, $type, $1, $flags); - $data = $2; - } - parse_one($name, $type, $data, $flags); -} - - -my($first_struct) = 1; - -#################################################### -# parse the elements of one structure -sub parse_elements($$) -{ - my($name) = shift; - my($elements) = shift; - - if ($first_struct) { - $first_struct = 0; - print "Parsing structs: $name"; - } else { - print ", $name"; - } - - print OFILE "int gen_dump_struct_$name(struct parse_string *, const char *, unsigned);\n"; - print OFILE "int gen_parse_struct_$name(char *, const char *);\n"; - - print OFILE "static const struct parse_struct pinfo_" . $name . "[] = {\n"; - - while ($elements =~ /^.*?([a-z].*?);\s*?(\S*?)\s*?\$(.*)/msi) { - my($element) = $1; - my($flags) = $2; - $elements = $3; - parse_element($name, $element, $flags); - } - - print OFILE "{NULL, 0, 0, 0, 0, NULL, 0, NULL, NULL}};\n"; - - print OFILE " -int gen_dump_struct_$name(struct parse_string *p, const char *ptr, unsigned indent) { - return gen_dump_struct(pinfo_$name, p, ptr, indent); -} -int gen_parse_struct_$name(char *ptr, const char *str) { - return gen_parse_struct(pinfo_$name, ptr, str); -} - -"; -} - -my($first_enum) = 1; - -#################################################### -# parse out the enum declarations -sub parse_enum_elements($$) -{ - my($name) = shift; - my($elements) = shift; - - if ($first_enum) { - $first_enum = 0; - print "Parsing enums: $name"; - } else { - print ", $name"; - } - - print OFILE "static const struct enum_struct einfo_" . $name . "[] = {\n"; - - my(@enums) = split(/,/s, $elements); - for (my($i)=0; $i <= $#{@enums}; $i++) { - my($enum) = $enums[$i]; - if ($enum =~ /\s*(\w*)/) { - my($e) = $1; - print OFILE "{\"$e\", $e},\n"; - } - } - - print OFILE "{NULL, 0}};\n"; - - print OFILE " -int gen_dump_enum_$name(struct parse_string *p, const char *ptr, unsigned indent) { - return gen_dump_enum(einfo_$name, p, ptr, indent); -} - -int gen_parse_enum_$name(char *ptr, const char *str) { - return gen_parse_enum(einfo_$name, ptr, str); -} - -"; -} - -#################################################### -# parse out the enum declarations -sub parse_enums($) -{ - my($data) = shift; - - while ($data =~ /^GENSTRUCT\s+enum\s+(\w*?)\s*{(.*?)}\s*;(.*)/ms) { - my($name) = $1; - my($elements) = $2; - $data = $3; - - if (!defined($enum_done{$name})) { - $enum_done{$name} = 1; - parse_enum_elements($name, $elements); - } - } - - if (! $first_enum) { - print "\n"; - } -} - -#################################################### -# parse all the structures -sub parse_structs($) -{ - my($data) = shift; - - # parse into structures - while ($data =~ /^GENSTRUCT\s+struct\s+(\w+?)\s*{\s*(.*?)\s*}\s*;(.*)/ms) { - my($name) = $1; - my($elements) = $2; - $data = $3; - if (!defined($struct_done{$name})) { - $struct_done{$name} = 1; - parse_elements($name, $elements); - } - } - - if (! $first_struct) { - print "\n"; - } else { - print "No GENSTRUCT structures found?\n"; - } -} - - -#################################################### -# parse a header file, generating a dumper structure -sub parse_data($) -{ - my($data) = shift; - - # collapse spaces - $data =~ s/[\t ]+/ /sg; - $data =~ s/\s*\n\s+/\n/sg; - # strip debug lines - $data =~ s/^\#.*?\n//smg; - - parse_enums($data); - parse_structs($data); -} - - -######################################### -# display help text -sub ShowHelp() -{ - print " -generator for C structure dumpers -Copyright Andrew Tridgell <genstruct\@tridgell.net> - -Sample usage: - genstruct -o output.h gcc -E -O2 -g test.h - -Options: - --help this help page - -o OUTPUT place output in OUTPUT -"; - exit(0); -} - -######################################## -# main program -if ($ARGV[0] ne "-o" || $#ARGV < 2) { - ShowHelp(); -} - -shift; -my($opt_ofile)=shift; - -print "creating $opt_ofile\n"; - -open(OFILE, ">$opt_ofile") || die "can't open $opt_ofile"; - -print OFILE "/* This is an automatically generated file - DO NOT EDIT! */\n\n"; - -parse_data(`@ARGV -DGENSTRUCT=GENSTRUCT`); -exit(0); diff --git a/source4/script/mknissmbpasswd.sh b/source4/script/mknissmbpasswd.sh deleted file mode 100755 index a94c963bdc..0000000000 --- a/source4/script/mknissmbpasswd.sh +++ /dev/null @@ -1,31 +0,0 @@ -#!/bin/sh -# -# Copyright (C) 1998 Benny Holmgren -# -# Script to import smbpasswd file into the smbpasswd NIS+ table. Reads -# from stdin the smbpasswd file. -# -while true -do - read row - if [ -z "$row" ] - then - break - fi - - if [ "`echo $row | cut -c1`" = "#" ] - then - continue - fi - - nistbladm -a \ - name=\"`echo $row | cut -d: -f1`\" \ - uid=\"`echo $row | cut -d: -f2`\" \ - lmpwd=\"`echo $row | cut -d: -f3`\" \ - ntpwd=\"`echo $row | cut -d: -f4`\" \ - acb=\"`echo $row | cut -d: -f5`\" \ - pwdlset_t=\"`echo $row | cut -d: -f6`\" \ - gcos=\"`echo $row | cut -d: -f7`\" \ - home=\"`echo $row | cut -d: -f8`\" \ - shell=\"`echo $row | cut -d: -f9`\" smbpasswd.org_dir.`nisdefaults -d` -done diff --git a/source4/script/mknissmbpwdtbl.sh b/source4/script/mknissmbpwdtbl.sh deleted file mode 100755 index a9b34ff9a7..0000000000 --- a/source4/script/mknissmbpwdtbl.sh +++ /dev/null @@ -1,42 +0,0 @@ -#!/bin/sh -# -# Copyright (C) 1998 Benny Holmgren -# -# Creates smbpasswd table and smb group in NIS+ -# - -nistbladm \ - -D access=og=rmcd,nw= -c \ - -s : smbpasswd_tbl \ - name=S,nogw=r \ - uid=S,nogw=r \ - user_rid=S,nogw=r \ - smb_grpid=,nw+r \ - group_rid=,nw+r \ - acb=,nw+r \ - \ - lmpwd=C,nw=,g=r,o=rm \ - ntpwd=C,nw=,g=r,o=rm \ - \ - logon_t=,nw+r \ - logoff_t=,nw+r \ - kick_t=,nw+r \ - pwdlset_t=,nw+r \ - pwdlchg_t=,nw+r \ - pwdmchg_t=,nw+r \ - \ - full_name=,nw+r \ - home_dir=,nw+r \ - dir_drive=,nw+r \ - logon_script=,nw+r \ - profile_path=,nw+r \ - acct_desc=,nw+r \ - workstations=,nw+r \ - \ - hours=,nw+r \ - smbpasswd.org_dir.`nisdefaults -d` - -nisgrpadm -c smb.`nisdefaults -d` - -nischgrp smb.`nisdefaults -d` smbpasswd.org_dir.`nisdefaults -d` - diff --git a/source4/script/mksmbpasswd.sh b/source4/script/mksmbpasswd.sh deleted file mode 100644 index 854e1bd1b5..0000000000 --- a/source4/script/mksmbpasswd.sh +++ /dev/null @@ -1,6 +0,0 @@ -#!/bin/sh -awk 'BEGIN {FS=":" - printf("#\n# SMB password file.\n#\n") - } -{ printf( "%s:%s:XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX:XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX:[U ]:LCT-00000000:%s\n", $1, $3, $5) } -' diff --git a/source4/script/scancvslog.pl b/source4/script/scancvslog.pl deleted file mode 100755 index c39f9111c1..0000000000 --- a/source4/script/scancvslog.pl +++ /dev/null @@ -1,112 +0,0 @@ -#!/usr/bin/perl -require"timelocal.pl"; - -# -# usage scancvslog.pl logfile starttime tag -# -# this will extract all entries from the specified cvs log file -# that have a date later than or equal to starttime and a tag -# value of tag. If starttime is not specified, all entries are -# extracted. If tag is not specified then entries for all -# branches are extracted. starttime must be specified as -# "monthname day, year" -# -# Example to extract all entries for SAMBA_2_2 branch from the -# log file named cvs.log -# -# scancvslog.pl cvs.log "" SAMBA_2_2 -# -# -# To extract all log entries after Jan 10, 1999 (Note month name -# must be spelled out completely). -# -# scancvslog.pl cvs.log "January 10, 1999" -# - -open(INFILE,@ARGV[0]) || die "Unable to open @ARGV[0]\n"; - -%Monthnum = ( - "January", 0, - "February", 1, - "March", 2, - "April", 3, - "May", 4, - "June", 5, - "July", 6, - "August", 7, - "September", 8, - "October", 9, - "November", 10, - "December", 11, - "Jan", 0, - "Feb", 1, - "Mar", 2, - "Apr", 3, - "May", 4, - "Jun", 5, - "Jul", 6, - "Aug", 7, - "Sep", 8, - "Oct", 9, - "Nov", 10, - "Dec", 11 -); - -$Starttime = (@ARGV[1]) ? &make_time(@ARGV[1]) : 0; -$Tagvalue = @ARGV[2]; - -while (&get_entry) { - $_=$Entry[0]; -# get rid of extra white space - s/\s+/ /g; -# get rid of any time string in date - s/ \d\d:\d\d:\d\d/,/; - s/^Date:\s*\w*\s*(\w*)\s*(\w*),\s*(\w*).*/$1 $2 $3/; - $Testtime = &make_time($_); - $Testtag = &get_tag; - if (($Testtime >= $Starttime) && ($Tagvalue eq $Testtag)) { - print join("\n",@Entry),"\n"; - } -} -close(INFILE); - -sub make_time { - $_ = @_[0]; - s/,//; - ($month, $day, $year) = split(" ",$_); - if (($year < 1900)||($day < 1)||($day > 31)||not length($Monthnum{$month})) { - print "Bad date format @_[0]\n"; - print "Date needs to be specified as \"Monthname day, year\"\n"; - print "eg: \"January 10, 1999\"\n"; - exit 1; - } - $year = ($year == 19100) ? 2000 : $year; - $month = $Monthnum{$month}; - $Mytime=&timelocal((0,0,0,$day,$month,$year)); -} - -sub get_tag { - @Mytag = grep (/Tag:/,@Entry); - $_ = @Mytag[0]; - s/^.*Tag:\s*(\w*).*/$1/; - return $_; -} - -sub get_entry { - @Entry=(); - if (not eof(INFILE)) { - while (not eof(INFILE)) { - $_ = <INFILE>; - chomp $_; - next if (not ($_)); - if (/^\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*/) { - next if ($#Entry == -1); - push(Entry,$_); - return @Entry; - } else { - push(Entry,$_); - } - } - } - return @Entry; -} diff --git a/source4/script/smbtar b/source4/script/smbtar deleted file mode 100644 index f062cba9f0..0000000000 --- a/source4/script/smbtar +++ /dev/null @@ -1,165 +0,0 @@ -#!/bin/sh -# -# smbtar script - front end to smbclient -# -# Authors: Martin.Kraemer <Martin.Kraemer@mch.sni.de> -# and Ricky Poulten (ricky@logcam.co.uk) -# -# (May need to change shell to ksh for HPUX or OSF for better getopts) -# -# sandy nov 3 '98 added -a flag -# -# Richard Sharpe, added -c 'tarmode full' so that we back up all files to -# fix a bug in clitar when a patch was added to stop system and hidden files -# being backed up. - -case $0 in - # when called by absolute path, assume smbclient is in the same directory - /*) - SMBCLIENT="`dirname $0`/smbclient";; - *) # you may need to edit this to show where your smbclient is - SMBCLIENT="smbclient";; -esac - -# These are the default values. You could fill them in if you know what -# you're doing, but beware: better not store a plain text password! -server="" -service="backup" # Default: a service called "backup" -password="" -username=$LOGNAME # Default: same user name as in *nix -verbose="2>/dev/null" # Default: no echo to stdout -log="-d 2" -newer="" -newerarg="" -blocksize="" -blocksizearg="" -clientargs="-c 'tarmode full'" -tarcmd="c" -tarargs="" -cdcmd="\\" -tapefile=${TAPE-tar.out} - -Usage(){ - ex=$1 - shift -echo >&2 "Usage: `basename $0` [<options>] [<include/exclude files>] -Function: backup/restore a Windows PC directories to a local tape file -Options: (Description) (Default) - -r Restore from tape file to PC Save from PC to tapefile - -i Incremental mode Full backup mode - -a Reset archive bit mode Don't reset archive bit - -v Verbose mode: echo command Don't echo anything - -s <server> Specify PC Server $server - -p <password> Specify PC Password $password - -x <share> Specify PC Share $service - -X Exclude mode Include - -N <newer> File for date comparison `set -- $newer; echo $2` - -b <blocksize> Specify tape's blocksize `set -- $blocksize; echo $2` - -d <dir> Specify a directory in share $cdcmd - -l <log> Specify a Samba Log Level `set -- $log; echo $2` - -u <user> Specify User Name $username - -t <tape> Specify Tape device $tapefile -" - echo >&2 "$@" - exit $ex -} - -# echo Params count: $# - -# DEC OSF AKA Digital UNIX does not seem to return a value in OPTIND if -# there are no command line params, so protect us against that ... -if [ $# = 0 ]; then - - Usage 2 "Please enter a command line parameter!" - -fi - -while getopts riavl:b:d:N:s:p:x:u:Xt: c; do - case $c in - r) # [r]estore to Windows (instead of the default "Save from Windows") - tarcmd="x" - ;; - i) # [i]ncremental - tarargs=${tarargs}ga - clientargs="-c 'tarmode inc'" - ;; - a) # [a]rchive - tarargs=${tarargs}a - ;; - l) # specify [l]og file - log="-d $OPTARG" - case "$OPTARG" in - [0-9]*) ;; - *) echo >&2 "$0: Error, log level not numeric: -l $OPTARG" - exit 1 - esac - ;; - d) # specify [d]irectory to change to in server's share - cdcmd="$OPTARG" - ;; - N) # compare with a file, test if [n]ewer - if [ -f $OPTARG ]; then - newer=$OPTARG - newerarg="N" - else - echo >&2 $0: Warning, $OPTARG not found - fi - ;; - X) # Add exclude flag - tarargs=${tarargs}X - ;; - s) # specify [s]erver's share to connect to - this MUST be given. - server="$OPTARG" - ;; - b) # specify [b]locksize - blocksize="$OPTARG" - case "$OPTARG" in - [0-9]*) ;; - *) echo >&2 "$0: Error, block size not numeric: -b $OPTARG" - exit 1 - esac - blocksizearg="b" - ;; - p) # specify [p]assword to use - password="$OPTARG" - ;; - x) # specify windows [s]hare to use - service="$OPTARG" - ;; - t) # specify [t]apefile on local host - tapefile="$OPTARG" - ;; - u) # specify [u]sername for connection - username="$OPTARG" - ;; - v) # be [v]erbose and display what's going on - verbose="" - ;; - '?') # any other switch - Usage 2 "Invalid switch specified - abort." - ;; - esac -done - -shift `expr $OPTIND - 1` - -if [ "$server" = "" ] || [ "$service" = "" ]; then - Usage 1 "No server or no service specified - abort." -fi - -# if the -v switch is set, the echo the current parameters -if [ -z "$verbose" ]; then - echo "server is $server" -# echo "share is $service" - echo "share is $service\\$cdcmd" - echo "tar args is $tarargs" -# echo "password is $password" # passwords should never be sent to screen - echo "tape is $tapefile" - echo "blocksize is $blocksize" -fi - -tarargs=${tarargs}${blocksizearg}${newerarg} - -eval $SMBCLIENT "'\\\\$server\\$service'" "'$password'" -U "'$username'" \ --E -N $log -D "'$cdcmd'" ${clientargs} \ --T${tarcmd}${tarargs} $blocksize $newer $tapefile '${1+"$@"}' $verbose diff --git a/source4/script/updatesmbpasswd.sh b/source4/script/updatesmbpasswd.sh deleted file mode 100644 index 1d7e0d7332..0000000000 --- a/source4/script/updatesmbpasswd.sh +++ /dev/null @@ -1,14 +0,0 @@ -#!/bin/sh -nawk 'BEGIN {FS=":"} -{ - if( $0 ~ "^#" ) { - print $0 - } else if( (length($4) == 32) && (($4 ~ "^[0-9A-F]*$") || ($4 ~ "^[X]*$") || ( $4 ~ "^[*]*$"))) { - print $0 - } else { - printf( "%s:%s:%s:XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX:", $1, $2, $3); - for(i = 4; i <= NF; i++) - printf("%s:", $i) - printf("\n") - } -}' diff --git a/source4/script/dcpromo.pl b/source4/setup/dcpromo.pl index 56461ae825..56461ae825 100755 --- a/source4/script/dcpromo.pl +++ b/source4/setup/dcpromo.pl diff --git a/source4/hklm.ldif b/source4/setup/hklm.ldif index a4ab32e233..a4ab32e233 100644 --- a/source4/hklm.ldif +++ b/source4/setup/hklm.ldif diff --git a/source4/script/newuser.pl b/source4/setup/newuser.pl index 22e3992bbe..6ddda5028e 100755 --- a/source4/script/newuser.pl +++ b/source4/setup/newuser.pl @@ -52,7 +52,7 @@ sub ShowHelp() print " Samba4 newuser -provision.pl [options] +newuser.pl [options] --username USERNAME choose new username --password PASSWORD set password --samdb DBPATH path to sam.ldb @@ -89,7 +89,7 @@ if (!$opt_unixname) { my $res = ""; # allow provisioning to be run from the source directory -$ENV{"PATH"} .= ":bin"; +$ENV{"PATH"} .= ":bin:../bin"; $ENV{"LDB_URL"} = $opt_samdb; diff --git a/source4/provision.ldif b/source4/setup/provision.ldif index f6cce3e285..f6cce3e285 100644 --- a/source4/provision.ldif +++ b/source4/setup/provision.ldif diff --git a/source4/script/provision.pl b/source4/setup/provision.pl index e1d5278453..4000ac3bde 100755 --- a/source4/script/provision.pl +++ b/source4/setup/provision.pl @@ -383,7 +383,7 @@ if (!$opt_adminpass) { } # allow provisioning to be run from the source directory -$ENV{"PATH"} .= ":bin"; +$ENV{"PATH"} .= ":bin:../bin"; my $res = apply_substitutions($data); diff --git a/source4/provision.zone b/source4/setup/provision.zone index c0b941c822..c0b941c822 100644 --- a/source4/provision.zone +++ b/source4/setup/provision.zone diff --git a/source4/rootdse.ldif b/source4/setup/rootdse.ldif index 534249859a..534249859a 100644 --- a/source4/rootdse.ldif +++ b/source4/setup/rootdse.ldif diff --git a/source4/script/rootdse.pl b/source4/setup/rootdse.pl index cfe49a6582..799019fad8 100755 --- a/source4/script/rootdse.pl +++ b/source4/setup/rootdse.pl @@ -140,7 +140,7 @@ unlink("newrootdse.ldb"); print "creating newrootdse.ldb ...\n"; # allow provisioning to be run from the source directory -$ENV{"PATH"} .= ":bin"; +$ENV{"PATH"} .= ":bin:../bin"; system("ldbadd -H newrootdse.ldb newrootdse.ldif"); diff --git a/source4/secrets.ldif b/source4/setup/secrets.ldif index f44521a07b..f44521a07b 100644 --- a/source4/secrets.ldif +++ b/source4/setup/secrets.ldif |