summaryrefslogtreecommitdiff
path: root/packaging
diff options
context:
space:
mode:
Diffstat (limited to 'packaging')
-rwxr-xr-xpackaging/Caldera/OpenLinux/samba.init-lsb41
1 files changed, 39 insertions, 2 deletions
diff --git a/packaging/Caldera/OpenLinux/samba.init-lsb b/packaging/Caldera/OpenLinux/samba.init-lsb
index f14eef648f..615e17b21f 100755
--- a/packaging/Caldera/OpenLinux/samba.init-lsb
+++ b/packaging/Caldera/OpenLinux/samba.init-lsb
@@ -21,6 +21,10 @@ NAME_S=smbd
DAEMON_S=/usr/sbin/$NAME_S
NAME_N=nmbd
DAEMON_N=/usr/sbin/$NAME_N
+NAME_W=winbindd
+DAEMON_W=/usr/sbin/$NAME_W
+
+config_file=/etc/samba.d/smb.conf
# Source function library (and set vital variables).
. @SVIdir@/functions
@@ -36,14 +40,44 @@ status() {
return 0 # seems to be up and running
}
+# this function is dedicated to Jan Terpstra. -- Klaus Singvogel, Sep. 2001.
+WinbdConfig() {
+ # returns 0 if winbindd is not configured,
+ # and 1 if winbindd is configured.
+
+ local config_file=$1; shift # file to check
+
+ # check if "winbind uid" is set in samba config file
+ egrep -q '[^#]*winbind uid' $config_file || return 0
+
+ found=0;
+ # We also need to check if least one PAM module control file does
+ # NOT have pam_winbind.so commented out
+ for i in /etc/pam.d/*; do
+ if [ ! -f $i ]; then next; fi
+ egrep -q '[^#]*pam_winbind.so' $i && found=1 && break;
+ done
+
+ if [ $found != 0 ]; then
+ # if so, ensure that in /etc/nsswitch.conf we have for
+ # "passwd", "shadow", "group" an entry for "winbind"
+ egrep -q '^passwd:.*winbind' /etc/nsswitch.conf && return 1
+ egrep -q '^shadow:.*winbind' /etc/nsswitch.conf && return 1
+ egrep -q '^group:.*winbind' /etc/nsswitch.conf && return 1
+ fi
+
+ return 0
+}
+
case "$1" in
start)
[ ! -e $SVIlock ] || exit 0
[ -x $DAEMON_S -a -x $DAEMON_N ] || exit 5
- SVIemptyConfig /etc/samba.d/smb.conf && exit 6
+ SVIemptyConfig $config_file && exit 6
echo -n "Starting $SVIsubsys services: "
ssd -S -n $NAME_S -x $DAEMON_S -- $OPTIONS_SMB
+ WinbdConfig $config_file || ssd -S -n $NAME_W -x $DAEMON_W -- $OPTIONS_WINBD
ssd -S -n $NAME_N -x $DAEMON_N -- $OPTIONS_NMB
ret=$?
@@ -55,8 +89,9 @@ case "$1" in
[ -e $SVIlock ] || exit 0
echo -n "Stopping $SVIsubsys services: "
- ssd -K -p /var/lock/samba.d/$NAME_N.pid -n $NAME_N #-x $DAEMON_N
ssd -K -p /var/lock/samba.d/$NAME_S.pid -n $NAME_S #-x $DAEMON_S
+ ssd -K -p /var/lock/samba.d/$NAME_W.pid -n $NAME_W #-x $DAEMON_W
+ ssd -K -p /var/lock/samba.d/$NAME_N.pid -n $NAME_N #-x $DAEMON_N
ret=$?
@@ -73,6 +108,8 @@ case "$1" in
reload)
echo -n "Reloading $SVIsubsys service configuration: "
# nmbd has no config file to reload
+ ssd -K --signal 1 -p /var/lock/samba.d/$NAME_N.pid -n $NAME_N #-x $DAEMON_N
+ ssd -K --signal 1 -p /var/lock/samba.d/$NAME_W.pid -n $NAME_W #-x $DAEMON_W
ssd -K --signal 1 -p /var/lock/samba.d/$NAME_S.pid -n $NAME_S #-x $DAEMON_S
ret=$?
echo "."