blob: b3a00ea78393120f3646d12f558ab1d980dbdf7e (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
|
#! /bin/sh
# Common functions for Samba build scripts.
# Copyright (C) 2001 by Martin Pool <mbp@samba.org>
# The following variables are passed in by the calling script. They
# originate in either the buildfarm scripts or the configured
# Makefile.
# PREFIX = Installed prefix of samba test installation. Used to
# locate binaries, configuration files, etc.
# XXX: It's pretty bad to clobber the installed configuration file and
# other data in $prefix, because somebody might unwittingly run this
# with prefix=/usr.
template_smb_conf_setup() {
cat basicsmb.smb.conf$1.template | \
sed "s|PREFIX|$prefix|g" | \
sed "s|BUILD_FARM|$pwd|g" | \
sed "s|WHOAMI|$whoami|g" | \
sed "s|LOGLEVEL|$loglevel|g" \
> $prefix/lib/smb.conf$1
echo "template_smb_conf_setup: Created $prefix/lib/smb.conf$1"
}
test_smb_conf_setup() {
echo "test_smb_conf_setup: Configuring: "
echo " PREFIX=$prefix"
echo " BUILD_FARM=$pwd"
echo " WHOAMI=$whoami"
echo " LOGLEVEL=$loglevel"
case "$prefix" in
/usr*|/|//)
echo "** I don't want to clobber your installation in "
echo "** $prefix"
echo "** by running tests there. Please reconfigure this source tree to"
echo "** use a different prefix."
exit 1
esac
template_smb_conf_setup
template_smb_conf_setup .hostsequiv
template_smb_conf_setup .invalidusers
echo "127.0.0.1 localhost">$prefix/lib/lmhosts
echo "127.0.0.2 BUILDFARM">>$prefix/lib/lmhosts
echo "127.0.0.3 SHARE">>$prefix/lib/lmhosts
echo "127.0.0.4 USER">>$prefix/lib/lmhosts
echo "127.0.0.5 SERVER">>$prefix/lib/lmhosts
echo "127.0.0.6 DOMAIN">>$prefix/lib/lmhosts
echo "127.0.0.7 HOSTSEQUIV">>$prefix/lib/lmhosts
echo "127.0.0.1" > $prefix/lib/hosts.equiv
cp basicsmb.smb.conf.share $prefix/lib/smb.conf.share
cp basicsmb.smb.conf.user $prefix/lib/smb.conf.user
cp basicsmb.smb.conf.server $prefix/lib/smb.conf.server
cp basicsmb.smb.conf.domain $prefix/lib/smb.conf.domain
touch $prefix/lib/smb.conf.
touch $prefix/lib/smb.conf.localhost
}
test_smbpasswd() {
test_smbpasswd_password="$1"
rm -f $prefix/private/smbpasswd
echo "( echo $test_smbpasswd_password ; echo $test_smbpasswd_password; ) | $prefix/bin/smbpasswd -L -s -a $whoami"
( echo $password ; echo $password; ) | $prefix/bin/smbpasswd -L -s -a $whoami
status=$?
if [ $status = 0 ]; then
echo "smbpasswd correctly set initial password ($test_smbpasswd_password)"
else
echo "smbpasswd failed to set initial password ($test_smbpasswd_password)! (status $status)"
return 1
fi
return 0
}
test_listfilesauth() {
remote_name="$1"
echo $prefix/bin/smbclient//$remote_name/samba -n buildclient -U$whoami%$password -c 'ls'
$prefix/bin/smbclient //$remote_name/samba -n buildclient -U$whoami%$password -c 'ls'
status=$?
if [ $status = 0 ]; then
echo "listed files OK"
else
echo "listing files with smbd failed with status $status"
return 1
fi
return 0
}
test_listfilesnpw() {
remote_name="$1"
echo $prefix/bin/smbclient //$remote_name/samba -n buildclient -U$whoami% -c 'ls'
$prefix/bin/smbclient //$remote_name/samba -n buildclient -U$whoami% -c 'ls'
status=$?
if [ $status = 0 ]; then
echo "smbd listed files with NO PASSWORD on an authenticated share!"
return 1
else
echo "listing files with smbd failed with status $status (correct)"
fi
return 0
}
test_listfilesauth_should_deny() {
remote_name="$1"
echo $prefix/bin/smbclient //$remote_name/samba -n buildclient -U$whoami%$password -c 'ls'
$prefix/bin/smbclient //$remote_name/samba -n buildclient -U$whoami%$password -c 'ls'
status=$?
if [ $status = 0 ]; then
echo "smbd LISTED FILES despite smb.conf entires to the contary!"
return 1
else
echo "listing files with smbd failed with status $status (correct)"
fi
return 0
}
echo "LIBSMB_PROG=$LIBSMB_PROG" >&2
|