diff options
Diffstat (limited to 'source4/script')
-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/dcpromo.pl | 225 | ||||
-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/newuser.pl | 145 | ||||
-rwxr-xr-x | source4/script/provision.pl | 443 | ||||
-rwxr-xr-x | source4/script/rootdse.pl | 152 | ||||
-rwxr-xr-x | source4/script/scancvslog.pl | 112 | ||||
-rw-r--r-- | source4/script/smbtar | 165 | ||||
-rw-r--r-- | source4/script/updatesmbpasswd.sh | 14 |
15 files changed, 0 insertions, 1903 deletions
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/dcpromo.pl b/source4/script/dcpromo.pl deleted file mode 100755 index 56461ae825..0000000000 --- a/source4/script/dcpromo.pl +++ /dev/null @@ -1,225 +0,0 @@ -#!/usr/bin/perl -w - -################################################### -# package to generate samba ads configuration -# Copyright metze@samba.org 2004 - -# released under the GNU GPL - -use strict; -use Data::Dumper; - -sub print_options($$) { - my $ads = shift; - my $ctx = shift; - my @arr; - my $i; - my $len; - - print "options:\n"; - - @arr = @{$ctx}; - $len = $#arr; - for($i = 0; $i <= $len; $i++) { - my $val = $ctx->[$i]; - print "\t".$i.": ".$val->{TEXT}."\n"; - } - - print "choise []:"; -} - -sub read_option($$) { - my $ads = shift; - my $ctx = shift; - my $val; - - $val = <STDIN>; - - return $val; -} - -sub call_option($$$) { - my $ads = shift; - my $ctx = shift; - my $switch = shift; - my $val; - my $funcref; - - $val = $ctx->[$switch]; - - $funcref = $val->{ACTION}; - - &$funcref($ads); -} - -sub ask_option($$) { - my $ads = shift; - my $ctx = shift; - my $ret; - - print_options($ads, $ctx); - - $ret = read_option($ads, $ctx); - - call_option($ads, $ctx, $ret); -} - -sub create_ads_tree($) { - my $ads = shift; - - print "Create ADS Domain:\n"; - print Dumper($ads); -} - -sub do_new_domain_in_entire_structure($) { - my $ads; - my $domain_dns; - my $domain_netbios; - - $ads->{NEW_DOMAIN} = 1; - $ads->{NEW_FOREST} = 1; - - print "full dns name of the new domain []:"; - $domain_dns = <STDIN>; - chomp $domain_dns; - $ads->{FULL_DNS_NAME} = $domain_dns; - - print "netbios name of the new domain []:"; - $domain_netbios = <STDIN>; - chomp $domain_netbios; - $ads->{NETBIOS} = $domain_netbios; - - create_ads_tree($ads); -} - -sub do_sub_domain_in_existing_structure($) { - my $ads = shift; - my $user_name; - my $user_domain; - my $user_password; - my $top_dns; - my $domain_dns; - my $domain_netbios; - my $db_folder; - my $db_logs; - my $sysvol_folder; - my $admin_password1; - my $admin_password2; - - $ads->{NEW_DOMAIN} = 1; - $ads->{NEW_FOREST} = 0; - - print "User Name []:"; - $user_name = <STDIN>; - chomp $user_name; - $ads->{USER}{NAME} = $user_name; - - print "User Domain []:"; - $user_domain = <STDIN>; - chomp $user_domain; - $ads->{USER}{DOMAIN} = $user_domain; - - print "User Password []:"; - $user_password = <STDIN>; - chomp $user_password; - $ads->{USER}{PASSWORD} = $user_password; - - print "full dns name of the top domain []:"; - $top_dns = <STDIN>; - chomp $top_dns; - $ads->{TOP_DNS_NAME} = $top_dns; - - print "suffix of the new domain []:"; - $domain_dns = <STDIN>; - chomp $domain_dns; - $ads->{FULL_DNS_NAME} = $domain_dns.".".$top_dns; - - print "netbios name of the new domain []:"; - $domain_netbios = <STDIN>; - chomp $domain_netbios; - $ads->{NETBIOS} = $domain_netbios; - - print "folder for database files []:"; - $db_folder = <STDIN>; - chomp $db_folder; - $ads->{DB_FOLDER} = $db_folder; - - print "folder for database logs []:"; - $db_logs = <STDIN>; - chomp $db_logs; - $ads->{DB_LOGS} = $db_logs; - - print "folder for SYSVOL []:"; - $sysvol_folder = <STDIN>; - chomp $sysvol_folder; - $ads->{SYSVOL_FOLDER} = $sysvol_folder; - - # - # test DNS here - # - - # - # test mixed/native here - # - - print "Administrator password []:"; - $admin_password1 = <STDIN>; - chomp $admin_password1; - print "retype Administrator password []:"; - $admin_password2 = <STDIN>; - chomp $admin_password2; - if ($admin_password1 eq $admin_password2) { - $ads->{ADMIN_PASSWORD} = $admin_password1; - } else { - $ads->{ADMIN_PASSWORD} = ""; - } - - create_ads_tree($ads); -} - -sub do_sub_structure_in_global_structure($) { - print "go on with do_sub_structure_in_global_structure\n"; -} - -sub do_new_domain($) { - my $ads = shift; - my $ctx; - - $ctx->[0]{TEXT} = "new domain in entire structure"; - $ctx->[0]{ACTION} = \&do_new_domain_in_entire_structure; - - $ctx->[1]{TEXT} = "sub domain in existing structure"; - $ctx->[1]{ACTION} = \&do_sub_domain_in_existing_structure; - - $ctx->[2]{TEXT} = "sub structure in global structure"; - $ctx->[2]{ACTION} = \&do_sub_structure_in_global_structure; - - ask_option($ads ,$ctx); -} - -sub do_existing_domain($) { - print "go on with do existing domain\n"; -} - -sub ask_new_or_exist_domain($) { - my $ads = shift; - my $ctx; - - $ctx->[0]{TEXT} = "new domain"; - $ctx->[0]{ACTION} = \&do_new_domain; - - $ctx->[1]{TEXT} = "existing domain"; - $ctx->[1]{ACTION} = \&do_existing_domain; - - ask_option($ads, $ctx); -} - -sub main { - my $ads; - - $ads->{ADS_TREE} = 1; - - ask_new_or_exist_domain($ads); -} - -main(); 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/newuser.pl b/source4/script/newuser.pl deleted file mode 100755 index 22e3992bbe..0000000000 --- a/source4/script/newuser.pl +++ /dev/null @@ -1,145 +0,0 @@ -#!/usr/bin/perl -w -# simple hack script to add a new user for Samba4 - - -use strict; -use Socket; -use Getopt::Long; - -my $opt_password; -my $opt_username; -my $opt_unixname; -my $opt_samdb = "/usr/local/samba/private/sam.ldb"; - - -# generate a random guid. Not a good algorithm. -sub randguid() -{ - my $r1 = int(rand(2**32)); - my $r2 = int(rand(2**16)); - my $r3 = int(rand(2**16)); - my $r4 = int(rand(2**16)); - my $r5 = int(rand(2**32)); - my $r6 = int(rand(2**16)); - return sprintf("%08x-%04x-%04x-%04x-%08x%04x", $r1, $r2, $r3, $r4, $r5, $r6); -} - -# generate a random password. Poor algorithm :( -sub randpass() -{ - my $pass = ""; - my $chars = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ%\$!~"; - for (my $i=0;$i<8;$i++) { - my $c = int(rand(length($chars))); - $pass .= substr($chars, $c, 1); - } - return $pass; -} - -sub search($$) -{ - my $expr = shift; - my $attrib = shift; - my $res = `ldbsearch \"$expr\" $attrib | grep ^$attrib | cut -d' ' -f2- | head -1`; - chomp $res; - return $res; -} - -############################################ -# show some help -sub ShowHelp() -{ - print " -Samba4 newuser - -provision.pl [options] - --username USERNAME choose new username - --password PASSWORD set password - --samdb DBPATH path to sam.ldb - -You must provide at least a username - -"; - exit(1); -} - -my $opt_help; - -GetOptions( - 'help|h|?' => \$opt_help, - 'username=s' => \$opt_username, - 'unixname=s' => \$opt_unixname, - 'password=s' => \$opt_password, - 'samdb=s' => \$opt_samdb - ); - -if ($opt_help || !$opt_username) { - ShowHelp(); -} - -if (!$opt_password) { - $opt_password = randpass(); - print "chose random password '$opt_password'\n"; -} - -if (!$opt_unixname) { - $opt_unixname = $opt_username; -} - -my $res = ""; - -# allow provisioning to be run from the source directory -$ENV{"PATH"} .= ":bin"; - -$ENV{"LDB_URL"} = $opt_samdb; - -my $domain_sid = search("(objectClass=domainDNS)", "objectSid"); -my $domain_dn = search("(objectClass=domainDNS)", "dn"); - -my $ldif = `ldbsearch 'cn=TemplateUser' | grep -v Template | grep -v '^#'`; -chomp $ldif; - -my $sid; - -# crude way of working out a rid -for (my $i=1001;$i<1100;$i++) { - if (search("objectSid=$domain_sid-$i","objectSid") eq "") { - $sid = "$domain_sid-$i"; - last; - } -} - -print "Chose new SID $sid\n"; - -my $dom_users = search("name=Domain Users", "dn"); - - -$ldif .= "sAMAccountName: $opt_username\n"; -$ldif .= "name: $opt_username\n"; -$ldif .= "objectSid: $sid\n"; -$ldif .= "objectGUID: " . randguid() . "\n"; -$ldif .= "memberOf: $dom_users\n"; -$ldif .= "userAccountControl: 0x10200\n"; -$ldif .= "sAMAccountType: 0x30000000\n"; -$ldif .= "objectClass: user\n"; -$ldif .= "unicodePwd: $opt_password\n"; -$ldif .= "unixName: $opt_unixname\n"; - -my $user_dn = "CN=$opt_username,CN=Users,$domain_dn"; - -open FILE, ">newuser.ldif"; -print FILE "dn: $user_dn"; -print FILE "$ldif\n"; -close FILE; - -open FILE, ">modgroup.ldif"; -print FILE " -dn: CN=Domain Users,CN=Users,$domain_dn -changetype: modify -add: member -member: $user_dn -"; -close FILE; - -system("ldbadd newuser.ldif"); -system("ldbmodify modgroup.ldif"); diff --git a/source4/script/provision.pl b/source4/script/provision.pl deleted file mode 100755 index e1d5278453..0000000000 --- a/source4/script/provision.pl +++ /dev/null @@ -1,443 +0,0 @@ -#!/usr/bin/perl -w - -use strict; -use Socket; -use Getopt::Long; - -my $opt_hostname = `hostname`; -chomp $opt_hostname; -my $opt_hostip; -my $opt_realm; -my $opt_domain; -my $opt_adminpass; -my $opt_nobody; -my $opt_nogroup; -my $opt_wheel; -my $opt_users; -my $dnsdomain; -my $netbiosname; -my $dnsname; -my $basedn; -my $defaultsite = "Default-First-Site-Name"; -my $usn = 1; - -# return the current NTTIME as an integer -sub nttime() -{ - my $t = time(); - $t += (369.0*365.25*24*60*60-(3.0*24*60*60+6.0*60*60)); - $t *= 1.0e7; - return sprintf("%lld", $t); -} - -# generate a random guid. Not a good algorithm. -sub randguid() -{ - my $r1 = int(rand(2**32)); - my $r2 = int(rand(2**16)); - my $r3 = int(rand(2**16)); - my $r4 = int(rand(2**16)); - my $r5 = int(rand(2**32)); - my $r6 = int(rand(2**16)); - return sprintf("%08x-%04x-%04x-%04x-%08x%04x", $r1, $r2, $r3, $r4, $r5, $r6); -} - -my $opt_domainguid = randguid(); -my $opt_hostguid = randguid(); -my $opt_invocationid = randguid(); - -sub randsid() -{ - return sprintf("S-1-5-21-%d-%d-%d", - int(rand(10**8)), int(rand(10**8)), int(rand(10**8))); -} - -my $opt_domainsid = randsid(); - -# generate a random password. Poor algorithm :( -sub randpass() -{ - my $pass = ""; - my $chars = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ%\$!~"; - for (my $i=0;$i<8;$i++) { - my $c = int(rand(length($chars))); - $pass .= substr($chars, $c, 1); - } - return $pass; -} - -my $joinpass = randpass(); - -sub ldaptime() -{ - my ($sec,$min,$hour,$mday,$mon,$year,$wday,$yday) = gmtime(time); - return sprintf "%04u%02u%02u%02u%02u%02u.0Z", - $year+1900, $mon+1, $mday, $hour, $min, $sec; -} - -####################### -# substitute a single variable -sub substitute($) -{ - my $var = shift; - - if ($var eq "BASEDN") { - return $basedn; - } - - if ($var eq "DOMAINSID") { - return $opt_domainsid; - } - - if ($var eq "DOMAIN") { - return $opt_domain; - } - - if ($var eq "REALM") { - return $opt_realm; - } - - if ($var eq "DNSDOMAIN") { - return $dnsdomain; - } - - if ($var eq "HOSTNAME") { - return $opt_hostname; - } - - if ($var eq "NETBIOSNAME") { - return $netbiosname; - } - - if ($var eq "DNSNAME") { - return $dnsname; - } - - if ($var eq "HOSTIP") { - return $opt_hostip; - } - - if ($var eq "LDAPTIME") { - return ldaptime(); - } - - if ($var eq "NEWGUID") { - return randguid(); - } - - if ($var eq "NEWSCHEMAGUID") { - return randguid(); - } - - if ($var eq "DOMAINGUID") { - return $opt_domainguid; - } - - if ($var eq "HOSTGUID") { - return $opt_hostguid; - } - - if ($var eq "INVOCATIONID") { - return $opt_invocationid; - } - - if ($var eq "DEFAULTSITE") { - return $defaultsite; - } - - if ($var eq "ADMINPASS") { - return $opt_adminpass; - } - - if ($var eq "RANDPASS") { - return randpass(); - } - - if ($var eq "JOINPASS") { - return $joinpass; - } - - if ($var eq "NTTIME") { - return "" . nttime(); - } - - if ($var eq "WHEEL") { - return $opt_wheel; - } - - if ($var eq "NOBODY") { - return $opt_nobody; - } - - if ($var eq "NOGROUP") { - return $opt_nogroup; - } - - if ($var eq "USERS") { - return $opt_users; - } - - if ($var eq "USN") { - my $ret = $usn; - $usn = $ret + 1; - return $ret; - } - - die "ERROR: Uknown substitution variable $var\n"; -} - - -#################################################################### -# substitute all variables in a string -sub apply_substitutions($) -{ - my $data = shift; - my $res = ""; - while ($data =~ /(.*?)\$\{(\w*)\}(.*)/s) { - my $sub = substitute($2); - $res .= "$1$sub"; - $data = $3; - } - $res .= $data; - return $res; -} - - -##################################################################### -# write a string into a file -sub FileSave($$) -{ - my($filename) = shift; - my($v) = shift; - local(*FILE); - open(FILE, ">$filename") || die "can't open $filename"; - print FILE $v; - close(FILE); -} - -##################################################################### -# read a file into a string -sub FileLoad($) -{ - my($filename) = shift; - local(*INPUTFILE); - open(INPUTFILE, $filename) || return undef; - my($saved_delim) = $/; - undef $/; - my($data) = <INPUTFILE>; - close(INPUTFILE); - $/ = $saved_delim; - return $data; -} - -####################################################################### -# add a foreign security principle -sub add_foreign($$$) -{ - my $sid = shift; - my $desc = shift; - my $unixname = shift; - return " -dn: CN=$sid,CN=ForeignSecurityPrincipals,\${BASEDN} -objectClass: top -objectClass: foreignSecurityPrincipal -cn: $sid -description: $desc -instanceType: 4 -whenCreated: \${LDAPTIME} -whenChanged: \${LDAPTIME} -uSNCreated: 1 -uSNChanged: 1 -showInAdvancedViewOnly: TRUE -name: $sid -objectGUID: \${NEWGUID} -objectSid: $sid -objectCategory: CN=Foreign-Security-Principal,CN=Schema,CN=Configuration,\${BASEDN} -unixName: $unixname - -"; -} - -############################################ -# show some help -sub ShowHelp() -{ - print " -Samba4 provisioning - -provision.pl [options] - --realm REALM set realm - --domain DOMAIN set domain - --domain-guid GUID set domainguid (otherwise random) - --domain-sid SID set domainsid (otherwise random) - --host-name HOSTNAME set hostname - --host-ip IPADDRESS set ipaddress - --host-guid GUID set hostguid (otherwise random) - --invocationid GUID set invocationid (otherwise random) - --adminpass PASSWORD choose admin password (otherwise random) - --nobody USERNAME choose 'nobody' user - --nogroup GROUPNAME choose 'nogroup' group - --wheel GROUPNAME choose 'wheel' privileged group - --users GROUPNAME choose 'users' group - -You must provide at least a realm and domain - -"; - exit(1); -} - -my $opt_help; - -GetOptions( - 'help|h|?' => \$opt_help, - 'realm=s' => \$opt_realm, - 'domain=s' => \$opt_domain, - 'domain-guid=s' => \$opt_domainguid, - 'domain-sid=s' => \$opt_domainsid, - 'host-name=s' => \$opt_hostname, - 'host-ip=s' => \$opt_hostip, - 'host-guid=s' => \$opt_hostguid, - 'invocationid=s' => \$opt_invocationid, - 'adminpass=s' => \$opt_adminpass, - 'nobody=s' => \$opt_nobody, - 'nogroup=s' => \$opt_nogroup, - 'wheel=s' => \$opt_wheel, - 'users=s' => \$opt_users, - ); - -if ($opt_help || - !$opt_realm || - !$opt_domain || - !$opt_hostname) { - ShowHelp(); -} - -$opt_realm=uc($opt_realm); -$opt_domain=uc($opt_domain); -$opt_hostname=lc($opt_hostname); -$netbiosname=uc($opt_hostname); - -if (!$opt_hostip) { - my $hip = gethostbyname($opt_hostname); - if (defined $hip) { - $opt_hostip = inet_ntoa($hip); - } else { - $opt_hostip = "<0.0.0.0>"; - } -} - -print "Provisioning host '$opt_hostname'[$opt_hostip] for domain '$opt_domain' in realm '$opt_realm'\n"; - -if (!$opt_nobody) { - if (defined getpwnam("nobody")) { - $opt_nobody = "nobody"; - } -} - -if (!$opt_nogroup) { - if (defined getgrnam("nogroup")) { - $opt_nogroup = "nogroup"; - } elsif (defined getgrnam("nobody")) { - $opt_nogroup = "nobody"; - } -} - -if (!$opt_wheel) { - if (defined getgrnam("wheel")) { - $opt_wheel = "wheel"; - } elsif (defined getgrnam("root")) { - $opt_wheel = "root"; - } -} - -if (!$opt_users) { - if (defined getgrnam("users")) { - $opt_users = "users"; - } -} - -$opt_nobody || die "Unable to determine a user for 'nobody'\n"; -$opt_nogroup || die "Unable to determine a group for 'nogroup'\n"; -$opt_users || die "Unable to determine a group for 'users'\n"; -$opt_wheel || die "Unable to determine a group for 'wheel'\n"; - -print "Using nobody='$opt_nobody' nogroup='$opt_nogroup' wheel='$opt_wheel' users='$opt_users'\n"; - -print "generating ldif ...\n"; - -$dnsdomain = lc($opt_realm); -$dnsname = lc($opt_hostname).".".$dnsdomain; -$basedn = "DC=" . join(",DC=", split(/\./, $opt_realm)); - -my $data = FileLoad("provision.ldif") || die "Unable to load provision.ldif\n"; - -$data .= add_foreign("S-1-5-7", "Anonymous", "\${NOBODY}"); -$data .= add_foreign("S-1-1-0", "World", "\${NOGROUP}"); -$data .= add_foreign("S-1-5-2", "Network", "\${NOGROUP}"); -$data .= add_foreign("S-1-5-18", "System", "root"); -$data .= add_foreign("S-1-5-11", "Authenticated Users", "\${USERS}"); - -if (!$opt_adminpass) { - $opt_adminpass = randpass(); - print "chose random Administrator password '$opt_adminpass'\n"; -} - -# allow provisioning to be run from the source directory -$ENV{"PATH"} .= ":bin"; - - -my $res = apply_substitutions($data); - -my $newdb = "newdb." . int(rand(1000)); - -print "Putting new database files in $newdb\n"; - -mkdir($newdb) || die "Unable to create temporary directory $newdb\n"; - -FileSave("$newdb/sam.ldif", $res); - -print "creating $newdb/sam.ldb ...\n"; - -system("ldbadd -H $newdb/sam.ldb $newdb/sam.ldif") == 0 || die "Failed to create sam.ldb\n"; - -$data = FileLoad("rootdse.ldif") || die "Unable to load rootdse.ldif\n"; - -$res = apply_substitutions($data); - -FileSave("$newdb/rootdse.ldif", $res); - -print "creating $newdb/rootdse.ldb ...\n"; - -system("ldbadd -H $newdb/rootdse.ldb $newdb/rootdse.ldif") == 0 || die "Failed to create rootdse.ldb\n"; - -$data = FileLoad("secrets.ldif") || die "Unable to load secrets.ldif\n"; - -$res = apply_substitutions($data); - -FileSave("$newdb/secrets.ldif", $res); - -print "creating $newdb/secrets.ldb ...\n"; - -system("ldbadd -H $newdb/secrets.ldb $newdb/secrets.ldif") == 0 || die "Failed to create secrets.ldb\n"; - -$data = FileLoad("provision.zone") || die "Unable to load provision.zone\n"; - -$res = apply_substitutions($data); - -print "saving dns zone to $newdb/$dnsdomain.zone ...\n"; - -FileSave("$newdb/$dnsdomain.zone", $res); - -print "creating $newdb/hklm.ldb ... \n"; - -system("ldbadd -H $newdb/hklm.ldb hklm.ldif") == 0 || die "Failed to create hklm.ldb\n"; - -print " - -Installation: -- Please move $newdb/*.ldb to the private/ directory of your - Samba4 installation -- Please use $newdb/$dnsdomain.zone in BIND on your dns server -"; - - diff --git a/source4/script/rootdse.pl b/source4/script/rootdse.pl deleted file mode 100755 index cfe49a6582..0000000000 --- a/source4/script/rootdse.pl +++ /dev/null @@ -1,152 +0,0 @@ -#!/usr/bin/perl -w - -use strict; -use Getopt::Long; - -my $opt_hostname = `hostname`; -chomp $opt_hostname; -my $netbiosname; -my $opt_realm; -my $opt_domain; -my $dnsdomain; -my $dnsname; -my $basedn; - -sub ldaptime() -{ - my ($sec,$min,$hour,$mday,$mon,$year,$wday,$yday) = gmtime(time); - return sprintf "%04u%02u%02u%02u%02u%02u.0Z", - $year+1900, $mon+1, $mday, $hour, $min, $sec; -} - -####################### -# substitute a single variable -sub substitute($) -{ - my $var = shift; - - if ($var eq "BASEDN") { - return $basedn; - } - - if ($var eq "NETBIOSNAME") { - return $netbiosname; - } - - if ($var eq "DNSNAME") { - return $dnsname; - } - - if ($var eq "DNSDOMAIN") { - return $dnsdomain; - } - - die "ERROR: Uknown substitution variable $var\n"; -} - -##################################################################### -# write a string into a file -sub FileSave($$) -{ - my($filename) = shift; - my($v) = shift; - local(*FILE); - open(FILE, ">$filename") || die "can't open $filename"; - print FILE $v; - close(FILE); -} - -##################################################################### -# read a file into a string -sub FileLoad($) -{ - my($filename) = shift; - local(*INPUTFILE); - open(INPUTFILE, $filename) || return undef; - my($saved_delim) = $/; - undef $/; - my($data) = <INPUTFILE>; - close(INPUTFILE); - $/ = $saved_delim; - return $data; -} - -############################################ -# show some help -sub ShowHelp() -{ - print " -Samba4 provisioning - -rootdse.pl [options] - --realm REALM set realm - --domain DOMAIN set domain - --hostname HOSTNAME set hostname - -You must provide at least a realm and domain - -"; - exit(1); -} - -my $opt_help; - -GetOptions( - 'help|h|?' => \$opt_help, - 'realm=s' => \$opt_realm, - 'domain=s' => \$opt_domain, - 'hostname=s' => \$opt_hostname, - ); - -if ($opt_help || - !$opt_realm || - !$opt_domain || - !$opt_hostname) { - ShowHelp(); -} - -$opt_realm=uc($opt_realm); -$opt_domain=uc($opt_domain); -$opt_hostname=lc($opt_hostname); -$netbiosname=uc($opt_hostname); - -print "Provisioning host '$opt_hostname' with netbios name '$netbiosname' for domain '$opt_domain' in realm '$opt_realm'\n"; - -print "generating ldif ...\n"; - -$dnsdomain = lc($opt_realm); -$dnsname = $opt_hostname.".".$dnsdomain; -$basedn = "DC=" . join(",DC=", split(/\./, $opt_realm)); - -my $data = FileLoad("rootdse.ldif") || die "Unable to load rootdse.ldif\n"; - -my $res = ""; - -print "applying substitutions ...\n"; - -while ($data =~ /(.*?)\$\{(\w*)\}(.*)/s) { - my $sub = substitute($2); - $res .= "$1$sub"; - $data = $3; -} -$res .= $data; - -print "saving ldif to newrootdse.ldif ...\n"; - -FileSave("newrootdse.ldif", $res); - -unlink("newrootdse.ldb"); - -print "creating newrootdse.ldb ...\n"; - -# allow provisioning to be run from the source directory -$ENV{"PATH"} .= ":bin"; - -system("ldbadd -H newrootdse.ldb newrootdse.ldif"); - -print "done - -Please move newrootdse.ldb to rootdse.ldb in the private/ directory of your -Samba4 installation -"; - 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") - } -}' |