summaryrefslogtreecommitdiff
path: root/source4
diff options
context:
space:
mode:
Diffstat (limited to 'source4')
-rw-r--r--source4/samba3_nmbd.patch178
-rw-r--r--source4/script/addtosmbpass74
-rwxr-xr-xsource4/script/convert_smbpasswd17
-rwxr-xr-xsource4/script/creategroup27
-rwxr-xr-xsource4/script/findsmb.in152
-rwxr-xr-xsource4/script/genstruct.pl298
-rwxr-xr-xsource4/script/mknissmbpasswd.sh31
-rwxr-xr-xsource4/script/mknissmbpwdtbl.sh42
-rw-r--r--source4/script/mksmbpasswd.sh6
-rwxr-xr-xsource4/script/scancvslog.pl112
-rw-r--r--source4/script/smbtar165
-rw-r--r--source4/script/updatesmbpasswd.sh14
-rwxr-xr-xsource4/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-xsource4/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-xsource4/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-xsource4/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