There is an english version off this document. english

Swat is een onderdeel van de Samba suite.
Het is een webservertje bedoelt om via een web-browser;

Heh, ik ben een slacker! Wat moet ik dan met een GUI configiratie tool voor Samba!

True....

Maar.... Als newbie is dat heel wat waard! Toch?

swat:
Uit de manpage
SWAT(8)                                                   SWAT(8)

NAME
       swat - Samba Web Administration Tool

SYNOPSIS
       swat [ -s  ]  [ -a ]

DESCRIPTION
       This tool is part of the  Sambasuite.

       swat allows a Samba administrator to configure the complex
       smb.conf(5)file via a Web browser.  In  addition,  a  swat
       configuration  page has help links to all the configurable
       options in the smb.conf file allowing an administrator  to
       easily look up the effects of any change.
        

Swat start je via de inetd daemon.
Op die manier wordt swat gestart als er een vraag voor komt.

Eerlijk is eerlijk, dit is eigenlijk een RTFM topic. Alles wat nu volgt staat bijna letterlijk in de manpage van swat. Let maar op:

(Het kan ook zijn dat het meeste werk al gedaan is met de installatie van je distro (bij Slack is dit bv het geval(hoezo onvriendelijke distro))) :D

Om swat te configureren moeten 2 bestanden aangepast worden:

/etc/services:
Uit de services manpage
SERVICES(5)         Linux Programmer's Manual         SERVICES(5)

NAME
       services - Internet network services list

DESCRIPTION
       services is a plain ASCII file providing a mapping between
       friendly textual names for internet  services,  and  their
       underlying assigned port numbers and protocol types. Every
       networking program should look into this file to  get  the
       port number (and protocol) for its service.  The C library
       routines   getservent(3),   getservbyname(3),   getservby-
       port(3), setservent(3), and endservent(3) support querying
       this file from programs.
        

In /etc/services moet dus een regel opgenomen worden voor swat.
Uit de swat manpage
       In /etc/services you need to add a line like this:

       swat 901/tcp
        

Bij mij (slackware, waar de regel al stond) ziet dat er zo uit:
accessbuilder   888/udp
swat            901/tcp                 # samba web configuration tool
ftps-data       989/tcp                 # ftp protocol, data, over TLS/SSL
        

De regels over accesbuilder en ftps-dat hebben er uiteraard niets mee te maken. Die heb ik laten staan om een beetje plaats aanduiding te krijgen. Maar in feite maakt het niets uit waar je die regel zet in /etc/services.

/etc/inetd.conf
Uit de inetd manpage
     Upon execution, inetd reads its configuration information from a configu-
     ration file which, by default, is /etc/inetd.conf.  There must be an
     entry for each field of the configuration file, with entries for each
     field separated by a tab or a space.  Comments are denoted by a ``#'' at
     the beginning of a line.  There must be an entry for each field.  The
     fields of the configuration file are as follows:

           service name
           socket type
           protocol
           wait/nowait[.max]
           user[.group] or user[:group]
           server program
           server program arguments
        

De manpage van swat geeft letterlijk de regel die toegevoegd moet worden aan /etc/inetd.conf:
       In /etc/inetd.conf you should add a line like this:

       swat stream tcp nowait.400 root  /usr/local/samba/bin/swat
       swat
        

Maar hier zit wel een instinkertje.
De laatste swat staat op een eigen regel, terwijl dit eigenlijk een optie is voor het commando swat. De regel moet eigenlijk zijn:
       swat stream tcp nowait.400 root  /usr/local/samba/bin/swat swat
        

Controleer ook nog ff of "/usr/local/samba/bin/swat" wel klopt. Het is best mogelijk dat de swat executable bij jou op een andere plek staat.
Dit doe je (als root) met het commando `which swat`.
root@bilbo:/home/bilbo# which swat
/usr/sbin/swat
root@bilbo:/home/bilbo#
        

Indien ik /etc/inet.conf niet wijzig, zal swat bij mij dus niet werken (gelukkig stond die regel bij mij al correct in /etc/inetd.conf.
#Samba Web Administration Tool:
#swat           stream  tcp     nowait.400 root /usr/sbin/swat  swat
        

Ik hoef alleen het "#" caracter maar weg te halen om de inetd configuratie goed te krijgen.

En de swat manpage vervolgt met:
       One  you have edited /etc/services and /etc/inetd.conf you
       need to send a HUP signal to inetd. To do this use kill -1
       PID where PID is the process ID of the inetd daemon.
        
Incl. typo :D

Herstarten van services wordt ook uitgelegd in "Een stukje process management".

Zo, inetd is nu in staat om swat te starten.

De swat manpage vervolgt met:
   LAUNCHING
       To  launch  SWAT  just  run  your favorite web browser and
       point it at "http://localhost:901/".

       Note that you can attach to SWAT  from  any  IP  connected
       machine  but  connecting from a remote machine leaves your
       connection open to password sniffing as passwords will  be
       sent in the clear over the wire.
        

Of te wel; je browsed naar je eigen machine op poort 901. Je zult verwelkomt worden door een aanlogscherm van swat. Heb je de bovenstaande "Note" ook gelezen"

Tttttthats all folks, zie je wel, staat allemaal in de manpages :D

[deleted]Xinetd gebruikers (ondermeer RedHat) zullen xinetd moeten configureren in plaats van inetd. Als ik er aan toe kom zal ik dat als appendix toevoegen (staat ergens in een cursus boek van IBM).[/deleted]

[losse gedachte]Wat is open source toch mooi :D[/losse gedachte]

Xinetd gebruikers (oa in gebruik door Redhat) zullen in plaats van inetd uiteraard xinetd moeten configureren. Zie hiervoor Apendix A (onderaan dus)

Het is mij opgevallen dat swat zich houdt aan beveiligingen die in /etc/samba/smb.conf staan. Swat zal zich ook houden aan de "hosts allow" en "hosts deny" opties die daar staan. Als je samba beperkt hebt tot je lokale netwerk (bv hosts allow = 192.168.0.0/255.255.255.0), wat op zich niet onverstandig is, dan zal swat ook uitsluitend in dat netwerk werken.

Apendix A: xinetd


Kreeg net een mailtje van scdgro (;)) met zijn xinetd bestandje.

De aanpak van xinetd is iets anders dan inetd. Staan bij inetd alle te starten programma's elk op een eigen regel in /etc/inetd.conf. Bij xinetd zijn dit secties voor elk te starten programma. Vaak worden deze bestandjes ge-sourced vanuit separate bestanden (of doet alleen RedHat dat?).
Anyway.... dit kreeg ik van scdgro
# default: off
# description: SWAT is the Samba Web Admin Tool. Use swat \
#          to configure your Samba server. To use SWAT, \
#          connect to port 901 with your favorite web browser.
service swat
{
   port   = 901
   socket_type   = stream
   wait    = no
   only_from = 127.0.0.1
   user   = root
   server   = /usr/local/samba/bin/swat
   log_on_failure   += USERID
   disable = no
}
        

De verschillende opties komen erg overeen met /etc/inetd/conf, en lijken mij verder voor zich te spreken.
Voeg dit toe aan je /etc/xinetd.conf of zet het als een bestandje in (bij RedHat in iedergeval) in de directorie /etc/xinitd.d van waaruit het bestand gesourced kan worden (de exacte locatie van de te sourcen directorie staat ongetwijfeld in /etc/xinetd)

Ook bij xinetd is het noodzakelijk om de daemon te herstarten.

Signing off, love and kisses....
(Laurie Anderson)