/etc/dhcp/dhclient-enter-hooks.d/samba is in samba-common 2:4.1.6+dfsg-1ubuntu2.
This file is owned by root:root, with mode 0o755.
The actual contents of the file can be viewed below.
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 | #!/bin/sh
SAMBA_DHCP_CONF=/etc/samba/dhcp.conf
netbios_setup() {
# No need to continue if we're called with an unsupported option
case $reason in
BOUND|RENEW|REBIND|REBOOT|EXPIRE|FAIL|RELEASE|STOP)
;;
*)
return
;;
esac
umask 022
local other_servers=""
local serverlist=""
# the destination file won't exist yet on the first run after
# installing samba
if [ -e $SAMBA_DHCP_CONF ] && [ -s $SAMBA_DHCP_CONF ]
then
# don't continue if no settings have changed
if [ "$new_netbios_name_servers" = "$old_netbios_name_servers" ] \
&& [ "$new_netbios_scope" = "$old_netbios_scope" ] \
&& [ -n "$new_netbios_name_servers" ]
then
return
fi
# reparse our own file
other_servers=`sed -n -e"s/[[:space:]]$interface:[^[:space:]]*//g; \
s/^[[:space:]]*wins server[[:space:]]*=[[:space:]]*//pi" \
$SAMBA_DHCP_CONF`
serverlist="$other_servers"
fi
for server in $new_netbios_name_servers
do
serverlist="$serverlist $interface:$server"
done
echo -n > ${SAMBA_DHCP_CONF}.new
# If we're updating on failure/expire, AND there are no WINS
# servers for other interfaces, leave the file empty.
if [ -z "$other_servers" ]
then
if [ "$reason" = FAIL ] || [ "$reason" = EXPIRE ]
then
mv ${SAMBA_DHCP_CONF}.new $SAMBA_DHCP_CONF
return
fi
fi
if [ -n "$serverlist" ]
then
echo " wins server =$serverlist" >> ${SAMBA_DHCP_CONF}.new
fi
if [ -n "$new_netbios_scope" ]
then
echo " netbios scope = $new_netbios_scope" >> ${SAMBA_DHCP_CONF}.new
fi
mv ${SAMBA_DHCP_CONF}.new $SAMBA_DHCP_CONF
# reload the samba server
# We don't necessarily have the samba package installed. #414841
[ -x /etc/init.d/smbd ] && /usr/sbin/invoke-rc.d smbd reload
}
netbios_setup
|