Bisher gibt es auf unserem Server lediglich eine Freigabe für die angemeldeten User, eben jene home-Verzeichnisse. Natürlich möchte man aber auch andere Freigaben schalten die unabhängig vom User ihre Arbeit verrichten. Für jede Freigabe benötigt man in der smb.conf einen eigenen Block. Um zum Beispiel eine Freigabe „Austausch“ freizugeben, dessen Dateien sich im Verzeichnis /srv/smb/files befinden, müsste man einen Block wie folgt anlegen:

> [Austausch]
> path = /srv/smb/files
> read only = no
> guest ok = yes
> guest only = yes

Nach einem Neustart von Samba taucht diese Freigabe in der Netzwerkumgebung von Windows auf, schreiben darf man allerdings noch nicht in diesem Verzeichnis. Das liegt in diesem Fall daran, das lediglich der Linux-User root Schreibrechte für dieses Verzeichnis hat. Da aber man aber von Windows aus als Gast zugreift (guest ok = yes -> Gäste haben Zugriff; guest only = yes -> Alle User werden als Gäste behandelt), schlägt die Schreiboperation fehl.

Linux geniest hier die höheren Rechte, die Ursache liegt am Linux, nicht am Samba. Übrigens werden normalerweise Gast-User als Linux-User nobody behandelt. Wenn wir das Verzeichnis dem User nobody überantworten (chown nobody /srv/smb/files), dürfen nun alle Windows-User in diesem Verzeichnis schreiben. Um den Zugriff auf die Freigabe etwas genauer zu regeln bedarf es neuer Einträge in der smb.conf. Erweitern sie den Block Austausch um die beiden Zeilen:

> valid users = tester otto garfield
> force user = nobody

In der Zeile valid users dürfen auch mehrere User stehen, jeweils getrennt durch Leerzeichen, nun dürfen nur noch diese User auf die Freigabe zugreifen. Da nun aber nur der Linux-User nobody Schreibrechte hat wird mit der nächsten Zeile (force user = nobody) dafür gesorgt, das alle Zugriffe auf diese Freigabe intern über den User nobody abgewickelt werden, unabhängig davon welcher der Windows-(Samba)-User nun wirklich auf das Verzeichnis zugreift.