2 # Build a test environment for running Samba
12 if test -z "$SHARE_BACKEND"; then
16 if test -z "$SMBD_LOGLEVEL"; then
21 USERNAME=administrator
22 REALM=SAMBA.EXAMPLE.COM
23 DNSNAME="samba.example.com"
24 BASEDN="dc=samba,dc=example,dc=com"
26 AUTH="-U$USERNAME%$PASSWORD"
31 if test -z "$ROOT"; then
34 if test -z "$ROOT"; then
39 srcdir=`dirname $0`/../..
40 mkdir -p $PREFIX || exit $?
45 TEST_DATA_PREFIX=$PREFIX_ABS
47 TMPDIR=$PREFIX_ABS/tmp
48 ETCDIR=$PREFIX_ABS/etc
49 PIDDIR=$PREFIX_ABS/pid
50 CONFFILE=$ETCDIR/smb.conf
51 KRB5_CONFIG=$ETCDIR/krb5.conf
52 PRIVATEDIR=$PREFIX_ABS/private
53 NCALRPCDIR=$PREFIX_ABS/ncalrpc
54 LOCKDIR=$PREFIX_ABS/lockdir
56 WINBINDD_SOCKET_DIR=$PREFIX_ABS/winbind_socket
57 CONFIGURATION="--configfile=$CONFFILE"
58 LDAPDIR=$PREFIX_ABS/ldap
61 mkdir -p $PRIVATEDIR $ETCDIR $PIDDIR $NCALRPCDIR $LOCKDIR $TMPDIR $LDAPDIR/db $LDAPDIR/db/bdb-logs $LDAPDIR/db/tmp
63 if [ -z "$VALGRIND" ]; then
71 iconv:native = $nativeiconv
72 netbios name = $NETBIOSNAME
73 netbios aliases = $SERVER
76 private dir = $PRIVATEDIR
77 pid directory = $PIDDIR
78 ncalrpc dir = $NCALRPCDIR
80 share backend = $SHARE_BACKEND
81 setup directory = $SRCDIR/setup
82 js include = $SRCDIR/scripting/libjs
83 winbindd socket directory = $WINBINDD_SOCKET_DIR
84 name resolve order = bcast
85 interfaces = 127.0.0.1/8
86 tls dh params file = $DHFILE
87 panic action = $SRCDIR/script/gdb_backtrace %PID% %PROG%
89 server role = domain controller
91 server max protocol = SMB2
92 notify:inotify = false
94 torture:subunitdir = $SRCDIR/bin/torture
95 torture:basedir = $TEST_DATA_PREFIX
97 system:anonymous = true
98 #We don't want to pass our self-tests if the PAC code is wrong
99 gensec:require_pac = true
101 log level = $SMBD_LOGLEVEL
106 ntvfs handler = posix
107 posix:sharedelay = 100000
108 posix:eadb = $LOCKDIR/eadb.tdb
113 cifs:server = $SERVER
114 cifs:user = $USERNAME
115 cifs:password = $PASSWORD
116 cifs:domain = $DOMAIN
122 ntvfs handler = simple
126 ntvfs handler = cifsposix
129 ## Override default share.ldb file
130 rm -f $PRIVATEDIR/share.ldb
131 cat >$PRIVATEDIR/share.ldif<<EOF
139 name: CASE_INSENSITIVE
141 objectClass: CASE_INSENSITIVE
145 objectClass: organizationalUnit
148 ### Default IPC$ Share
149 dn: CN=IPC$,CN=Shares
161 ntvfs-handler: default
163 ### Default ADMIN$ Share
164 dn: CN=ADMIN$,CN=Shares
171 comment: Remote Admin
176 ntvfs-handler: default
185 comment: Temp Dir for Tests
188 posix-sharedelay: 100000
189 posix-eadb: $LOCKDIR/eadb.tdb
191 dn: CN=cifs,CN=Shares
201 cifs-password: $PASSWORD
206 $srcdir/bin/ldbadd -H $PRIVATEDIR/share.ldb < $PRIVATEDIR/share.ldif >/dev/null || exit 1
208 cat >$KRB5_CONFIG<<EOF
210 default_realm = SAMBA.EXAMPLE.COM
211 dns_lookup_realm = false
212 dns_lookup_kdc = false
213 ticket_lifetime = 24h
217 SAMBA.EXAMPLE.COM = {
219 admin_server = 127.0.0.1:88
220 default_domain = samba.example.com
224 pkinit_anchors = FILE:$CAFILE
228 pkinit_identity = FILE:$KDCCERTFILE,$KEYFILE
229 pkinit_anchors = FILE:$CAFILE
232 .samba.example.com = SAMBA.EXAMPLE.COM
235 . `dirname $0`/mk-keyblobs.sh
237 #Ensure the config file is valid before we start
238 $srcdir/bin/testparm $CONFIGURATION -v --suppress-prompt >/dev/null 2>&1 || {
240 echo "Failed to create configuration!" >&2
241 $srcdir/bin/testparm $CONFIGURATION >&2
245 ( $srcdir/bin/testparm $CONFIGURATION -v --suppress-prompt --parameter-name="netbios name" --section-name=global 2> /dev/null | grep -i ^$NETBIOSNAME ) >/dev/null 2>&1 || {
247 $srcdir/bin/testparm $CONFIGURATION -v --suppress-prompt --parameter-name="netbios name" --section-name=global --suppress-prompt 2> /dev/null | grep -i ^$NETBIOSNAME >&2
248 echo "Failed to create configuration!" >&2
252 PROVISION_OPTIONS="$CONFIGURATION --host-name=$NETBIOSNAME --host-ip=127.0.0.1"
253 PROVISION_OPTIONS="$PROVISION_OPTIONS --quiet --domain $DOMAIN --realm $REALM"
254 PROVISION_OPTIONS="$PROVISION_OPTIONS --adminpass $PASSWORD --root=$ROOT"
255 PROVISION_OPTIONS="$PROVISION_OPTIONS --simple-bind-dn=cn=Manager,$BASEDN --password=$PASSWORD --root=$ROOT"
256 $srcdir/bin/smbscript $srcdir/setup/provision $PROVISION_OPTIONS >&2
258 . `dirname $0`/mk-openldap.sh
260 test -z "$FEDORA_DS_PREFIX" || {
261 . `dirname $0`/mk-fedora-ds.sh
264 cat >$PRIVATEDIR/wins_config.ldif<<EOF
265 dn: name=TORTURE_6,CN=PARTNERS
266 objectClass: wreplPartner
274 $srcdir/bin/ldbadd -H $PRIVATEDIR/wins_config.ldb < $PRIVATEDIR/wins_config.ldif >/dev/null || exit 1
276 echo "KRB5_CONFIG=$KRB5_CONFIG"
277 echo "PREFIX_ABS=$PREFIX_ABS"
278 echo "TEST_DATA_PREFIX=$TEST_DATA_PREFIX"
279 echo "CONFIGURATION=$CONFIGURATION"
280 echo "CONFFILE=$CONFFILE"
281 echo "SLAPD_CONF=$SLAPD_CONF"
282 echo "PIDDIR=$PIDDIR"
284 echo "SERVER=$SERVER"
285 echo "NETBIOSNAME=$NETBIOSNAME"
286 echo "LDAP_URI=$LDAP_URI"
287 echo "LDAP_URI_ESCAPE=$LDAP_URI_ESCAPE"
288 echo "FEDORA_DS_INF=$FEDORA_DS_INF"
289 echo "DOMAIN=$DOMAIN"
290 echo "USERNAME=$USERNAME"
292 echo "DNSNAME=$DNSNAME"
293 echo "BASEDN=$BASEDN"
294 echo "PASSWORD=$PASSWORD"
295 echo "SRCDIR=$SRCDIR"
296 echo "PREFIX=$PREFIX"
297 echo "SMBD_LOGLEVEL=$SMBD_LOGLEVEL"
298 echo "LDAPDIR=$LDAPDIR"