]> git.ipfire.org Git - ipfire-2.x.git/blob - src/initscripts/packages/samba
suricata: Change midstream policy to "pass-flow"
[ipfire-2.x.git] / src / initscripts / packages / samba
1 #!/bin/sh
2 ###############################################################################
3 # #
4 # IPFire.org - A linux based firewall #
5 # Copyright (C) 2007-2024 IPFire Team <info@ipfire.org> #
6 # #
7 # This program is free software: you can redistribute it and/or modify #
8 # it under the terms of the GNU General Public License as published by #
9 # the Free Software Foundation, either version 3 of the License, or #
10 # (at your option) any later version. #
11 # #
12 # This program is distributed in the hope that it will be useful, #
13 # but WITHOUT ANY WARRANTY; without even the implied warranty of #
14 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the #
15 # GNU General Public License for more details. #
16 # #
17 # You should have received a copy of the GNU General Public License #
18 # along with this program. If not, see <http://www.gnu.org/licenses/>. #
19 # #
20 ###############################################################################
21
22 . /etc/sysconfig/rc
23 . $rc_functions
24
25 function fix_permissions() {
26 local lockdir="/var/lib/samba/winbindd_privileged"
27 chmod 750 "${lockdir}"
28 chgrp wbpriv "${lockdir}"
29
30 mkdir -p /var/run/samba/{nmbd,ncalrpc,winbindd}
31 }
32
33 eval $(/usr/local/bin/readhash /var/ipfire/ethernet/settings)
34
35 case "$1" in
36 start)
37 fix_permissions
38
39 boot_mesg "Starting nmbd..."
40 loadproc /usr/sbin/nmbd -D
41
42 boot_mesg "Starting smbd..."
43 loadproc /usr/sbin/smbd -D
44
45 boot_mesg "Starting winbind..."
46 loadproc /usr/sbin/winbindd
47
48 # Arguments for wsdd command
49 ARGS=(
50 # Launch as non-privileged user
51 "--user" "wsdd:wsdd"
52
53 # Launch in chroot
54 "--chroot" "/var/run/wsdd"
55
56 # Only use IPv4
57 "--ipv4only"
58
59 # Configure the workgroup
60 "--workgroup" "$(testparm -s --parameter-name workgroup 2>/dev/null)"
61 )
62
63 # Conditionally add the GREEN/BLUE interface
64 for intf in GREEN_DEV BLUE_DEV; do
65 if [ -n "${!intf}" ]; then
66 ARGS+=( "--interface" "${!intf}" )
67 fi
68 done
69
70 # Create chroot directory for wsdd
71 mkdir -p /var/run/wsdd
72
73 PIDFILE="/var/run/wsdd.pid"
74 boot_mesg "Starting Web Service Discovery Host Daemon..."
75 loadproc -b -p "${PIDFILE}" /usr/bin/wsdd "${ARGS[@]}"
76 ;;
77
78 stop)
79 boot_mesg "Stopping smbd..."
80 killproc /usr/sbin/smbd
81
82 boot_mesg "Stopping nmbd..."
83 killproc /usr/sbin/nmbd
84
85 boot_mesg "Stopping winbind..."
86 killproc /usr/sbin/winbindd
87
88 PIDFILE="/var/run/wsdd.pid"
89 boot_mesg "Stopping Web Service Discovery Host Daemon..."
90 killproc -p "${PIDFILE}" /usr/bin/wsdd
91 ;;
92
93 reload)
94 boot_mesg "Reloading smbd..."
95 reloadproc /usr/sbin/smbd
96
97 boot_mesg "Reloading nmbd..."
98 reloadproc /usr/sbin/nmbd
99
100 boot_mesg "Reloading winbind..."
101 reloadproc /usr/sbin/winbindd
102 ;;
103
104 restart)
105 $0 stop
106 sleep 3
107 $0 start
108 ;;
109
110 status)
111 statusproc /usr/sbin/nmbd
112 statusproc /usr/sbin/smbd
113 statusproc /usr/sbin/winbindd
114
115 PIDFILE="/var/run/wsdd.pid"
116 statusproc /usr/bin/wsdd
117 ;;
118
119 *)
120 echo "Usage: $0 {start|stop|reload|restart|status}"
121 exit 1
122 ;;
123 esac