73 lines
1.7 KiB
Bash
Executable File
73 lines
1.7 KiB
Bash
Executable File
#!/bin/sh
|
|
#
|
|
CONFIG=/etc/config/smb.conf
|
|
|
|
# Check that smb.conf exists.
|
|
[ -f $CONFIG ] || exit 0
|
|
|
|
start() {
|
|
echo -n "Starting winbindd services:"
|
|
if [ `/sbin/getcfg Samba Enable -u -d TRUE` = FALSE ]; then
|
|
echo " disabled."
|
|
exit 0
|
|
fi
|
|
RETVAL=1
|
|
/bin/grep -i idmap $CONFIG >/dev/null 2>&1
|
|
RETIDMAP=$?
|
|
/bin/grep -i winbind.*uid $CONFIG >/dev/null 2>&1
|
|
RETWINBIND=$?
|
|
if [ $RETIDMAP = 0 ] || [ $RETWINBIND = 0 ]; then
|
|
/sbin/daemon_mgr winbindd start "/usr/local/samba/sbin/winbindd -s $CONFIG"
|
|
/bin/touch /etc/krb5.keytab
|
|
/bin/chmod 666 /mnt/HDA_ROOT/.domain_*
|
|
RETVAL=$?
|
|
fi
|
|
[ $RETVAL -eq 0 ] && touch /var/lock/subsys/winbind || RETVAL=1
|
|
if [ "$RETVAL" = "0" ]; then echo " winbindd."; fi
|
|
|
|
idmap_rid=`/sbin/getcfg Samba "idmap_rid" -d "FALSE"`
|
|
if [ "$idmap_rid" = "FALSE" ]; then
|
|
/bin/cat /etc/config/crontab | /bin/grep idmap.sh > /dev/null
|
|
if [ $? -ne 0 ]; then
|
|
echo "0 3 * * 0 /etc/init.d/idmap.sh dump" >> /etc/config/crontab
|
|
/usr/bin/crontab /etc/config/crontab
|
|
fi
|
|
fi
|
|
return $RETVAL
|
|
}
|
|
stop() {
|
|
echo -n "Shutting down winbindd services:"
|
|
# winbinddpids=`ps guax | grep winbindd | grep -v grep | awk '{print $1}'`
|
|
# for pid in $winbinddpids; do
|
|
# kill -TERM $pid
|
|
# done
|
|
/sbin/daemon_mgr winbindd stop "/usr/local/samba/sbin/winbindd"
|
|
echo " winbindd."
|
|
/bin/sleep 1
|
|
/bin/pidof winbindd 1>>/dev/null 2>>/dev/null
|
|
[ $? != 0 ] || /bin/kill `/bin/pidof winbindd`
|
|
[ ! -f /var/lock/subsys/winbind ] || rm -f /var/lock/subsys/winbind
|
|
return $RETVAL
|
|
}
|
|
restart() {
|
|
stop
|
|
start
|
|
}
|
|
|
|
case "$1" in
|
|
start)
|
|
start
|
|
;;
|
|
stop)
|
|
stop
|
|
;;
|
|
restart)
|
|
restart
|
|
;;
|
|
*)
|
|
echo "Usage: $0 {start|stop|restart}"
|
|
exit 1
|
|
esac
|
|
|
|
exit $?
|