2006-06-26 17:43:39 +00:00
#!/bin/sh
if [ $# -lt 1 ]
then
echo " $0 PREFIX "
exit 1
fi
PREFIX = $1
if test -z " $TLS_ENABLED " ; then
TLS_ENABLED = false
fi
2006-08-14 01:14:32 +00:00
if test -z " $SHARE_BACKEND " ; then
SHARE_BACKEND = classic
fi
2006-06-26 17:43:39 +00:00
DOMAIN = SAMBADOMAIN
USERNAME = administrator
REALM = SAMBA.EXAMPLE.COM
2006-09-04 00:32:46 +00:00
DNSNAME = "samba.example.com"
BASEDN = "dc=samba,dc=example,dc=com"
2006-06-26 17:43:39 +00:00
PASSWORD = penguin
SRCDIR = ` pwd `
ROOT = $USER
SERVER = localhost
NETBIOSNAME = localtest
if test -z " $ROOT " ; then
ROOT = $LOGNAME
fi
if test -z " $ROOT " ; then
ROOT = ` whoami`
fi
oldpwd = ` pwd `
srcdir = ` dirname $0 ` /../..
mkdir -p $PREFIX || exit $?
cd $PREFIX
PREFIX_ABS = ` pwd `
export PREFIX_ABS
cd $oldpwd
TEST_DATA_PREFIX = $PREFIX_ABS
export TEST_DATA_PREFIX
TMPDIR = $PREFIX_ABS /tmp
ETCDIR = $PREFIX_ABS /etc
PIDDIR = $PREFIX_ABS /pid
CONFFILE = $ETCDIR /smb.conf
KRB5_CONFIG = $ETCDIR /krb5.conf
PRIVATEDIR = $PREFIX_ABS /private
NCALRPCDIR = $PREFIX_ABS /ncalrpc
LOCKDIR = $PREFIX_ABS /lockdir
TLSDIR = $PRIVATEDIR /tls
2006-08-03 08:02:54 +00:00
DHFILE = $TLSDIR /dhparms.pem
2006-08-04 04:43:35 +00:00
CAFILE = $TLSDIR /ca.pem
CERTFILE = $TLSDIR /cert.pem
KEYFILE = $TLSDIR /key.pem
2006-06-26 17:43:39 +00:00
WINBINDD_SOCKET_DIR = $PREFIX_ABS /winbind_socket
CONFIGURATION = " --configfile= $CONFFILE "
2006-09-04 00:32:46 +00:00
LDAPDIR = $PREFIX_ABS /ldap
SLAPD_CONF = $LDAPDIR /slapd.conf
2006-06-26 17:43:39 +00:00
export CONFIGURATION
export CONFFILE
2006-09-04 00:32:46 +00:00
export SLAPD_CONF
export PIDDIR
2006-06-26 17:43:39 +00:00
rm -rf $PREFIX /*
2006-09-04 00:32:46 +00:00
mkdir -p $PRIVATEDIR $ETCDIR $PIDDIR $NCALRPCDIR $LOCKDIR $TMPDIR $TLSDIR $LDAPDIR /db
2006-06-26 17:43:39 +00:00
cat >$CONFFILE <<EOF
[ global]
netbios name = $NETBIOSNAME
netbios aliases = $SERVER
workgroup = $DOMAIN
realm = $REALM
private dir = $PRIVATEDIR
pid directory = $PIDDIR
ncalrpc dir = $NCALRPCDIR
lock dir = $LOCKDIR
2006-08-14 01:14:32 +00:00
share backend = $SHARE_BACKEND
2006-06-26 17:43:39 +00:00
setup directory = $SRCDIR /setup
js include = $SRCDIR /scripting/libjs
winbindd socket directory = $WINBINDD_SOCKET_DIR
name resolve order = bcast
interfaces = 127.0.0.1/8
tls enabled = $TLS_ENABLED
2006-08-03 08:02:54 +00:00
tls dh params file = $DHFILE
2006-06-26 17:43:39 +00:00
panic action = $SRCDIR /script/gdb_backtrace %PID% %PROG%
wins support = yes
server role = pdc
max xmit = 32K
server max protocol = SMB2
[ tmp]
path = $TMPDIR
read only = no
ntvfs handler = posix
posix:sharedelay = 100000
posix:eadb = $LOCKDIR /eadb.tdb
[ cifs]
read only = no
ntvfs handler = cifs
cifs:server = $SERVER
cifs:user = $USERNAME
cifs:password = $PASSWORD
cifs:domain = $DOMAIN
cifs:share = tmp
EOF
2006-08-14 01:14:32 +00:00
## Override default srahes_config.ldb file
rm -f $PRIVATEDIR /share.ldb
cat >$PRIVATEDIR /share.ldif<<EOF
### Shares basedn
dn: @INDEXLIST
@IDXATTR: name
dn: @ATTRIBUTES
cn: CASE_INSENSITIVE
dc: CASE_INSENSITIVE
name: CASE_INSENSITIVE
dn: CASE_INSENSITIVE
objectClass: CASE_INSENSITIVE
dn: CN = Shares
objectClass: top
objectClass: organizationalUnit
cn: Shares
### Default IPC$ Share
dn: CN = IPC$,CN= Shares
objectClass: top
objectClass: share
cn: IPC$
name: IPC$
type: IPC
path: /tmp
comment: Remote IPC
max-connections: -1
available: True
readonly: True
browseable: False
ntvfs-handler: default
### Default ADMIN$ Share
dn: CN = ADMIN$,CN= Shares
objectClass: top
objectClass: share
cn: ADMIN$
name: ADMIN$
type: DISK
path: /tmp
comment: Remote Admin
max-connections: -1
available: True
readonly: True
browseable: False
ntvfs-handler: default
dn: CN = tmp,CN= Shares
objectClass: top
objectClass: share
cn: tmp
name: tmp
type: DISK
path: $TMPDIR
comment: Temp Dir for Tests
readonly: False
ntvfs-handler: posix
posix-sharedelay: 100000
posix-eadb: $LOCKDIR /eadb.tdb
dn: CN = cifs,CN= Shares
objectClass: top
objectClass: share
cn: cifs
name: cifs
type: DISK
readonly: False
ntvfs-handler: cifs
cifs-server: $SERVER
cifs-user: $USERNAME
cifs-password: $PASSWORD
cifs-domain: $DOMAIN
cifs-share: tmp
EOF
$srcdir /bin/ldbadd -H $PRIVATEDIR /share.ldb < $PRIVATEDIR /share.ldif >/dev/null || exit 1
2006-06-26 17:43:39 +00:00
cat >$KRB5_CONFIG <<EOF
[ libdefaults]
default_realm = SAMBA.EXAMPLE.COM
dns_lookup_realm = false
dns_lookup_kdc = false
ticket_lifetime = 24h
forwardable = yes
[ realms]
SAMBA.EXAMPLE.COM = {
kdc = 127.0.0.1
admin_server = 127.0.0.1
default_domain = samba.example.com
}
[ domain_realm]
.samba.example.com = SAMBA.EXAMPLE.COM
EOF
2006-09-04 00:32:46 +00:00
export KRB5_CONFIG
2006-06-26 17:43:39 +00:00
2006-08-03 08:02:54 +00:00
cat >$DHFILE <<EOF
-----BEGIN DH PARAMETERS-----
MGYCYQC/eWD2xkb7uELmqLi+ygPMKyVcpHUo2yCluwnbPutEueuxrG/Cys8j8wLO
svCN/jYNyR2NszOmg7ZWcOC/4z/4pWDVPUZr8qrkhj5MRKJc52MncfaDglvEdJrv
YX70obsCAQI =
-----END DH PARAMETERS-----
EOF
2006-08-04 04:43:35 +00:00
cat >$CAFILE <<EOF
-----BEGIN CERTIFICATE-----
MIICYTCCAcygAwIBAgIE5M7SRDALBgkqhkiG9w0BAQUwZTEdMBsGA1UEChMUU2Ft
YmEgQWRtaW5pc3RyYXRpb24xNDAyBgNVBAsTK1NhbWJhIC0gdGVtcG9yYXJ5IGF1
dG9nZW5lcmF0ZWQgY2VydGlmaWNhdGUxDjAMBgNVBAMTBVNhbWJhMB4XDTA2MDgw
NDA0MzY1MloXDTA4MDcwNDA0MzY1MlowZTEdMBsGA1UEChMUU2FtYmEgQWRtaW5p
c3RyYXRpb24xNDAyBgNVBAsTK1NhbWJhIC0gdGVtcG9yYXJ5IGF1dG9nZW5lcmF0
ZWQgY2VydGlmaWNhdGUxDjAMBgNVBAMTBVNhbWJhMIGcMAsGCSqGSIb3DQEBAQOB
jAAwgYgCgYC3WJ7DNQAVnqiJxhf6Tq4pqNyUIlioDFNnkJZ6ycElhblyDb3vaagO
9c+saw3cl/4KGWBZK46HtimRApE6ZriV7yHSB4afVjhnHZvlQVccAuTKJatBpIeb
kenOX0boUVXrWWj6VVnseab+5nA+uPZQQHinRLEVhUn72I14YdKJOQIDAQABoyUw
IzAMBgNVHRMBAf8EAjAAMBMGA1UdJQQMMAoGCCsGAQUFBwMBMAsGCSqGSIb3DQEB
BQOBgQA5IVkBXU2S4i3dSSM9KmdKJinok1IOGNLZYQSyzduuie9vTmGXCQiQppWb
oSjZaf/Zn8La8THvm4QfmwruPkTEL956BRyN9hHYwHWZsebJr7DvSrF1Zugd0jFs
DZZFfDUSinYEqApdYzMka/GYTSk1Fa31G5TVD56mIdxmVAdC+A= =
-----END CERTIFICATE-----
EOF
cat >$CERTFILE <<EOF
-----BEGIN CERTIFICATE-----
MIICYTCCAcygAwIBAgIE5M7SRDALBgkqhkiG9w0BAQUwZTEdMBsGA1UEChMUU2Ft
YmEgQWRtaW5pc3RyYXRpb24xNDAyBgNVBAsTK1NhbWJhIC0gdGVtcG9yYXJ5IGF1
dG9nZW5lcmF0ZWQgY2VydGlmaWNhdGUxDjAMBgNVBAMTBVNhbWJhMB4XDTA2MDgw
NDA0MzY1MloXDTA4MDcwNDA0MzY1MlowZTEdMBsGA1UEChMUU2FtYmEgQWRtaW5p
c3RyYXRpb24xNDAyBgNVBAsTK1NhbWJhIC0gdGVtcG9yYXJ5IGF1dG9nZW5lcmF0
ZWQgY2VydGlmaWNhdGUxDjAMBgNVBAMTBVNhbWJhMIGcMAsGCSqGSIb3DQEBAQOB
jAAwgYgCgYDKg6pAwCHUMA1DfHDmWhZfd+F0C+9Jxcqvpw9ii9En3E1uflpcol3+
S9/6I/uaTmJHZre+DF3dTzb/UOZo0Zem8N+IzzkgoGkFafjXuT3BL5UPY2/H6H+p
PqVIRLOmrWImai359YyoKhFyo37Y6HPeU8QcZ+u2rS9geapIWfeuowIDAQABoyUw
IzAMBgNVHRMBAf8EAjAAMBMGA1UdJQQMMAoGCCsGAQUFBwMBMAsGCSqGSIb3DQEB
BQOBgQAmkN6XxvDnoMkGcWLCTwzxGfNNSVcYr7TtL2aJh285Xw9zaxcm/SAZBFyG
LYOChvh6hPU7joMdDwGfbiLrBnMag+BtGlmPLWwp/Kt1wNmrRhduyTQFhN3PP6fz
nBr9vVny2FewB2gHmelaPS//tXdxivSXKz3NFqqXLDJjq7P8wA= =
-----END CERTIFICATE-----
EOF
cat >$KEYFILE <<EOF
-----BEGIN RSA PRIVATE KEY-----
MIICXQIBAAKBgQDKg6pAwCHUMA1DfHDmWhZfd+F0C+9Jxcqvpw9ii9En3E1uflpc
ol3+S9/6I/uaTmJHZre+DF3dTzb/UOZo0Zem8N+IzzkgoGkFafjXuT3BL5UPY2/H
6H+pPqVIRLOmrWImai359YyoKhFyo37Y6HPeU8QcZ+u2rS9geapIWfeuowIDAQAB
AoGAAqDLzFRR/BF1kpsiUfL4WFvTarCe9duhwj7ORc6fs785qAXuwUYAJ0Uvzmy6
HqoGv3t3RfmeHDmjcpPHsbOKnsOQn2MgmthidQlPBMWtQMff5zdoYNUFiPS0XQBq
szNW4PRjaA9KkLQVTwnzdXGkBSkn/nGxkaVu7OR3vJOBoo0CQQDO4upypesnbe6p
9/xqfZ2uim8IwV1fLlFClV7WlCaER8tsQF4lEi0XSzRdXGUD/dilpY88Nb+xok/X
8Z8OvgAXAkEA+pcLsx1gN7kxnARxv54jdzQjC31uesJgMKQXjJ0h75aUZwTNHmZQ
vPxi6u62YiObrN5oivkixwFNncT9MxTxVQJBAMaWUm2SjlLe10UX4Zdm1MEB6OsC
kVoX37CGKO7YbtBzCfTzJGt5Mwc1DSLA2cYnGJqIfSFShptALlwedot0HikCQAJu
jNKEKnbf+TdGY8Q0SKvTebOW2Aeg80YFkaTvsXCdyXrmdQcifw4WdO9KucJiDhSz
Y9hVapz7ykEJtFtWjLECQQDIlfc63I5ZpXfg4/nN4IJXUW6AmPVOYIA5215itgki
cSlMYli1H9MEXH0pQMGv5Qyd0OYIx2DDg96mZ+aFvqSG
-----END RSA PRIVATE KEY-----
EOF
2006-09-04 00:32:46 +00:00
cat >$SLAPD_CONF <<EOF
loglevel 0
include $LDAPDIR /ad.schema
pidfile $PIDDIR /slapd.pid
argsfile $LDAPDIR /slapd.args
2006-09-08 04:35:00 +00:00
sasl-realm $DNSNAME
2006-09-04 00:32:46 +00:00
access to * by * write
2006-09-08 04:35:00 +00:00
authz-regexp
uid = ( [ ^,] *) ,cn= $DNSNAME ,cn= digest-md5,cn= auth
ldap:///$BASEDN ??sub?( samAccountName = $1 )
authz-regexp
uid = ( [ ^,] *) ,cn= ( [ ^,] *) ,cn= digest-md5,cn= auth
ldap:///$BASEDN ??sub?( samAccountName = $1 )
2006-09-04 00:32:46 +00:00
include $LDAPDIR /modules.conf
defaultsearchbase " $BASEDN "
backend bdb
database bdb
suffix " $BASEDN "
2006-09-08 04:35:00 +00:00
rootdn " cn=Manager, $BASEDN "
rootpw $PASSWORD
2006-09-04 00:32:46 +00:00
directory $LDAPDIR /db
index objectClass eq
index samAccountName eq
EOF
PROVISION_OPTIONS = " $CONFIGURATION --host-name= $NETBIOSNAME --host-ip=127.0.0.1 "
PROVISION_OPTIONS = " $PROVISION_OPTIONS --quiet --domain $DOMAIN --realm $REALM "
PROVISION_OPTIONS = " $PROVISION_OPTIONS --adminpass $PASSWORD --root= $ROOT "
2006-09-08 04:35:00 +00:00
PROVISION_OPTIONS = " $PROVISION_OPTIONS --simple-bind-dn=cn=Manager, $BASEDN --password= $PASSWORD --root= $ROOT "
2006-09-04 00:32:46 +00:00
$srcdir /bin/smbscript $srcdir /setup/provision $PROVISION_OPTIONS
LDAPI = " ldapi:// $LDAPDIR /ldapi "
LDAPI_ESCAPE = "ldapi://" ` echo $LDAPDIR /ldapi | sed 's|/|%2F|g' `
export LDAPI
export LDAPI_ESCAPE
#This uses the provision we just did, to read out the schema
$srcdir /bin/ad2oLschema $CONFIGURATION -H $PRIVATEDIR /sam.ldb -I $srcdir /setup/schema-map-openldap-2.3 -O $LDAPDIR /ad.schema
#Now create an LDAP baseDN
$srcdir /bin/smbscript $srcdir /setup/provision $PROVISION_OPTIONS --ldap-base
OLDPATH = $PATH
PATH = /usr/local/sbin:/usr/sbin:/sbin:$PATH
export PATH
MODCONF = $LDAPDIR /modules.conf
rm -f $MODCONF
touch $MODCONF
2006-09-08 04:35:41 +00:00
slaptest -u -f $SLAPD_CONF > /dev/null 2>& 1 || {
2006-09-04 00:32:46 +00:00
echo "enabling slapd modules"
cat > $MODCONF <<EOF
modulepath /usr/lib/ldap
moduleload back_bdb
EOF
2006-09-08 04:35:41 +00:00
}
2006-09-04 00:32:46 +00:00
if slaptest -u -f $SLAPD_CONF ; then
2006-09-08 04:35:41 +00:00
slapadd -f $SLAPD_CONF < $PRIVATEDIR /$DNSNAME .ldif || {
2006-09-04 00:32:46 +00:00
echo "slapadd failed"
2006-09-08 04:35:41 +00:00
}
2006-09-04 00:32:46 +00:00
2006-09-08 04:35:41 +00:00
slaptest -f $SLAPD_CONF || {
2006-09-04 00:32:46 +00:00
echo "slaptest after database load failed"
2006-09-08 04:35:41 +00:00
}
2006-09-04 00:32:46 +00:00
fi
PATH = $OLDPATH
export PATH
2006-06-26 17:43:39 +00:00
cat >$PRIVATEDIR /wins_config.ldif<<EOF
dn: name = TORTURE_26,CN= PARTNERS
objectClass: wreplPartner
name: TORTURE_26
address: 127.0.0.26
pullInterval: 0
pushChangeCount: 0
type: 0x3
EOF
$srcdir /bin/ldbadd -H $PRIVATEDIR /wins_config.ldb < $PRIVATEDIR /wins_config.ldif >/dev/null || exit 1
2006-09-04 00:32:46 +00:00