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-11-07 04:26:45 +00:00
if test -z " $SMBD_LOGLEVEL " ; then
SMBD_LOGLEVEL = 1
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
2006-09-22 19:43:08 +00:00
AUTH = " -U $USERNAME % $PASSWORD "
2006-06-26 17:43:39 +00:00
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-09-22 19:43:08 +00:00
export AUTH
2006-09-22 20:00:49 +00:00
export SERVER
export NETBIOSNAME
2006-06-26 17:43:39 +00:00
rm -rf $PREFIX /*
2006-09-28 17:08:17 +00:00
mkdir -p $PRIVATEDIR $ETCDIR $PIDDIR $NCALRPCDIR $LOCKDIR $TMPDIR $TLSDIR $LDAPDIR /db $LDAPDIR /db/bdb-logs $LDAPDIR /db/tmp
2006-06-26 17:43:39 +00:00
2006-09-11 09:21:58 +00:00
if [ -z " $VALGRIND " ] ; then
nativeiconv = "true"
else
nativeiconv = "false"
fi
2006-06-26 17:43:39 +00:00
cat >$CONFFILE <<EOF
[ global]
2006-09-11 09:21:58 +00:00
iconv:native = $nativeiconv
2006-06-26 17:43:39 +00:00
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
2006-12-13 11:19:51 +00:00
server role = domain controller
2006-06-26 17:43:39 +00:00
max xmit = 32K
server max protocol = SMB2
2006-09-11 07:59:02 +00:00
notify:inotify = false
2006-09-16 15:51:41 +00:00
ldb:nosync = true
2006-10-16 20:05:19 +00:00
torture:subunitdir = $SRCDIR /bin/torture
2006-11-12 03:40:38 +00:00
torture:basedir = $TEST_DATA_PREFIX
2006-06-26 17:43:39 +00:00
2006-10-16 20:05:19 +00:00
system:anonymous = true
2006-11-07 04:26:45 +00:00
#We don't want to pass our self-tests if the PAC code is wrong
gensec:require_pac = true
log level = $SMBD_LOGLEVEL
2006-09-13 10:26:32 +00:00
2006-06-26 17:43:39 +00:00
[ 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
2006-09-15 19:24:38 +00:00
2006-09-15 21:05:03 +00:00
[ simple]
path = $TMPDIR
read only = no
ntvfs handler = simple
2006-09-15 19:24:38 +00:00
[ cifsposixtestshare]
read only = no
2006-09-15 21:39:38 +00:00
ntvfs handler = cifsposix
2006-09-15 19:24:38 +00:00
path = $TMPDIR
2006-06-26 17:43:39 +00:00
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 = {
2006-09-09 07:51:30 +00:00
kdc = 127.0.0.1:88
admin_server = 127.0.0.1:88
2006-06-26 17:43:39 +00:00
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-13 10:26:32 +00:00
allow update_anon
2006-09-08 04:35:00 +00:00
authz-regexp
uid = ( [ ^,] *) ,cn= $DNSNAME ,cn= digest-md5,cn= auth
2006-09-13 10:26:32 +00:00
ldap:///$BASEDN ??sub?( samAccountName = \$ 1)
2006-09-08 04:35:00 +00:00
authz-regexp
uid = ( [ ^,] *) ,cn= ( [ ^,] *) ,cn= digest-md5,cn= auth
2006-09-13 10:26:32 +00:00
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
2006-09-22 19:43:08 +00:00
index name eq
index objectSid eq
index objectCategory eq
index member eq
index uidNumber eq
index gidNumber eq
index unixName eq
index privilege eq
2006-09-28 17:08:17 +00:00
index nCName eq pres
2006-09-22 19:43:08 +00:00
index lDAPDisplayName eq
index subClassOf eq
2006-09-28 17:08:17 +00:00
index dnsRoot eq
index nETBIOSName eq pres
2006-09-04 00:32:46 +00:00
2006-09-21 06:44:12 +00:00
overlay syncprov
syncprov-checkpoint 100 10
syncprov-sessionlog 100
2006-09-04 00:32:46 +00:00
EOF
2006-09-28 17:08:17 +00:00
cat > $LDAPDIR /db/DB_CONFIG <<EOF
#
# Set the database in memory cache size.
#
set_cachesize 0 524288 0
#
# Set database flags (this is a test environment, we don't need to fsync()).
#
set_flags DB_TXN_NOSYNC
#
# Set log values.
#
set_lg_regionmax 104857
set_lg_max 1048576
set_lg_bsize 209715
set_lg_dir $LDAPDIR /db/bdb-logs
#
# Set temporary file creation directory.
#
set_tmp_dir $LDAPDIR /db/tmp
EOF
2006-09-04 00:32:46 +00:00
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
2006-09-26 11:31:14 +00:00
dn: name = TORTURE_6,CN= PARTNERS
2006-06-26 17:43:39 +00:00
objectClass: wreplPartner
2006-09-26 11:31:14 +00:00
name: TORTURE_6
address: 127.0.0.6
2006-06-26 17:43:39 +00:00
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