http:///https:///api.php?action=feedcontributions&user=Mpetre&feedformat=atom
SambaWiki - User contributions [en]
2024-03-29T14:33:57Z
User contributions
MediaWiki 1.39.5
https://wiki.samba.org/index.php?title=Multiple_Server_Instances&diff=1440
Multiple Server Instances
2006-03-14T20:04:44Z
<p>Mpetre: Fixed layout problems</p>
<hr />
<div>Multiple Server Hosting<br />
<br />
The use of multiple server hosting involves running multiple separate instances of Samba, each with it's own configuration file. This method is complicated by the fact that each instance of nmbd, smbd and winbindd must have write access to entirely separate TDB files. The ability to keep separate the TDB files used by nmbd, smbd and winbindd can be enabled either by recompiling Samba for each server hosted so each has its own default TDB directories, or by configuring these in the smb.conf file, in which case each instance of nmbd, smbd and winbindd must be told to start up with its own smb.conf configuration file.<br />
<br />
Each instance should operate on its own IP address (that independent IP address can be an IP Alias). Each instance of nmbd, smbd and winbindd should listen only on its own IP socket. This can be secured using the socket address parameter. Each instance of the Samba server will have its own SID also, this means that the servers are discrete and independent of each other.<br />
<br />
== Conventions ==<br />
<br />
* this document will use the configuration file method<br />
* this document is RHEL centric for the interfaces and file locations<br />
* the domain will be kansai<br />
* the instances will be named nara and heian<br />
* nara will listen on eth0:1<br />
* heian will listen on eth0:2<br />
<br />
== Preparation ==<br />
<br />
To have multiple instances of samba running, you will need to setup at least one virtual interface per samba instance. We will setup two persistant virtual interfaces right now.<br />
<br />
<br />
<br />
cd /etc/sysconfig/network-scripts<br />
cat << EOF > ifcfg-eth0:1<br />
DEVICE=eth0:1<br />
BOOTPROTO=static<br />
BROADCAST=192.168.255.255<br />
HWADDR=00:08:02:91:2C:58<br />
IPADDR=192.168.127.1<br />
NETMASK=255.255.0.0<br />
NETWORK=192.168.0.0<br />
ONBOOT=yes<br />
TYPE=Ethernet<br />
EOF<br />
cat << EOF > ifcfg-eth0:2<br />
DEVICE=eth0:2<br />
BOOTPROTO=static<br />
BROADCAST=192.168.255.255<br />
HWADDR=00:08:02:91:2C:58<br />
IPADDR=192.168.127.2<br />
NETMASK=255.255.0.0<br />
NETWORK=192.168.0.0<br />
ONBOOT=yes<br />
TYPE=Ethernet<br />
EOF<br />
<br />
ifup eth0:1 <br />
ifup eth0:2<br />
<br />
cat << EOF >> /etc/hosts<br />
192.168.127.1 nara.kansai nara<br />
192.168.127.2 heian.kansai heian<br />
EOF<br />
<br />
<br />
<br />
You will also need one separate set of directories per instance for the samba private files (pids, databases, ...) and shares:<br />
<br />
<br />
mkdir -p /var/run/samba/nara /var/run/samba/heian<br />
mkdir -p /var/cache/samba/nara /var/cache/samba/heian<br />
mkdir -p /var/log/samba/nara /var/log/samba/heian<br />
mkdir -p /shares/nara/todaiji /shares/heian/jingu<br />
<br />
<br />
== Configuration files ==<br />
Create two configuration files: /etc/samba/smb.conf.nara and /etc/samba/smb.conf.heian<br />
<br />
<br />
cd /etc/samba<br />
<br />
cat <<EOF >smb.conf.nara<br />
[global]<br />
add share command = /usr/bin/modify_samba_config.pl<br />
delete share command = /usr/bin/modify_samba_config.pl<br />
socket options = TCP_NODELAY IPTOS_LOWDELAY SO_RCVBUF=8576 SO_SNDBUF=8576<br />
change share command = /usr/bin/modify_samba_config.pl<br />
workgroup = kansai<br />
security = user<br />
bind interfaces only = yes<br />
interfaces = eth0:1<br />
netbios name = nara<br />
pid directory = /var/run/samba/nara<br />
lock directory = /var/cache/samba/nara<br />
private dir = /var/cache/samba/nara<br />
<br />
[todaiji]<br />
path = /shares/nara/todaiji<br />
EOF<br />
<br />
cat <<EOF >smb.conf.heian<br />
[global]<br />
add share command = /usr/bin/modify_samba_config.pl<br />
delete share command = /usr/bin/modify_samba_config.pl<br />
socket options = TCP_NODELAY IPTOS_LOWDELAY SO_RCVBUF=8576 SO_SNDBUF=8576<br />
change share command = /usr/bin/modify_samba_config.pl<br />
workgroup = kansai<br />
security = user<br />
bind interfaces only = yes<br />
interfaces = eth0:2<br />
netbios name = heian<br />
pid directory = /var/run/samba/heian<br />
lock directory = /var/cache/samba/heian<br />
private dir = /var/cache/samba/heian<br />
<br />
[jingu]<br />
path = /shares/heian/jingu<br />
EOF<br />
<br />
<br />
In /etc/sysconfig, create two files named samba.nara and samba.heian<br />
<br />
<br />
cd /etc/sysconfig<br />
<br />
cat <<EOF >samba.nara<br />
# Options to smbd<br />
SMBDOPTIONS="-D -s /etc/samba/smb.conf.nara -l /var/log/samba/nara"<br />
# Options to nmbd<br />
NMBDOPTIONS="-D -s /etc/samba/smb.conf.nara -l /var/log/samba/nara"<br />
# Options for winbindd<br />
WINBINDOPTIONS=""<br />
EOF<br />
<br />
cat <<EOF >samba.heian<br />
# Options to smbd<br />
SMBDOPTIONS="-D -s /etc/samba/smb.conf.heian -l /var/log/samba/heian"<br />
# Options to nmbd<br />
NMBDOPTIONS="-D -s /etc/samba/smb.conf.heian -l /var/log/samba/heian"<br />
# Options for winbindd<br />
WINBINDOPTIONS=""<br />
EOF<br />
<br />
<br />
== Startup scripts ==<br />
<br />
The default RHEL startup scripts have some issues that make them almost useless for the purpose of multiple servers. So we will use modified versions instead.<br />
<br />
<br />
cat <<EOF > smb.nara<br />
#!/bin/sh<br />
#<br />
# chkconfig: - 91 35<br />
# description: Starts and stops the Samba smbd and nmbd daemons \<br />
# used to provide SMB network services.<br />
#<br />
# pidfile: /var/run/samba/nara/smbd.pid<br />
# pidfile: /var/run/samba/nara/nmbd.pid<br />
# config: /etc/samba/smb.conf.nara<br />
<br />
<br />
# Source function library.<br />
if [ -f /etc/init.d/functions ] ; then<br />
. /etc/init.d/functions<br />
elif [ -f /etc/rc.d/init.d/functions ] ; then<br />
. /etc/rc.d/init.d/functions<br />
else<br />
exit 0<br />
fi<br />
<br />
# Avoid using root's TMPDIR<br />
unset TMPDIR<br />
<br />
# Source networking configuration.<br />
. /etc/sysconfig/network<br />
<br />
if [ -f /etc/sysconfig/samba.nara ]; then<br />
. /etc/sysconfig/samba.nara<br />
fi<br />
<br />
# Check that networking is up.<br />
[ ${NETWORKING} = "no" ] && exit 0<br />
<br />
# Check that smb.conf exists.<br />
[ -f /etc/samba/smb.conf.nara ] || exit 0<br />
<br />
# Check that we can write to it... so non-root users stop here<br />
[ -w /etc/samba/smb.conf.nara ] || exit 0<br />
<br />
<br />
RETVAL=0<br />
<br />
<br />
start() {<br />
KIND="SMB"<br />
echo -n $"Starting $KIND services: "<br />
daemon smbd $SMBDOPTIONS<br />
RETVAL=$?<br />
echo<br />
KIND="NMB"<br />
echo -n $"Starting $KIND services: "<br />
daemon nmbd $NMBDOPTIONS<br />
RETVAL2=$?<br />
echo<br />
[ $RETVAL -eq 0 -a $RETVAL2 -eq 0 ] && touch /var/lock/subsys/smb.nara || \<br />
RETVAL=1<br />
return $RETVAL<br />
}<br />
<br />
stop() {<br />
KIND="SMB"<br />
echo -n $"Shutting down $KIND services: "<br />
kill `cat /var/run/samba/nara/smbd.pid`<br />
RETVAL=$?<br />
echo<br />
KIND="NMB"<br />
echo -n $"Shutting down $KIND services: "<br />
kill `cat /var/run/samba/nara/nmbd.pid`<br />
RETVAL2=$?<br />
[ $RETVAL -eq 0 -a $RETVAL2 -eq 0 ] && rm -f /var/lock/subsys/smb.nara<br />
echo ""<br />
return $RETVAL<br />
}<br />
<br />
restart() {<br />
stop<br />
start<br />
}<br />
<br />
reload() {<br />
echo -n $"Reloading smb.conf file: "<br />
kill -HUP `cat /var/run/samba/nara/smbd.pid`<br />
RETVAL=$?<br />
echo<br />
return $RETVAL<br />
} <br />
<br />
rhstatus() {<br />
status smbd<br />
status nmbd<br />
}<br />
<br />
case "$1" in<br />
start)<br />
start<br />
;;<br />
stop)<br />
stop<br />
;;<br />
restart)<br />
restart<br />
;;<br />
reload)<br />
reload<br />
;;<br />
status)<br />
rhstatus<br />
;;<br />
condrestart)<br />
[ -f /var/lock/subsys/smb.nara ] && restart || :<br />
;;<br />
*)<br />
echo $"Usage: $0 {start|stop|restart|reload|status|condrestart}"<br />
exit 1<br />
esac<br />
<br />
exit $?<br />
EOF<br />
<br />
cat <<EOF >smb.heian<br />
#!/bin/sh<br />
#<br />
# chkconfig: - 91 35<br />
# description: Starts and stops the Samba smbd and nmbd daemons \<br />
# used to provide SMB network services.<br />
#<br />
# pidfile: /var/run/samba/heian/smbd.pid<br />
# pidfile: /var/run/samba/heian/nmbd.pid<br />
# config: /etc/samba/smb.conf.heian<br />
<br />
<br />
# Source function library.<br />
if [ -f /etc/init.d/functions ] ; then<br />
. /etc/init.d/functions<br />
elif [ -f /etc/rc.d/init.d/functions ] ; then<br />
. /etc/rc.d/init.d/functions<br />
else<br />
exit 0<br />
fi<br />
<br />
# Avoid using root's TMPDIR<br />
unset TMPDIR<br />
<br />
# Source networking configuration.<br />
. /etc/sysconfig/network<br />
<br />
if [ -f /etc/sysconfig/samba.heian ]; then<br />
. /etc/sysconfig/samba.heian<br />
fi<br />
<br />
# Check that networking is up.<br />
[ ${NETWORKING} = "no" ] && exit 0<br />
<br />
# Check that smb.conf exists.<br />
[ -f /etc/samba/smb.conf.heian ] || exit 0<br />
<br />
# Check that we can write to it... so non-root users stop here<br />
[ -w /etc/samba/smb.conf.heian ] || exit 0<br />
<br />
<br />
RETVAL=0<br />
<br />
<br />
start() {<br />
KIND="SMB"<br />
echo -n $"Starting $KIND services: "<br />
daemon smbd $SMBDOPTIONS<br />
RETVAL=$?<br />
echo<br />
KIND="NMB"<br />
echo -n $"Starting $KIND services: "<br />
daemon nmbd $NMBDOPTIONS<br />
RETVAL2=$?<br />
echo<br />
[ $RETVAL -eq 0 -a $RETVAL2 -eq 0 ] && touch /var/lock/subsys/smb || \<br />
RETVAL=1<br />
return $RETVAL<br />
}<br />
<br />
stop() {<br />
KIND="SMB"<br />
echo -n $"Shutting down $KIND services: "<br />
kill `cat /var/run/samba/heian/smbd.pid`<br />
RETVAL=$?<br />
echo<br />
KIND="NMB"<br />
echo -n $"Shutting down $KIND services: "<br />
kill `cat /var/run/samba/heian/nmbd.pid`<br />
RETVAL2=$?<br />
[ $RETVAL -eq 0 -a $RETVAL2 -eq 0 ] && rm -f /var/lock/subsys/smb.heian<br />
echo ""<br />
return $RETVAL<br />
}<br />
<br />
<br />
restart() {<br />
stop<br />
start<br />
}<br />
<br />
reload() {<br />
echo -n $"Reloading smb.conf file: "<br />
kill -HUP `cat /var/run/samba/heian/smbd.pid`<br />
RETVAL=$?<br />
echo<br />
return $RETVAL<br />
}<br />
<br />
rhstatus() {<br />
status smbd<br />
status nmbd<br />
}<br />
<br />
case "$1" in<br />
start)<br />
start<br />
;;<br />
stop)<br />
stop<br />
;;<br />
restart)<br />
restart<br />
;;<br />
reload)<br />
reload<br />
;;<br />
status)<br />
rhstatus<br />
;;<br />
condrestart)<br />
[ -f /var/lock/subsys/smb.heian ] && restart || :<br />
;;<br />
*)<br />
echo $"Usage: $0 {start|stop|restart|reload|status|condrestart}"<br />
exit 1<br />
esac<br />
<br />
exit $?<br />
EOF<br />
<br />
<br />
<br />
== Testing ==<br />
<br />
stop and disable the default samba, start the instances<br />
<br />
root@naniwa: # service smb stop<br />
Shutting down smb: [ OK ]<br />
<br />
root@naniwa: # chkconfig smb off <br />
<br />
root@naniwa: # chkconfig --list smb<br />
smb 0:off 1:off 2:off 3:off 4:off 5:off 6:off<br />
<br />
root@naniwa: # service smb.nara start<br />
Starting SMB: [ OK ]<br />
Starting NMB: [ OK ]<br />
<br />
root@naniwa: # service smb.heian start<br />
Starting SMB: [ OK ]<br />
Starting NMB: [ OK ]<br />
<br />
enumerate the shares on each instance<br />
<br />
<br />
root@naniwa: # smbclient -L nara -k<br />
Domain=[kansai] OS=[Unix] Server=[Samba 3.0.9-1.3E.5]<br />
<br />
Sharename Type Comment<br />
--------- ---- -------<br />
todaiji Disk<br />
IPC$ IPC IPC Service (Samba 3.0.9-1.3E.5)<br />
ADMIN$ IPC IPC Service (Samba 3.0.9-1.3E.5)<br />
Domain=[kansai] OS=[Unix] Server=[Samba 3.0.9-1.3E.5]<br />
<br />
Server Comment<br />
--------- -------<br />
nara Samba 3.0.9-1.3E.5<br />
<br />
Workgroup Master<br />
--------- -------<br />
kansai<br />
<br />
root@naniwa: # smbclient -L heian -k<br />
Domain=[kansai] OS=[Unix] Server=[Samba 3.0.9-1.3E.5]<br />
<br />
Sharename Type Comment<br />
--------- ---- -------<br />
jingu Disk<br />
IPC$ IPC IPC Service (Samba 3.0.9-1.3E.5)<br />
ADMIN$ IPC IPC Service (Samba 3.0.9-1.3E.5)<br />
Domain=[kansai] OS=[Unix] Server=[Samba 3.0.9-1.3E.5]<br />
<br />
Server Comment<br />
--------- -------<br />
heian Samba 3.0.9-1.3E.5<br />
<br />
Workgroup Master<br />
--------- -------<br />
kansai<br />
<br />
<br />
Play with instances and test connectivity<br />
<br />
<br />
root@naniwa: # service smb.nara stop<br />
Shutting down SMB services:<br />
Shutting down NMB services:<br />
<br />
root@naniwa: # smbclient -L nara -k<br />
Error connecting to 192.168.127.1 (Connection refused)<br />
Connection to nara failed<br />
<br />
root@naniwa: # smbclient -L heian -k<br />
Domain=[kansai] OS=[Unix] Server=[Samba 3.0.9-1.3E.5]<br />
<br />
Sharename Type Comment<br />
--------- ---- -------<br />
jingu Disk<br />
IPC$ IPC IPC Service (Samba 3.0.9-1.3E.5)<br />
ADMIN$ IPC IPC Service (Samba 3.0.9-1.3E.5)<br />
Domain=[kansai] OS=[Unix] Server=[Samba 3.0.9-1.3E.5]<br />
<br />
Server Comment<br />
--------- -------<br />
heian Samba 3.0.9-1.3E.5<br />
<br />
Workgroup Master<br />
--------- -------<br />
kansai <br />
<br />
root@naniwa: # service smb.nara start<br />
Starting SMB services: [ OK ]<br />
Starting NMB services: [ OK ]<br />
<br />
root@naniwa: # service smb.heian stop<br />
Shutting down SMB services:<br />
Shutting down NMB services:<br />
<br />
root@naniwa: # smbclient -L nara -U%<br />
Domain=[kansai] OS=[Unix] Server=[Samba 3.0.9-1.3E.5]<br />
<br />
Sharename Type Comment<br />
--------- ---- -------<br />
todaiji Disk<br />
IPC$ IPC IPC Service (Samba 3.0.9-1.3E.5)<br />
ADMIN$ IPC IPC Service (Samba 3.0.9-1.3E.5)<br />
Domain=[kansai] OS=[Unix] Server=[Samba 3.0.9-1.3E.5]<br />
<br />
Server Comment<br />
--------- -------<br />
nara Samba 3.0.9-1.3E.5<br />
<br />
Workgroup Master<br />
--------- -------<br />
kansai<br />
<br />
root@naniwa: # smbclient -L heian -U%<br />
Error connecting to 192.168.127.2 (Connection refused)<br />
Connection to heian failed<br />
root@naniwa: # service smb.heian start<br />
root@naniwa: # smbclient -L heian -k<br />
Domain=[kansai] OS=[Unix] Server=[Samba 3.0.9-1.3E.5]<br />
<br />
Sharename Type Comment<br />
--------- ---- -------<br />
todaiji Disk<br />
IPC$ IPC IPC Service (Samba 3.0.9-1.3E.5)<br />
ADMIN$ IPC IPC Service (Samba 3.0.9-1.3E.5)<br />
Domain=[kansai] OS=[Unix] Server=[Samba 3.0.9-1.3E.5]<br />
<br />
Server Comment<br />
--------- -------<br />
heian Samba 3.0.9-1.3E.5<br />
<br />
Workgroup Master<br />
--------- -------<br />
kansai <br />
<br />
<br />
== Wrapup ==<br />
<br />
As you can see, you now have two totally independent instances of samba running on the same host.<br />
<br />
[[User:Mpetre|Mpetre]] 13:40, 14 March 2006 (CST)</div>
Mpetre
https://wiki.samba.org/index.php?title=Multiple_Server_Instances&diff=1439
Multiple Server Instances
2006-03-14T19:40:59Z
<p>Mpetre: </p>
<hr />
<div>Multiple Server Hosting<br />
<br />
The use of multiple server hosting involves running multiple separate instances of Samba, each with it's own configuration file. This method is complicated by the fact that each instance of nmbd, smbd and winbindd must have write access to entirely separate TDB files. The ability to keep separate the TDB files used by nmbd, smbd and winbindd can be enabled either by recompiling Samba for each server hosted so each has its own default TDB directories, or by configuring these in the smb.conf file, in which case each instance of nmbd, smbd and winbindd must be told to start up with its own smb.conf configuration file.<br />
<br />
Each instance should operate on its own IP address (that independent IP address can be an IP Alias). Each instance of nmbd, smbd and winbindd should listen only on its own IP socket. This can be secured using the socket address parameter. Each instance of the Samba server will have its own SID also, this means that the servers are discrete and independent of each other.<br />
<br />
Conventions<br />
<br />
* this document will use the configuration file method<br />
* this document is RHEL centric for the interfaces and file locations<br />
* the domain will be kansai<br />
* the instances will be named nara and heian<br />
* nara will listen on eth0:1<br />
* heian will listen on eth0:2<br />
<br />
Preparation<br />
<br />
To have multiple instances of samba running, you will need to setup at least one virtual interface per samba instance. We will setup two persistant virtual interfaces right now.<br />
<br />
Code:<br />
<br />
cd /etc/sysconfig/network-scripts<br />
cat << EOF > ifcfg-eth0:1<br />
DEVICE=eth0:1<br />
BOOTPROTO=static<br />
BROADCAST=192.168.255.255<br />
HWADDR=00:08:02:91:2C:58<br />
IPADDR=192.168.127.1<br />
NETMASK=255.255.0.0<br />
NETWORK=192.168.0.0<br />
ONBOOT=yes<br />
TYPE=Ethernet<br />
EOF<br />
cat << EOF > ifcfg-eth0:2<br />
DEVICE=eth0:2<br />
BOOTPROTO=static<br />
BROADCAST=192.168.255.255<br />
HWADDR=00:08:02:91:2C:58<br />
IPADDR=192.168.127.2<br />
NETMASK=255.255.0.0<br />
NETWORK=192.168.0.0<br />
ONBOOT=yes<br />
TYPE=Ethernet<br />
EOF<br />
<br />
ifup eth0:1 <br />
ifup eth0:2<br />
<br />
cat << EOF >> /etc/hosts<br />
192.168.127.1 nara.kansai nara<br />
192.168.127.2 heian.kansai heian<br />
EOF<br />
<br />
<br />
<br />
You will also need one separate set of directories per instance for the samba private files (pids, databases, ...) and shares:<br />
<br />
Code:<br />
<br />
mkdir -p /var/run/samba/nara /var/run/samba/heian<br />
mkdir -p /var/cache/samba/nara /var/cache/samba/heian<br />
mkdir -p /var/log/samba/nara /var/log/samba/heian<br />
mkdir -p /shares/nara/todaiji /shares/heian/jingu<br />
<br />
<br />
Configuration files<br />
<br />
Create two configuration files: /etc/samba/smb.conf.nara and /etc/samba/smb.conf.heian<br />
<br />
Code:<br />
<br />
cd /etc/samba<br />
<br />
cat <<EOF >smb.conf.nara<br />
[global]<br />
add share command = /usr/bin/modify_samba_config.pl<br />
delete share command = /usr/bin/modify_samba_config.pl<br />
socket options = TCP_NODELAY IPTOS_LOWDELAY SO_RCVBUF=8576 SO_SNDBUF=8576<br />
change share command = /usr/bin/modify_samba_config.pl<br />
workgroup = kansai<br />
security = user<br />
bind interfaces only = yes<br />
interfaces = eth0:1<br />
netbios name = nara<br />
pid directory = /var/run/samba/nara<br />
lock directory = /var/cache/samba/nara<br />
private dir = /var/cache/samba/nara<br />
<br />
[todaiji]<br />
path = /shares/nara/todaiji<br />
EOF<br />
<br />
cat <<EOF >smb.conf.heian<br />
[global]<br />
add share command = /usr/bin/modify_samba_config.pl<br />
delete share command = /usr/bin/modify_samba_config.pl<br />
socket options = TCP_NODELAY IPTOS_LOWDELAY SO_RCVBUF=8576 SO_SNDBUF=8576<br />
change share command = /usr/bin/modify_samba_config.pl<br />
workgroup = kansai<br />
security = user<br />
bind interfaces only = yes<br />
interfaces = eth0:2<br />
netbios name = heian<br />
pid directory = /var/run/samba/heian<br />
lock directory = /var/cache/samba/heian<br />
private dir = /var/cache/samba/heian<br />
<br />
[jingu]<br />
path = /shares/heian/jingu<br />
EOF<br />
<br />
<br />
In /etc/sysconfig, create two files named samba.nara and samba.heian<br />
<br />
Code:<br />
<br />
cd /etc/sysconfig<br />
<br />
cat <<EOF >samba.nara<br />
# Options to smbd<br />
SMBDOPTIONS="-D -s /etc/samba/smb.conf.nara -l /var/log/samba/nara"<br />
# Options to nmbd<br />
NMBDOPTIONS="-D -s /etc/samba/smb.conf.nara -l /var/log/samba/nara"<br />
# Options for winbindd<br />
WINBINDOPTIONS=""<br />
EOF<br />
<br />
cat <<EOF >samba.heian<br />
# Options to smbd<br />
SMBDOPTIONS="-D -s /etc/samba/smb.conf.heian -l /var/log/samba/heian"<br />
# Options to nmbd<br />
NMBDOPTIONS="-D -s /etc/samba/smb.conf.heian -l /var/log/samba/heian"<br />
# Options for winbindd<br />
WINBINDOPTIONS=""<br />
EOF<br />
<br />
<br />
Startup scripts<br />
<br />
The default RHEL startup scripts have some issues that make them almost useless for the purpose of multiple servers. So we will use modified versions instead.<br />
<br />
Code:<br />
<br />
cat <<EOF > smb.nara<br />
#!/bin/sh<br />
#<br />
# chkconfig: - 91 35<br />
# description: Starts and stops the Samba smbd and nmbd daemons \<br />
# used to provide SMB network services.<br />
#<br />
# pidfile: /var/run/samba/nara/smbd.pid<br />
# pidfile: /var/run/samba/nara/nmbd.pid<br />
# config: /etc/samba/smb.conf.nara<br />
<br />
<br />
# Source function library.<br />
if [ -f /etc/init.d/functions ] ; then<br />
. /etc/init.d/functions<br />
elif [ -f /etc/rc.d/init.d/functions ] ; then<br />
. /etc/rc.d/init.d/functions<br />
else<br />
exit 0<br />
fi<br />
<br />
# Avoid using root's TMPDIR<br />
unset TMPDIR<br />
<br />
# Source networking configuration.<br />
. /etc/sysconfig/network<br />
<br />
if [ -f /etc/sysconfig/samba.nara ]; then<br />
. /etc/sysconfig/samba.nara<br />
fi<br />
<br />
# Check that networking is up.<br />
[ ${NETWORKING} = "no" ] && exit 0<br />
<br />
# Check that smb.conf exists.<br />
[ -f /etc/samba/smb.conf.nara ] || exit 0<br />
<br />
# Check that we can write to it... so non-root users stop here<br />
[ -w /etc/samba/smb.conf.nara ] || exit 0<br />
<br />
<br />
RETVAL=0<br />
<br />
<br />
start() {<br />
KIND="SMB"<br />
echo -n $"Starting $KIND services: "<br />
daemon smbd $SMBDOPTIONS<br />
RETVAL=$?<br />
echo<br />
KIND="NMB"<br />
echo -n $"Starting $KIND services: "<br />
daemon nmbd $NMBDOPTIONS<br />
RETVAL2=$?<br />
echo<br />
[ $RETVAL -eq 0 -a $RETVAL2 -eq 0 ] && touch /var/lock/subsys/smb.nara || \<br />
RETVAL=1<br />
return $RETVAL<br />
}<br />
<br />
stop() {<br />
KIND="SMB"<br />
echo -n $"Shutting down $KIND services: "<br />
kill `cat /var/run/samba/nara/smbd.pid`<br />
RETVAL=$?<br />
echo<br />
KIND="NMB"<br />
echo -n $"Shutting down $KIND services: "<br />
kill `cat /var/run/samba/nara/nmbd.pid`<br />
RETVAL2=$?<br />
[ $RETVAL -eq 0 -a $RETVAL2 -eq 0 ] && rm -f /var/lock/subsys/smb.nara<br />
echo ""<br />
return $RETVAL<br />
}<br />
<br />
restart() {<br />
stop<br />
start<br />
}<br />
<br />
reload() {<br />
echo -n $"Reloading smb.conf file: "<br />
kill -HUP `cat /var/run/samba/nara/smbd.pid`<br />
RETVAL=$?<br />
echo<br />
return $RETVAL<br />
} <br />
<br />
rhstatus() {<br />
status smbd<br />
status nmbd<br />
}<br />
<br />
case "$1" in<br />
start)<br />
start<br />
;;<br />
stop)<br />
stop<br />
;;<br />
restart)<br />
restart<br />
;;<br />
reload)<br />
reload<br />
;;<br />
status)<br />
rhstatus<br />
;;<br />
condrestart)<br />
[ -f /var/lock/subsys/smb.nara ] && restart || :<br />
;;<br />
*)<br />
echo $"Usage: $0 {start|stop|restart|reload|status|condrestart}"<br />
exit 1<br />
esac<br />
<br />
exit $?<br />
EOF<br />
<br />
cat <<EOF >smb.heian<br />
#!/bin/sh<br />
#<br />
# chkconfig: - 91 35<br />
# description: Starts and stops the Samba smbd and nmbd daemons \<br />
# used to provide SMB network services.<br />
#<br />
# pidfile: /var/run/samba/heian/smbd.pid<br />
# pidfile: /var/run/samba/heian/nmbd.pid<br />
# config: /etc/samba/smb.conf.heian<br />
<br />
<br />
# Source function library.<br />
if [ -f /etc/init.d/functions ] ; then<br />
. /etc/init.d/functions<br />
elif [ -f /etc/rc.d/init.d/functions ] ; then<br />
. /etc/rc.d/init.d/functions<br />
else<br />
exit 0<br />
fi<br />
<br />
# Avoid using root's TMPDIR<br />
unset TMPDIR<br />
<br />
# Source networking configuration.<br />
. /etc/sysconfig/network<br />
<br />
if [ -f /etc/sysconfig/samba.heian ]; then<br />
. /etc/sysconfig/samba.heian<br />
fi<br />
<br />
# Check that networking is up.<br />
[ ${NETWORKING} = "no" ] && exit 0<br />
<br />
# Check that smb.conf exists.<br />
[ -f /etc/samba/smb.conf.heian ] || exit 0<br />
<br />
# Check that we can write to it... so non-root users stop here<br />
[ -w /etc/samba/smb.conf.heian ] || exit 0<br />
<br />
<br />
RETVAL=0<br />
<br />
<br />
start() {<br />
KIND="SMB"<br />
echo -n $"Starting $KIND services: "<br />
daemon smbd $SMBDOPTIONS<br />
RETVAL=$?<br />
echo<br />
KIND="NMB"<br />
echo -n $"Starting $KIND services: "<br />
daemon nmbd $NMBDOPTIONS<br />
RETVAL2=$?<br />
echo<br />
[ $RETVAL -eq 0 -a $RETVAL2 -eq 0 ] && touch /var/lock/subsys/smb || \<br />
RETVAL=1<br />
return $RETVAL<br />
}<br />
<br />
stop() {<br />
KIND="SMB"<br />
echo -n $"Shutting down $KIND services: "<br />
kill `cat /var/run/samba/heian/smbd.pid`<br />
RETVAL=$?<br />
echo<br />
KIND="NMB"<br />
echo -n $"Shutting down $KIND services: "<br />
kill `cat /var/run/samba/heian/nmbd.pid`<br />
RETVAL2=$?<br />
[ $RETVAL -eq 0 -a $RETVAL2 -eq 0 ] && rm -f /var/lock/subsys/smb.heian<br />
echo ""<br />
return $RETVAL<br />
}<br />
<br />
<br />
restart() {<br />
stop<br />
start<br />
}<br />
<br />
reload() {<br />
echo -n $"Reloading smb.conf file: "<br />
kill -HUP `cat /var/run/samba/heian/smbd.pid`<br />
RETVAL=$?<br />
echo<br />
return $RETVAL<br />
}<br />
<br />
rhstatus() {<br />
status smbd<br />
status nmbd<br />
}<br />
<br />
case "$1" in<br />
start)<br />
start<br />
;;<br />
stop)<br />
stop<br />
;;<br />
restart)<br />
restart<br />
;;<br />
reload)<br />
reload<br />
;;<br />
status)<br />
rhstatus<br />
;;<br />
condrestart)<br />
[ -f /var/lock/subsys/smb.heian ] && restart || :<br />
;;<br />
*)<br />
echo $"Usage: $0 {start|stop|restart|reload|status|condrestart}"<br />
exit 1<br />
esac<br />
<br />
exit $?<br />
EOF<br />
<br />
<br />
<br />
Testing<br />
<br />
stop and disable the default samba, start the instances<br />
<br />
root@naniwa: # service smb stop<br />
Shutting down smb: [ OK ]<br />
<br />
root@naniwa: # chkconfig smb off <br />
<br />
root@naniwa: # chkconfig --list smb<br />
smb 0:off 1:off 2:off 3:off 4:off 5:off 6:off<br />
<br />
root@naniwa: # service smb.nara start<br />
Starting SMB: [ OK ]<br />
Starting NMB: [ OK ]<br />
<br />
root@naniwa: # service smb.heian start<br />
Starting SMB: [ OK ]<br />
Starting NMB: [ OK ]<br />
<br />
enumerate the shares on each instance<br />
<br />
<br />
root@naniwa: # smbclient -L nara -k<br />
Domain=[kansai] OS=[Unix] Server=[Samba 3.0.9-1.3E.5]<br />
<br />
Sharename Type Comment<br />
--------- ---- -------<br />
todaiji Disk<br />
IPC$ IPC IPC Service (Samba 3.0.9-1.3E.5)<br />
ADMIN$ IPC IPC Service (Samba 3.0.9-1.3E.5)<br />
Domain=[kansai] OS=[Unix] Server=[Samba 3.0.9-1.3E.5]<br />
<br />
Server Comment<br />
--------- -------<br />
nara Samba 3.0.9-1.3E.5<br />
<br />
Workgroup Master<br />
--------- -------<br />
kansai<br />
<br />
root@naniwa: # smbclient -L heian -k<br />
Domain=[kansai] OS=[Unix] Server=[Samba 3.0.9-1.3E.5]<br />
<br />
Sharename Type Comment<br />
--------- ---- -------<br />
jingu Disk<br />
IPC$ IPC IPC Service (Samba 3.0.9-1.3E.5)<br />
ADMIN$ IPC IPC Service (Samba 3.0.9-1.3E.5)<br />
Domain=[kansai] OS=[Unix] Server=[Samba 3.0.9-1.3E.5]<br />
<br />
Server Comment<br />
--------- -------<br />
heian Samba 3.0.9-1.3E.5<br />
<br />
Workgroup Master<br />
--------- -------<br />
kansai<br />
<br />
<br />
Play with instances and test connectivity<br />
<br />
<br />
root@naniwa: # service smb.nara stop<br />
Shutting down SMB services:<br />
Shutting down NMB services:<br />
<br />
root@naniwa: # smbclient -L nara -k<br />
Error connecting to 192.168.127.1 (Connection refused)<br />
Connection to nara failed<br />
<br />
root@naniwa: # smbclient -L heian -k<br />
Domain=[kansai] OS=[Unix] Server=[Samba 3.0.9-1.3E.5]<br />
<br />
Sharename Type Comment<br />
--------- ---- -------<br />
jingu Disk<br />
IPC$ IPC IPC Service (Samba 3.0.9-1.3E.5)<br />
ADMIN$ IPC IPC Service (Samba 3.0.9-1.3E.5)<br />
Domain=[kansai] OS=[Unix] Server=[Samba 3.0.9-1.3E.5]<br />
<br />
Server Comment<br />
--------- -------<br />
heian Samba 3.0.9-1.3E.5<br />
<br />
Workgroup Master<br />
--------- -------<br />
kansai <br />
<br />
root@naniwa: # service smb.nara start<br />
Starting SMB services: [ OK ]<br />
Starting NMB services: [ OK ]<br />
<br />
root@naniwa: # service smb.heian stop<br />
Shutting down SMB services:<br />
Shutting down NMB services:<br />
<br />
root@naniwa: # smbclient -L nara -U%<br />
Domain=[kansai] OS=[Unix] Server=[Samba 3.0.9-1.3E.5]<br />
<br />
Sharename Type Comment<br />
--------- ---- -------<br />
todaiji Disk<br />
IPC$ IPC IPC Service (Samba 3.0.9-1.3E.5)<br />
ADMIN$ IPC IPC Service (Samba 3.0.9-1.3E.5)<br />
Domain=[kansai] OS=[Unix] Server=[Samba 3.0.9-1.3E.5]<br />
<br />
Server Comment<br />
--------- -------<br />
nara Samba 3.0.9-1.3E.5<br />
<br />
Workgroup Master<br />
--------- -------<br />
kansai<br />
<br />
root@naniwa: # smbclient -L heian -U%<br />
Error connecting to 192.168.127.2 (Connection refused)<br />
Connection to heian failed<br />
root@naniwa: # service smb.heian start<br />
root@naniwa: # smbclient -L heian -k<br />
Domain=[kansai] OS=[Unix] Server=[Samba 3.0.9-1.3E.5]<br />
<br />
Sharename Type Comment<br />
--------- ---- -------<br />
todaiji Disk<br />
IPC$ IPC IPC Service (Samba 3.0.9-1.3E.5)<br />
ADMIN$ IPC IPC Service (Samba 3.0.9-1.3E.5)<br />
Domain=[kansai] OS=[Unix] Server=[Samba 3.0.9-1.3E.5]<br />
<br />
Server Comment<br />
--------- -------<br />
heian Samba 3.0.9-1.3E.5<br />
<br />
Workgroup Master<br />
--------- -------<br />
kansai <br />
<br />
<br />
Wrapup<br />
<br />
As you can see, you now have two totally independent instances of samba running on the same host.<br />
[[User:Mpetre|Mpetre]] 13:40, 14 March 2006 (CST)</div>
Mpetre
https://wiki.samba.org/index.php?title=Main_Page&diff=1438
Main Page
2006-03-14T17:03:58Z
<p>Mpetre: /* Configuration */</p>
<hr />
<div>== '''Samba Wiki for Developers''' ==<br />
<br />
To be filled in with internal design docs, API descriptions, etc...<br />
<br />
===[[Samba3]]===<br />
<br />
===[[Samba4]]===<br />
<br />
[[Samba-4.0.0TP2]]<br />
<br />
[[Samba4/Status|Status]]<br />
<br />
== '''Samba Wiki for Users''' ==<br />
<br />
Welcome to the Samba Wiki. It is hoped that many will participate in the wiki experience to promote an alternative reference for things that aren't required or universally necessary to be in the official samba documentation.<br />
<br />
===[[:Category:Category Configuration|Configuration]]===<br />
<br />
[[Event Logging]]<br />
<br />
[[Samba as a print server]]<br />
<br />
[[Multiple Server Instances]]<br />
<br />
===[[:Category:Category Documentation|Documentation]]===<br />
<br />
[[Samba Features added/changed (by release)]]<br />
<br />
[[Documentation Links]]<br />
<br />
[[Event Logging]]<br />
<br />
===[[:Category:Category FAQ|FAQ]]===<br />
<br />
[[Frequently Asked Questions]]<br />
<br />
[[Samba Myths]]<br />
<br />
[[Samba Troubleshooting]]<br />
<br />
===[[:Category:Category HowTos|HowTos]]===<br />
<br />
[[Feature Specific HOWTOs]]<br />
<br />
[[Logon scripting]]<br />
<br />
[[Samba & Roaming Profiles]]<br />
<br />
[[Samba and Windows Policies]]<br />
<br />
[[Software deployment on Samba]]<br />
<br />
[[Mounting samba shares from a unix client]]<br />
<br />
===[[:Category:Category Installation|Installation]]===<br />
<br />
[[Distribution Specific Pages]]<br />
<br />
===[[:Category:Category Integration|Integration]]===<br />
<br />
[[Exchange Server Alternatives]]<br />
<br />
[[Samba & LDAP]]<br />
<br />
[[Samba & Kerberos]]<br />
<br />
[[Samba & Active Directory]]<br />
<br />
===[[:Category:Category Tools|Tools]]===<br />
<br />
[[Account Management Tools]]<br />
<br />
===[[:Category:Category Links to Pages in other Languages|Links to Pages in other Languages]]===<br />
<br />
[[ SambaHK ]]<br />
----<br />
--[[User:Whitecraig|Whitecraig]] 06:57, 2 March 2006 (CST)<br />
'''Bold text'''</div>
Mpetre