added some notes on the new "interfaces" option
[samba.git] / docs / manpages / smb.conf.5
1 .TH SMB.CONF 5 11/10/94 smb.conf smb.conf
2 .SH NAME
3 smb.conf \- configuration file for smbd
4 .SH SYNOPSIS
5 .B smb.conf
6 .SH DESCRIPTION
7 The
8 .B smb.conf
9 file is a configuration file for the Samba suite.
10
11 .B smb.conf
12 contains runtime configuration information for the
13 .B smbd
14 program. The
15 .B smbd
16 program provides LanManager-like services to clients
17 using the SMB protocol.
18
19 .SH FILE FORMAT
20 The file consists of sections and parameters. A section begins with the 
21 name of the section in square brackets and continues until the next
22 section begins. Sections contain parameters of the form 'name = value'.
23
24 The file is line-based - that is, each newline-terminated line represents
25 either a comment, a section name or a parameter.
26
27 Section and parameter names are not case sensitive.
28
29 Only the first equals sign in a parameter is significant. Whitespace before 
30 or after the first equals sign is discarded. Leading, trailing and internal
31 whitespace in section and parameter names is irrelevant. Leading and
32 trailing whitespace in a parameter value is discarded. Internal whitespace
33 within a parameter value is retained verbatim.
34
35 Any line beginning with a semicolon is ignored, as are lines containing 
36 only whitespace.
37
38 Any line ending in a \\ is "continued" on the next line in the
39 customary unix fashion.
40
41 The values following the equals sign in parameters are all either a string
42 (no quotes needed) or a boolean, which may be given as yes/no, 0/1 or
43 true/false. Case is not significant in boolean values, but is preserved
44 in string values. Some items such as create modes are numeric.
45 .SH SERVICE DESCRIPTIONS
46 Each section in the configuration file describes a service. The section name
47 is the service name and the parameters within the section define the service's
48 attributes.
49
50 There are three special sections, [global], [homes] and [printers], which are
51 described under 'special sections'. The following notes apply to ordinary 
52 service descriptions.
53
54 A service consists of a directory to which access is being given plus a 
55 description of the access rights which are granted to the user of the 
56 service. Some housekeeping options are also specifiable.
57
58 Services are either filespace services (used by the client as an extension of
59 their native file systems) or printable services (used by the client to access
60 print services on the host running the server).
61
62 Services may be guest services, in which case no password is required to
63 access them. A specified guest account is used to define access privileges
64 in this case.
65
66 Services other than guest services will require a password to access
67 them. The client provides the username. As many clients only provide
68 passwords and not usernames, you may specify a list of usernames to
69 check against the password using the "user=" option in the service
70 definition. 
71
72 Note that the access rights granted by the server are masked by the access
73 rights granted to the specified or guest user by the host system. The 
74 server does not grant more access than the host system grants.
75
76 The following sample section defines a file space service. The user has write
77 access to the path /home/bar. The service is accessed via the service name 
78 "foo":
79
80         [foo]
81                 path = /home/bar
82                 writable = true
83
84 The following sample section defines a printable service. The service is 
85 readonly, but printable. That is, the only write access permitted is via 
86 calls to open, write to and close a spool file. The 'guest ok' parameter 
87 means access will be permitted as the default guest user (specified elsewhere):
88
89         [aprinter]
90                 path = /usr/spool/public
91                 read only = true
92                 printable = true
93                 public = true
94
95 .SH SPECIAL SECTIONS
96
97 .SS The [global] section
98 .RS 3
99 Parameters in this section apply to the server as a whole, or are defaults
100 for services which do not specifically define certain items. See the notes
101 under 'Parameters' for more information.
102 .RE
103
104 .SS The [homes] section
105 .RS 3
106 If a section called 'homes' is included in the configuration file, services
107 connecting clients to their home directories can be created on the fly by the
108 server.
109
110 When the connection request is made, the existing services are scanned. If a
111 match is found, it is used. If no match is found, the requested service name is
112 treated as a user name and looked up in the local passwords file. If the
113 name exists and the correct password has been given, a service is created
114 by cloning the [homes] section.
115
116 Some modifications are then made to the newly created section:
117
118 .RS 3
119 The service name is changed from 'homes' to the located username
120
121 If no path was given, the path is set to the user's home directory.
122 .RE
123
124 If you decide to use a path= line in your [homes] section then you may
125 find it useful to use the %S macro. For example path=/data/pchome/%S
126 would be useful if you have different home directories for your PCs
127 than for unix access.
128
129 This is a fast and simple way to give a large number of clients access to
130 their home directories with a minimum of fuss.
131
132 A similar process occurs if the requested service name is "homes", except that
133 the service name is not changed to that of the requesting user. This method
134 of using the [homes] section works well if different users share a client PC.
135
136 The [homes] section can specify all the parameters a normal service section
137 can specify, though some make more sense than others. The following is a 
138 typical and suitable [homes] section:
139
140         [homes]
141                 writable = yes
142
143 An important point:
144
145 .RS 3
146 If guest access is specified in the [homes] section, all home directories will
147 be accessible to all clients
148 .B without a password.
149 In the very unlikely event
150 that this is actually desirable, it would be wise to also specify read only
151 access.
152 .RE
153 .RE
154
155 Note that the browseable flag for auto home directories will be
156 inherited from the global browseable flag, not the [homes] browseable
157 flag. This is useful as it means setting browseable=no in the [homes]
158 section will hide the [homes] service but make any auto home
159 directories visible.
160
161 .SS The [printers] section
162 .RS 3
163 This section works like [homes], but for printers.
164
165 If a [printers] section occurs in the configuration file, users are able 
166 to connect to any printer specified in the local host's printcap file.
167
168 When a connection request is made, the existing services are scanned. If a
169 match is found, it is used. If no match is found, but a [homes] section
170 exists, it is used as described above. Otherwise, the requested service name is
171 treated as a printer name and the appropriate printcap file is scanned to
172 see if the requested service name is a valid printer name. If a match is
173 found, a new service is created by cloning the [printers] section.
174
175 A few modifications are then made to the newly created section:
176
177 .RS 3
178 The service name is set to the located printer name
179
180 If no printer name was given, the printer name is set to the located printer
181 name
182
183 If the service does not permit guest access and no username was given, the 
184 username is set to the located printer name.
185 .RE
186
187 Note that the [printers] service MUST be printable - if you specify otherwise,
188 the server will refuse to load the configuration file.
189
190 Typically the path specified would be that of a world-writable spool directory
191 with the sticky bit set on it. A typical [printers] entry would look like this:
192
193         [printers]
194                 path = /usr/spool/public
195                 writable = no
196                 public = yes
197                 printable = yes 
198
199 All aliases given for a printer in the printcap file are legitimate printer
200 names as far as the server is concerned. If your printing subsystem doesn't
201 work like that, you will have to set up a pseudo-printcap. This is a file
202 consisting of one or more lines like this:
203
204         alias|alias|alias|alias...
205
206 Each alias should be an acceptable printer name for your printing 
207 subsystem. In the [global] section, specify the new file as your printcap.
208 The server will then only recognise names found in your pseudo-printcap,
209 which of course can contain whatever aliases you like. The same technique
210 could be used simply to limit access to a subset of your local printers.
211
212 An alias, by the way, is defined as any component of the first entry of a 
213 printcap record. Records are separated by newlines, components (if there are 
214 more than one) are separated by vertical bar symbols ("|").
215 .SH PARAMETERS
216 Parameters define the specific attributes of services.
217
218 Some parameters are specific to the [global] section (eg., security).
219 Some parameters are usable in all sections (eg., create mode). All others are
220 permissible only in normal sections. For the purposes of the following
221 descriptions the [homes] and [printers] sections will be considered normal.
222 The letter 'G' in parentheses indicates that a parameter is specific to the
223 [global] section. The letter 'S' indicates that a parameter can be
224 specified in a secvice specific section. Note that all S parameters
225 can also be specified in the [global] section - in which case they
226 will define the default behaviour for all services.
227
228 Parameters are arranged here in alphabetical order - this may not create
229 best bedfellows, but at least you can find them! Where there are synonyms,
230 the preferred synonym is described, others refer to the preferred synonym.
231
232 .SS VARIABLE SUBSTITUTIONS
233
234 Many of the strings that are settable in the config file can take
235 substitutions. For example the option "path = /tmp/%u" would be
236 interpreted as "path = /tmp/john" if the user connected with the
237 username john.
238
239 These substitutions are mostly noted in the descriptions below, but
240 there are some general substitions which apply whenever they might be
241 relevant. These are:
242
243 %S = the name of the current service, if any
244
245 %P = the root directory of the current service, if any
246
247 %u = user name of the current service, if any
248
249 %g = primary group name of %u
250
251 %U = session user name (the user name that the client wanted, not
252 necessarily the same as the one they got)
253
254 %G = primary group name of %U
255
256 %H = the home directory of the user given by %u
257
258 %v = the Samba version
259
260 %h = the hostname that Samba is running on
261
262 %m = the netbios name of the client machine (very useful)
263
264 %L = the netbios name of the server. This allows you to change your
265 config based on what the client calls you. Your server can have a "dual
266 personality".
267
268 %M = the internet name of the client machine
269
270 %d = The process id of the current server process
271
272 %a = the architecture of the remote machine. Only some are recognised,
273 and those may not be 100% reliable. It currently recognises Samba,
274 WfWg, WinNT and Win95. Anything else will be known as "UNKNOWN". If it
275 gets it wrong then sending me a level 3 log should allow me to fix it.
276
277 %I = The IP address of the client machine
278
279 %T = the current date and time
280
281 There are some quite creative things that can be done with these
282 substitutions and other smb.conf options.
283
284 .SS NAME MANGLING
285
286 Samba supports "name mangling" so that Dos and Windows clients can use
287 files that don't conform to the 8.3 format. It can also be set to adjust
288 the case of 8.3 format filenames.
289
290 There are several options that control the way mangling is performed,
291 and they are grouped here rather than listed separately. For the
292 defaults look at the output of the testparm program.
293
294 All of these options can be set separately for each service (or
295 globally, of course).
296
297 The options are:
298
299 "mangle case = yes/no" controls if names that have characters that
300 aren't of the "default" case are mangled. For example, if this is yes
301 then a name like "Mail" would be mangled. Default no.
302
303 "case sensitive = yes/no" controls whether filenames are case
304 sensitive. If they aren't then Samba must do a filename search and
305 match on passed names. Default no.
306
307 "default case = upper/lower" controls what the default case is for new
308 filenames. Default lower.
309
310 "preserve case = yes/no" controls if new files are created with the
311 case that the client passes, or if they are forced to be the "default"
312 case. Default no.
313
314 "short preserve case = yes/no" controls if new files which conform to 8.3
315 syntax, that is all in upper case and of suitable length, are created
316 upper case, or if they are forced to be the "default" case. This option can
317 be use with "preserve case = yes" to permit long filenames to retain their
318 case, while short names are lowered. Default no.
319
320 .SS COMPLETE LIST OF GLOBAL PARAMETER
321
322 Here is a list of all global parameters. See the section of each
323 parameter for details.  Note that some are synonyms.
324
325 auto services
326
327 config file
328
329 deadtime
330
331 debuglevel
332
333 default
334
335 default service
336
337 dfree command
338
339 encrypt passwords
340
341 getwd cache
342
343 hosts equiv
344
345 include
346
347 keepalive
348
349 lock dir
350
351 load printers
352
353 lock directory
354
355 log file
356
357 log level
358
359 lpq cache time
360
361 mangled stack
362
363 max log size
364
365 max packet
366
367 max xmit
368
369 message command
370
371 null passwords
372
373 os level
374
375 packet size
376
377 passwd chat
378
379 passwd program
380
381 password level
382
383 password server
384
385 preferred master
386
387 preload
388
389 printing
390
391 printcap name
392
393 protocol
394
395 read bmpx
396
397 read prediction
398
399 read raw
400
401 read size
402
403 root
404
405 root dir
406
407 root directory
408
409 security
410
411 server string
412
413 smbrun
414
415 socket options
416
417 status
418
419 strip dot
420
421 time offset
422
423 username map
424
425 use rhosts
426
427 valid chars
428
429 workgroup
430
431 write raw
432
433 .SS COMPLETE LIST OF SERVICE PARAMETER
434
435 Here is a list of all service parameters. See the section of each
436 parameter for details. Note that some are synonyms.
437
438 admin users
439
440 allow hosts
441
442 alternate permissions
443
444 available
445
446 browseable
447
448 case sensitive
449
450 case sig names
451
452 copy
453
454 create mask
455
456 create mode
457
458 comment
459
460 default case
461
462 delete readonly
463
464 deny hosts
465
466 directory
467
468 dont descend
469
470 exec
471
472 force group
473
474 force user
475
476 guest account
477
478 guest ok
479
480 guest only
481
482 hide dot files
483
484 hosts allow
485
486 hosts deny
487
488 invalid users
489
490 locking
491
492 lppause command
493
494 lpq command
495
496 lpresume command
497
498 lprm command
499
500 magic output
501
502 magic script
503
504 mangle case
505
506 mangled names
507
508 mangling char
509
510 map archive
511
512 map hidden
513
514 map system
515
516 max connections
517
518 min print space
519
520 only guest
521
522 only user
523
524 path
525
526 postexec
527
528 postscript
529
530 preserve case
531
532 print command
533
534 print ok
535
536 printable
537
538 printer
539
540 printer name
541
542 public
543
544 read only
545
546 read list
547
548 revalidate
549
550 root postexec
551
552 root preexec
553
554 set directory
555
556 share modes
557
558 short preserve case
559
560 strict locking
561
562 sync always
563
564 user
565
566 username
567
568 users
569
570 valid users
571
572 volume
573
574 wide links
575
576 writable
577
578 write ok
579
580 writeable
581
582 write list
583
584 .SS EXPLANATION OF EACH PARAMETER
585 .RS 3
586
587 .SS admin users (G)
588
589 This is a list of users who will be granted administrative privilages
590 on the share. This means that they will do all file operations as the
591 super-user (root).
592
593 You should use this option very carefully, as any user in this list
594 will be able to do anything they like on the share, irrespective of
595 file permissions.
596
597 .B Default:
598         no admin users
599
600 .B Example:
601         admin users = jason
602
603 .SS auto services (G)
604 This is a list of services that you want to be automatically added to
605 the browse lists. This is most useful for homes and printers services
606 that would otherwise not be visible.
607
608 Note that if you just want all printers in your printcap file loaded
609 then the "load printers" option is easier.
610
611 .B Default:
612         no auto services
613
614 .B Example:
615         auto services = fred lp colorlp
616
617
618 .SS allow hosts (S)
619 A synonym for this parameter is 'hosts allow'.
620
621 This parameter is a comma delimited set of hosts which are permitted to access
622 a services. If specified in the [global] section, matching hosts will be
623 allowed access to any service that does not specifically exclude them from
624 access. Specific services my have their own list, which override those
625 specified in the [global] section.
626
627 You can specify the hosts by name or IP number. For example, you could
628 restrict access to only the hosts on a Class C subnet with something like
629 "allow hosts = 150.203.5.". The full syntax of the list is described in
630 the man page
631 .B hosts_access(5).
632
633 You can also specify hosts by network/netmask pairs and by netgroup
634 names if your system supports netgroups. The EXCEPT keyword can also
635 be used to limit a wildcard list. The following examples may provide
636 some help:
637
638 Example 1: allow all IPs in 150.203.*.* except one
639
640         hosts allow = 150.203. EXCEPT 150.203.6.66
641
642 Example 2: allow hosts that match the given network/netmask
643
644         hosts allow = 150.203.15.0/255.255.255.0
645
646 Example 3: allow a couple of hosts
647
648         hosts allow = lapland, arvidsjaur
649
650 Example 4: allow only hosts in netgroup "foonet" or localhost, but 
651 deny access from one particular host
652
653         hosts allow = @foonet, localhost
654         hosts deny = pirate
655
656 Note that access still requires suitable user-level passwords.
657
658 See testparm(1) for a way of testing your host access to see if it
659 does what you expect.
660
661 .B Default:
662         none (ie., all hosts permitted access)
663
664 .B Example:
665         allow hosts = 150.203.5. myhost.mynet.edu.au
666
667 .SS alternate permissions (S)
668
669 This option affects the way the "read only" DOS attribute is produced
670 for unix files. If this is false then the read only bit is set for
671 files on writeable shares which the user cannot write to.
672
673 If this is true then it is set for files whos user write bit is not set.
674
675 The latter behaviour of useful for when users copy files from each
676 others directories, and use a file manager that preserves
677 permissions. Without this option they may get annoyed as all copied
678 files will have the "read only" bit set.
679
680 .B Default:
681         alternate permissions = no
682
683 .B Example:
684         alternate permissions = yes
685
686 .SS available (S)
687 This parameter lets you 'turn off' a service. If 'available = no', then
688 ALL attempts to connect to the service will fail. Such failures are logged.
689
690 .B Default:
691         available = yes
692
693 .B Example:
694         available = no
695 .SS browseable (S)
696 This controls whether this share is seen in the list of available
697 shares in a net view and in the browse list.
698
699 .B Default:
700         browseable = Yes
701
702 .B Example: 
703         browseable = No
704
705 .SS case sig names (G)
706 See "case sensitive"
707
708 .SS comment (S)
709 This is a text field that is seen when a client does a net view to
710 list what shares are available. It will also be used when browsing is
711 fully supported.
712
713 .B Default:
714         No comment string
715
716 .B Example:
717         comment = Fred's Files
718
719 .SS config file (G)
720
721 This allows you to override the config file to use, instead of the
722 default (usually smb.conf). There is a chicken and egg problem here as
723 this option is set in the config file! 
724
725 For this reason, if the name of the config file has changed when the
726 parameters are loaded then it will reload them from the new config
727 file.
728
729 This option takes the usual substitutions, which can be very useful.
730
731 If thew config file doesn't exist then it won't be loaded (allowing
732 you to special case the config files of just a few clients).
733
734 .B Example:
735         config file = /usr/local/samba/smb.conf.%m
736
737 .SS copy (S)
738 This parameter allows you to 'clone' service entries. The specified
739 service is simply duplicated under the current service's name. Any 
740 parameters specified in the current section will override those in the
741 section being copied.
742
743 This feature lets you set up a 'template' service and create similar 
744 services easily. Note that the service being copied must occur earlier 
745 in the configuration file than the service doing the copying.
746
747 .B Default:
748         none
749
750 .B Example:
751         copy = otherservice
752 .SS create mask (S)
753 A synonym for this parameter is 'create mode'.
754
755 This parameter is the octal modes which are used when converting DOS modes 
756 to Unix modes.
757
758 Note that Samba will or this value with 0700 as you must have at least
759 user read, write and execute for Samba to work properly.
760
761 .B Default:
762         create mask = 0755
763
764 .B Example:
765         create mask = 0775
766 .SS create mode (S)
767 See
768 .B create mask.
769 .SS dead time (G)
770 The value of the parameter (a decimal integer) represents the number of
771 minutes of inactivity before a connection is considered dead, and it
772 is disconnected. The deadtime only takes effect if the number of open files
773 is zero.
774
775 This is useful to stop a server's resources being exhausted by a large
776 number of inactive connections.
777
778 Most clients have an auto-reconnect feature when a connection is broken so
779 in most cases this parameter should be transparent to users.
780
781 Using this parameter with a timeout of a few minutes is recommended
782 for most systems.
783
784 A deadtime of zero indicates that no auto-disconnection should be performed.
785
786 .B Default:
787         dead time = 0
788
789 .B Example:
790         dead time = 15
791 .SS debug level (G)
792 The value of the parameter (an integer) allows the debug level
793 (logging level) to be specified in the smb.conf file. This is to give
794 greater flexibility in the configuration of the system.
795
796 The default will be the debug level specified on the command line.
797
798 .B Example:
799         debug level = 3
800 .SS default (G)
801 See
802 .B default service.
803 .SS default case (S)
804
805 See the section on "NAME MANGLING" Also note the addition of "short
806 preserve case"
807
808 .SS default service (G)
809 A synonym for this parameter is 'default'.
810
811 This parameter specifies the name of a service which will be connected to
812 if the service actually requested cannot be found. Note that the square
813 brackets are NOT given in the parameter value (see example below).
814
815 There is no default value for this parameter. If this parameter is not given,
816 attempting to connect to a nonexistent service results in an error.
817
818 Typically the default service would be a public, read-only service.
819
820 Also not that s of 1.9.14 the apparent service name will be changed to
821 equal that of the requested service, this is very useful as it allows
822 you to use macros like %S to make a wildcard service.
823
824 Note also that any _ characters in the name of the service used in the
825 default service will get mapped to a /. This allows for interesting
826 things.
827
828
829 .B Example:
830         default service = pub
831         
832         [pub]
833              path = /%S
834           
835
836 .SS delete readonly (S)
837 This parameter allows readonly files to be deleted.  This is not normal DOS
838 semantics, but is allowed by Unix.
839
840 This option may be useful for running applications such as rcs, where unix
841 file ownership prevents changing file permissions, and dos semantics prevent
842 deletion of a read only file.
843
844 .B Default:
845         delete readonly = No
846
847 .B Example:
848         delete readonly = Yes
849 .SS deny hosts (S)
850 A synonym for this parameter is 'hosts deny'.
851
852 The opposite of 'allow hosts' - hosts listed here are NOT permitted
853 access to services unless the specific services have their own lists to
854 override this one. Where the lists conflict, the 'allow' list takes precedence.
855
856 .B Default:
857         none (ie., no hosts specifically excluded)
858
859 .B Example:
860         deny hosts = 150.203.4. badhost.mynet.edu.au
861 .SS dfree command (G)
862 The dfree command setting should only be used on systems where a
863 problem occurs with the internal disk space calculations. This has
864 been known to happen with Ultrix, but may occur with other operating
865 systems. The symptom that was seen was an error of "Abort Retry
866 Ignore" at the end of each directory listing.
867
868 This setting allows the replacement of the internal routines to
869 calculate the total disk space and amount available with an external
870 routine. The example below gives a possible script that might fulfill
871 this function. 
872
873 The external program will be passed a single parameter indicating a
874 directory in the filesystem being queried. This will typically consist
875 of the string "./". The script should return two integers in ascii. The
876 first should be the total disk space in blocks, and the second should
877 be the number of available blocks. An optional third return value
878 can give the block size in bytes. The default blocksize is 1024 bytes.
879
880 Note: Your script should NOT be setuid or setgid and should be owned by
881 (and writable only by) root!
882
883 .B Default:
884         By default internal routines for determining the disk capacity
885 and remaining space will be used.
886
887 .B Example:
888         dfree command = /usr/local/smb/dfree
889
890         Where the script dfree (which must be made executable) could be
891
892         #!/bin/sh
893         df $1 | tail -1 | awk '{print $2" "$4}'
894
895         or perhaps (on Sys V)
896
897         #!/bin/sh
898         /usr/bin/df -k $1 | tail -1 | awk '{print $3" "$5}'
899
900
901         Note that you may have to replace the command names with full
902 path names on some systems.
903 .SS directory (S)
904 See
905 .B path.
906 .SS dont descend (S)
907 There are certain directories on some systems (eg., the /proc tree under
908 Linux) that are either not of interest to clients or are infinitely deep
909 (recursive). This parameter allows you to specify a comma-delimited list
910 of directories that the server should always show as empty.
911
912 Note that Samba can be very fussy about the exact format of the "dont
913 descend" entries. For example you ma need "./proc" instead of just
914 "/proc". Experimentation is the best policy :-)
915
916 .B Default:
917         none (ie., all directories are OK to descend)
918
919 .B Example:
920         dont descend = /proc,/dev
921
922 .SS encrypt passwords (G)
923
924 This boolean controls whether encrypted passwords will be negotiated
925 with the cient. Note that this option has no effect if you haven't
926 compiled in the necessary des libraries and encryption code. It
927 defaults to no.
928
929 .SS exec (S)
930
931 This is an alias for preexec
932
933
934 .SS force group (S)
935 This specifies a group name that all connections to this service
936 should be made as. This may be useful for sharing files.
937
938 .B Default:
939        no forced group
940
941 .B Example:
942        force group = agroup
943
944 .SS force user (S)
945 This specifies a user name that all connections to this service
946 should be made as. This may be useful for sharing files. You should
947 also use it carefully as using it incorrectly can cause security
948 problems.
949
950 This user name only gets used once a connection is established. Thus
951 clients still need to connect as a valid user and supply a valid
952 password. Once connected, all file operations will be performed as the
953 "forced user", not matter what username the client connected as.
954
955 .B Default:
956        no forced user
957
958 .B Example:
959        force user = auser
960
961 .SS guest account (S)
962 This is a username which will be used for access to services which are
963 specified as 'guest ok' (see below). Whatever privileges this user has
964 will be available to any client connecting to the guest
965 service. Typically this user will exist in the password file, but will
966 not have a valid login. If a username is specified in a given service,
967 the specified username overrides this one.
968
969 One some systems the account "nobody" may not be able to print. Use
970 another account in this case. You should test this by trying to log in
971 as your guest user (perhaps by using the "su -" command) and trying to
972 print using lpr.
973
974 Note that as of version 1.9 of Samba this option may be set
975 differently for each service.
976
977 .B Default:
978         specified at compile time
979
980 .B Example:
981         guest account = nobody
982 .SS getwd cache (G)
983 This is a tuning option. When this is enabled a cacheing algorithm will
984 be used to reduce the time taken for getwd() calls. This can have a
985 significant impact on performance, especially when widelinks is False.
986
987 .B Default:
988         getwd cache = No
989
990 .B Example:
991         getwd cache = Yes
992 .SS guest ok (S)
993 See
994 .B public.
995 .SS guest only (S)
996 If this parameter is 'yes' for a service, then only guest connections to the
997 service are permitted. This parameter will have no affect if "guest ok" or
998 "public" is not set for the service.
999
1000 See the section below on user/password validation for more information about
1001 this option.
1002
1003 .B Default:
1004         guest only = no
1005
1006 .B Example:
1007         guest only = yes
1008 .SS hide dot files (S)
1009 This is a boolean parameter that controls whether files starting with
1010 a dot appear as hidden files.
1011
1012 .B Default:
1013         hide dot files = yes
1014
1015 .B Example:
1016         hide dot files = no
1017 .SS hosts allow (S)
1018 See
1019 .B allow hosts.
1020 .SS hosts deny (S)
1021 See
1022 .B deny hosts.
1023
1024 .SS group (S)
1025 This is an alias for "force group" and is only kept for compatability
1026 with old versions of Samba. It may be removed in future versions.
1027
1028 .SS hosts equiv (G)
1029 If this global parameter is a non-null string, it specifies the name of
1030 a file to read for the names of hosts and users who will be allowed access
1031 without specifying a password.
1032
1033 This is not be confused with 
1034 .B allow hosts
1035 which is about hosts access to services and is more useful for guest services.
1036 .B hosts equiv
1037 may be useful for NT clients which will not supply passwords to samba.
1038
1039 NOTE: The use of hosts.equiv can be a major security hole. This is
1040 because you are trusting the PC to supply the correct username. It is
1041 very easy to get a PC to supply a false username. I recommend that the
1042 hosts.equiv option be only used if you really know what you are doing,
1043 or perhaps on a home network where you trust your wife and kids :-)
1044
1045 .B Default
1046         No host equivalences
1047
1048 .B Example
1049         hosts equiv = /etc/hosts.equiv
1050
1051 .SS interfaces (G)
1052
1053 This option allows you to setup multiple network interfaces, so that
1054 Samba can properly handle browsing on all interfaces.
1055
1056 The option takes a list of ip/netmask pairs. The netmask may either be
1057 a bitmask, or a bitlength. 
1058
1059 For example, the following line:
1060
1061 interfaces = 192.168.2.10/24 192.168.3.10/24
1062
1063 would configure two network interfaces with IP addresses 192.168.2.10
1064 and 192.168.3.10. The netmasks of both interfaces would be set to
1065 255.255.255.0. 
1066
1067 You could produce an equivalent result by using:
1068
1069 interfaces = 192.168.2.10/255.255.255.0 192.168.3.10/255.255.255.0
1070
1071 if you prefer that format.
1072
1073 If this option is not set then Samba will attempt to find a primary
1074 interface, but won't attempt to configure more than one interface.
1075
1076 .SS invalid users (S)
1077 This is a list of users that should not be allowed to login to this
1078 service. This is really a "paranoid" check to absolutely ensure an
1079 improper setting does not breach your security.
1080
1081 A name starting with @ is interpreted as a unix group.
1082
1083 The current servicename is substituted for %S. This is useful in the
1084 [homes] section.
1085
1086 See also "valid users"
1087
1088 .B Default
1089         No invalid users
1090
1091 .B Example
1092         invalid users = root fred admin @wheel
1093
1094 .SS include (G)
1095
1096 This allows you to inlcude one config file inside another. the file is
1097 included literally, as though typed in place.
1098
1099 It takes the standard substitutions, except %u, %P and %S
1100
1101 .SS keep alive (G)
1102 The value of the parameter (an integer) represents the number of seconds 
1103 between 'keepalive' packets. If this parameter is zero, no keepalive packets
1104 will be sent. Keepalive packets, if sent, allow the server to tell whether a
1105 client is still present and responding.
1106
1107 Keepalives should, in general, not be needed if the socket being used
1108 has the SO_KEEPALIVE attribute set on it (see "socket
1109 options"). Basically you should only use this option if you strike
1110 difficulties.
1111
1112 .B Default:
1113         keep alive = 0
1114
1115 .B Example:
1116         keep alive = 60
1117 .SS load printers (G)
1118 A boolean variable that controls whether all printers in the printcap
1119 will be loaded for browsing by default. 
1120
1121 .B Default:
1122         load printers = no
1123
1124 .B Example:
1125         load printers = yes
1126
1127 .SS lock directory (G)
1128 This options specifies the directory where lock files will be placed.
1129 The lock files are used to implement the "max connections" option.
1130
1131 .B Default:
1132         lock directory = /tmp/samba
1133
1134 .B Example: 
1135         lock directory = /usr/local/samba/locks
1136 .SS locking (S)
1137 This controls whether or not locking will be performed by the server in 
1138 response to lock requests from the client.
1139
1140 If "locking = no", all lock and unlock requests will appear to succeed and 
1141 all lock queries will indicate that the queried lock is clear.
1142
1143 If "locking = yes", real locking will be performed by the server.
1144
1145 This option may be particularly useful for read-only filesystems which
1146 do not need locking (such as cdrom drives).
1147
1148 Be careful about disabling locking either globally or in a specific
1149 service, as lack of locking may result in data corruption.
1150
1151 .B Default:
1152         locking = yes
1153
1154 .B Example:
1155         locking = no
1156
1157 .SS log file (G)
1158
1159 This options allows you to override the name of the Samba log file
1160 (also known as the debug file).
1161
1162 This option takes the standard substitutions, allowing you to have
1163 separate log files for each user or machine.
1164
1165 .B Example:
1166         log file = /usr/local/samba/log.%m
1167
1168 .SS log level (G)
1169 see "debug level"
1170
1171 .SS lppause command (S)
1172 This parameter specifies the command to be executed on the server host in
1173 order to stop printing or spooling a specific print job.
1174
1175 This command should be a program or script which takes a printer name and
1176 job number to pause the print job. Currently I don't know of any print
1177 spooler system that can do this with a simple option, except for the PPR
1178 system from Trinity College (ppr\-dist.trincoll.edu/pub/ppr). One way
1179 of implementing this is by using job priorities, where jobs having a too
1180 low priority wont be sent to the printer. See also the lppause command.
1181
1182 If a %p is given then the printername is put in it's place. A %j is
1183 replaced with the job number (an integer).
1184 On HPUX (see printing=hpux), if the -p%p option is added to the lpq
1185 command, the job will show up with the correct status, i.e. if the job
1186 priority is lower than the set fence priority it will have the PAUSED
1187 status, whereas if the priority is equal or higher it will have the
1188 SPOOLED or PRINTING status.
1189
1190 Note that it is good practice to include the absolute path in the lppause
1191 command as the PATH may not be available to the server.
1192
1193 .B Default:
1194         Currently no default value is given to this string
1195
1196 .B Example for HPUX:
1197         lppause command = /usr/bin/lpalt %p-%j -p0
1198
1199 .SS lpq cache time (G)
1200
1201 This controls how long lpq info will be cached for to prevent the lpq
1202 command being called too often. A separate cache is kept for each
1203 variation of the lpq command used by the system, so if you use
1204 different lpq commands for different users then they won't share cache
1205 information.
1206
1207 The cache files are stored in /tmp/lpq.xxxx where xxxx is a hash
1208 of the lpq command in use.
1209
1210 The default is 10 seconds, meaning that the cached results of a
1211 previous identical lpq command will be used if the cached data is less
1212 than 10 seconds old. A large value may be advisable if your lpq
1213 command is very slow.
1214
1215 A value of 0 will disable cacheing completely.
1216
1217 .B Default:
1218         lpq cache time = 10
1219
1220 .B Example:
1221         lpq cache time = 30
1222
1223 .SS lpq command (S)
1224 This parameter specifies the command to be executed on the server host in
1225 order to obtain "lpq"-style printer status information. 
1226
1227 This command should be a program or script which takes a printer name
1228 as its only parameter and outputs printer status information. 
1229
1230 Currently six styles of printer status information are supported; BSD,
1231 SYSV, AIX, HPUX, QNX and PLP. This covers most unix systems. You
1232 control which type is expected using the "printing =" option.
1233
1234 Some clients (notably Windows for Workgroups) may not correctly send the
1235 connection number for the printer they are requesting status information
1236 about. To get around this, the server reports on the first printer service
1237 connected to by the client. This only happens if the connection number sent
1238 is invalid.
1239
1240 If a %p is given then the printername is put in it's place. Otherwise
1241 it is placed at the end of the command.
1242
1243 Note that it is good practice to include the absolute path in the lpq
1244 command as the PATH may not be available to the server.
1245
1246 .B Default:
1247         depends on the setting of "printing ="
1248
1249 .B Example:
1250         lpq command = /usr/bin/lpq %p
1251
1252 .SS lpresume command (S)
1253 This parameter specifies the command to be executed on the server host in
1254 order to restart or continue printing or spooling a specific print job.
1255
1256 This command should be a program or script which takes a printer name and
1257 job number to resume the print job. See also the lppause command.
1258
1259 If a %p is given then the printername is put in it's place. A %j is
1260 replaced with the job number (an integer).
1261
1262 Note that it is good practice to include the absolute path in the lpresume
1263 command as the PATH may not be available to the server.
1264
1265 .B Default:
1266         Currently no default value is given to this string
1267
1268 .B Example for HPUX:
1269         lpresume command = /usr/bin/lpalt %p-%j -p2
1270
1271 .SS lprm command (S)
1272 This parameter specifies the command to be executed on the server host in
1273 order to delete a print job.
1274
1275 This command should be a program or script which takes a printer name
1276 and job number, and deletes the print job.
1277
1278 Currently six styles of printer control are supported; BSD, SYSV, AIX
1279 HPUX, QNX and PLP. This covers most unix systems. You control which type is
1280 expected using the "printing =" option.
1281
1282 If a %p is given then the printername is put in it's place. A %j is
1283 replaced with the job number (an integer).
1284
1285 Note that it is good practice to include the absolute path in the lprm
1286 command as the PATH may not be available to the server.
1287
1288 .B Default:
1289         depends on the setting of "printing ="
1290
1291 .B Example 1:
1292         lprm command = /usr/bin/lprm -P%p %j
1293
1294 .B Example 2:
1295         lprm command = /usr/bin/cancel %p-%j
1296
1297 .SS magic output (S)
1298 This parameter specifies the name of a file which will contain output
1299 created by a magic script (see
1300 .I magic script
1301 below).
1302
1303 Warning: If two clients use the same magic script in the same directory the
1304 output file content is undefined.
1305 .B Default:
1306         magic output = <magic script name>.out
1307
1308 .B Example:
1309         magic output = myfile.txt
1310 .SS magic script (S)
1311 This parameter specifies the name of a file which, if opened, will be
1312 executed by the server when the file is closed. This allows a Unix script
1313 to be sent to the Samba host and executed on behalf of the connected user.
1314
1315 Scripts executed in this way will be deleted upon completion, permissions
1316 permitting.
1317
1318 If the script generates output, output will be sent to the file specified by
1319 the
1320 .I magic output
1321 parameter (see above).
1322
1323 Note that some shells are unable to interpret scripts containing
1324 carriage-return-linefeed instead of linefeed as the end-of-line
1325 marker. Magic scripts must be executable "as is" on the host, which
1326 for some hosts and some shells will require filtering at the DOS end.
1327
1328 Magic scripts are EXPERIMENTAL and should NOT be relied upon.
1329 .B Default:
1330         None. Magic scripts disabled.
1331
1332 .B Example:
1333         magic script = user.csh
1334 .SS mangled map (S)
1335 This is for those who want to directly map UNIX file names which are
1336 not representable on DOS.  The mangling of names is not always what is
1337 needed.  In particular you may have documents with file extensiosn
1338 that differ between dos and unix. For example, under unix it is common
1339 to use .html for HTML files, whereas under dos .htm is more commonly
1340 used.
1341
1342 So to map 'html' to 'htm' you put:
1343
1344   mangled map = (*.html *.htm)
1345
1346 One very useful case is to remove the annoying ;1 off the ends of
1347 filenames on some CDROMS (only visible under some unixes). To do this
1348 use a map of (*;1 *)
1349
1350 .B default:
1351         no mangled map
1352
1353 .B Example:
1354         mangled map = (*;1 *)
1355
1356 .SS mangle case (S)
1357
1358 See the section on "NAME MANGLING"
1359
1360 .SS mangled names (S)
1361 This controls whether non-DOS names under Unix should be mapped to
1362 DOS-compatible names ("mangled") and made visible, or whether non-DOS names
1363 should simply be ignored.
1364
1365 See the section on "NAME MANGLING" for details on how to control the
1366 mangling process.
1367
1368 If mangling is used then the mangling algorithm is as follows:
1369 .RS
1370 - the first (up to) five alphanumeric characters before the rightmost dot of
1371 the filename are preserved, forced to upper case, and appear as the first (up
1372 to) five characters of the mangled name.
1373
1374 - a tilde ("~") is appended to the first part of the mangled name, followed
1375 by a two-character unique sequence, based on the origonal root name 
1376 (i.e., the original filename minus its final extension). The final
1377 extension is included in the hash calculation only if it contains any upper
1378 case characters or is longer than three characters.
1379
1380 Note that the character to use may be specified using the "mangling
1381 char" option, if you don't like ~.
1382
1383 - the first three alphanumeric characters of the final extension are preserved,
1384 forced to upper case and appear as the extension of the mangled name. The 
1385 final extension is defined as that part of the original filename after the
1386 rightmost dot. If there are no dots in the filename, the mangled name will
1387 have no extension (except in the case of hidden files - see below).
1388
1389 - files whose Unix name begins with a dot will be presented as DOS hidden
1390 files. The mangled name will be created as for other filenames, but with the
1391 leading dot removed and "___" as its extension regardless of actual original
1392 extension (that's three underscores).
1393 .RE
1394
1395 The two-digit hash value consists of upper case alphanumeric characters.
1396
1397 This algorithm can cause name collisions only if files in a directory share
1398 the same first five alphanumeric characters. The probability of such a clash 
1399 is 1/1300.
1400
1401 The name mangling (if enabled) allows a file to be copied between Unix
1402 directories from DOS while retaining the long Unix filename. Unix files can
1403 be renamed to a new extension from DOS and will retain the same basename. 
1404 Mangled names do not change between sessions.
1405
1406 .B Default:
1407         mangled names = yes
1408
1409 .B Example:
1410         mangled names = no
1411 .SS mangling char (S)
1412 This controls what character is used as the "magic" character in name
1413 mangling. The default is a ~ but this may interfere with some
1414 software. Use this option to set it to whatever you prefer.
1415
1416 .B Default:
1417         mangling char = ~
1418
1419 .B Example:
1420         mangling char = ^
1421
1422 .SS max log size (G)
1423
1424 This option (an integer in kilobytes) specifies the max size the log
1425 file should grow to. Samba periodically checks the size and if it is
1426 exceeded it will rename the file, adding a .old extension.
1427
1428 A size of 0 means no limit.
1429
1430 .B Default:
1431         max log size = 5000
1432
1433 .B Example:
1434         max log size = 1000
1435
1436 .SS max xmit (G)
1437
1438 This option controls the maximum packet size that will be negotiated
1439 by Samba. The default is 65535, which is the maximum. In some cases
1440 you may find you get better performance with a smaller value. A value
1441 below 2048 is likely to cause problems.
1442
1443 .B Default:
1444         max xmit = 65535
1445
1446 .B Example:
1447         max xmit = 8192
1448
1449 .SS mangled stack (G)
1450 This parameter controls the number of mangled names that should be cached in
1451 the Samba server.
1452
1453 This stack is a list of recently mangled base names (extensions are only
1454 maintained if they are longer than 3 characters or contains upper case
1455 characters).
1456
1457 The larger this value, the more likely it is that mangled names can be
1458 successfully converted to correct long Unix names. However, large stack
1459 sizes will slow most directory access. Smaller stacks save memory in the
1460 server (each stack element costs 256 bytes).
1461
1462 It is not possible to absolutely guarantee correct long file names, so
1463 be prepared for some surprises!
1464
1465 .B Default:
1466         mangled stack = 50
1467
1468 .B Example:
1469         mangled stack = 100
1470
1471 .SS map archive (S)
1472 This controls whether the DOS archive attribute should be mapped to Unix
1473 execute bits.  The DOS archive bit is set when a file has been modified
1474 since its last backup.  One motivation for this option it to keep Samba/your
1475 PC from making any file it touches from becoming executable under UNIX.
1476 This can be quite annoying for shared source code, documents,  etc...
1477
1478 .B Default:
1479       map archive = yes
1480
1481 .B Example:
1482       map archive = no
1483
1484 .SS map hidden (S)
1485 This controls whether DOS style hidden files should be mapped to Unix
1486 execute bits.
1487
1488 .B Default:
1489         map hidden = no
1490
1491 .B Example:
1492         map hidden = yes
1493 .SS map system (S)
1494 This controls whether DOS style system files should be mapped to Unix
1495 execute bits.
1496
1497 .B Default:
1498         map system = no
1499
1500 .B Example:
1501         map system = yes
1502 .SS max connections (S)
1503 This option allows the number of simultaneous connections to a
1504 service to be limited. If "max connections" is greater than 0 then
1505 connections will be refused if this number of connections to the
1506 service are already open. A value of zero mean an unlimited number of
1507 connections may be made.
1508
1509 Record lock files are used to implement this feature. The lock files
1510 will be stored in the directory specified by the "lock directory" option.
1511
1512 .B Default:
1513         max connections = 0
1514
1515 .B Example:
1516         max connections = 10
1517 .SS only user (S)
1518 This is a boolean option that controls whether connections with
1519 usernames not in the user= list will be allowed. By default this
1520 option is disabled so a client can supply a username to be used by
1521 the server.
1522
1523 Note that this also means Samba won't try to deduce usernames from the
1524 service name. This can be annoying for the [homes] section. To get
1525 around this you could use "user = %S" which means your "user" list
1526 will be just the service name, which for home directories is the name
1527 of the user.
1528
1529 .B Default: 
1530         only user = False
1531
1532 .B Example: 
1533         only user = True
1534
1535 .SS message command (G)
1536
1537 This specifies what command to run when the server receives a WinPopup
1538 style message.
1539
1540 This would normally be a command that would deliver the message
1541 somehow. How this is to be done is up to your imagination.
1542
1543 What I use is:
1544
1545    message command = csh -c 'xedit %s;rm %s' &
1546
1547 This delivers the message using xedit, then removes it
1548 afterwards. NOTE THAT IT IS VERY IMPORTANT THAT THIS COMMAND RETURN
1549 IMMEDIATELY. That's why I have the & on the end. If it doesn't return
1550 immediately then your PCs may freeze when sending messages (they
1551 should recover after 30secs, hopefully).
1552
1553 All messages are delivered as the global guest user. The command takes
1554 the standard substitutions, although %u won't work (%U may be better
1555 in this case).
1556
1557 Apart from the standard substitutions, some additional ones apply. In
1558 particular:
1559
1560 %s = the filename containing the message
1561
1562 %t = the destination that the message was sent to (probably the server
1563 name)
1564
1565 %f = who the message is from
1566
1567 You could make this command send mail, or whatever else takes your
1568 fancy. Please let me know of any really interesting ideas you have.
1569
1570 Here's a way of sending the messages as mail to root:
1571
1572 message command = /bin/mail -s 'message from %f on %m' root < %s; rm %s
1573
1574 If you don't have a message command then the message won't be
1575 delivered and Samba will tell the sender there was an
1576 error. Unfortunately WfWg totally ignores the error code and carries
1577 on regardless, saying that the message was delivered.
1578
1579 If you want to silently delete it then try "message command = rm %s".
1580
1581 For the really adventurous, try something like this:
1582
1583 message command = csh -c 'csh < %s |& /usr/local/samba/smbclient \\
1584                   -M %m; rm %s' &
1585
1586 this would execute the command as a script on the server, then give
1587 them the result in a WinPopup message. Note that this could cause a
1588 loop if you send a message from the server using smbclient! You better
1589 wrap the above in a script that checks for this :-)
1590
1591 .B Default:
1592         no message command
1593
1594 .B Example:
1595         message command = csh -c 'xedit %s;rm %s' &
1596
1597 .SS min print space (S)
1598
1599 This sets the minimum amount of free disk space that must be available
1600 before a user will be able to spool a print job. It is specified in
1601 kilobytes. The default is 0, which means no limit.
1602
1603 .B Default:
1604         min print space = 0
1605
1606 .B Example:
1607         min print space = 2000
1608
1609 .SS null passwords (G)
1610 Allow or disallow access to accounts that have null passwords. 
1611
1612 .B Default:
1613         null passwords = no
1614
1615 .B Example:
1616         null passwords = yes
1617
1618 .SS os level (G)
1619 This integer value controls what level Samba advertises itself as for
1620 browse elections. See BROWSING.txt for details.
1621
1622 .SS packet size (G)
1623 The maximum transmit packet size during a raw read. This option is no
1624 longer implemented as of version 1.7.00, and is kept only so old
1625 configuration files do not become invalid.
1626
1627 .SS passwd chat (G)
1628 This string coontrols the "chat" conversation that takes places
1629 between smbd and the local password changing program to change the
1630 users password. The string describes a sequence of response-receive
1631 pairs that smbd uses to determine what to send to the passwd program
1632 and what to expect back. If the expected output is not received then
1633 the password is not changed.
1634
1635 This chat sequence is often quite site specific, deppending on what
1636 local methods are used for password control (such as NIS+ etc).
1637
1638 The string can contain the macros %o and %n which are substituted for
1639 the old and new passwords respectively. It can aso contain the
1640 standard macros \\n \\r \\t and \\s to give line-feed, carriage-return,
1641 tab and space.
1642
1643 The string can also contain a * which matches any sequence of
1644 characters.
1645
1646 Double quotes can be used to collect strings with spaces in them into
1647 a single string.
1648
1649 If the send string in any part of the chat sequence is a fullstop "."
1650 then no string is sent. Similarly, is the expect string is a fullstop
1651 then no string is expected.
1652
1653 .B Example:
1654         passwd chat = "*Enter OLD password*" %o\\n "*Enter NEW password*" %n\\n \\
1655                       "*Reenter NEW password*" %n\\n "*Password changed*"
1656
1657 .B Default:
1658         passwd chat = *old*password* %o\\n *new*password* %n\\n *new*password* %n\\n *changed*
1659
1660 .SS passwd program (G)
1661 The name of a program that can be used to set user passwords.
1662
1663 This is only necessary if you have enabled remote password changing at
1664 compile time. Any occurances of %u will be replaced with the user
1665 name.
1666
1667 Also note that many passwd programs insist in "reasonable" passwords,
1668 such as a minimum length, or the inclusion of mixed case chars and
1669 digits. This can pose a problem as some clients (such as Windows for
1670 Workgroups) uppercase the password before sending it. 
1671
1672 .B Default:
1673         passwd program = /bin/passwd
1674
1675 .B Example:
1676         passwd program = /sbin/passwd %u
1677
1678 .SS password level (G)
1679 Some client/server conbinations have difficulty with mixed-case passwords.
1680 One offending client is Windows for Workgroups, which for some reason forces
1681 passwords to upper case when using the LANMAN1 protocol, but leaves them alone
1682 when using COREPLUS!
1683
1684 This parameter defines the maximum number of characters that may be upper case
1685 in passwords.
1686
1687 For example, say the password given was "FRED". If
1688 .B password level
1689 is set to 1 (one), the following combinations would be tried if "FRED" failed:
1690 "Fred", "fred", "fRed", "frEd", "freD". If
1691 .B password level was set to 2 (two), the following combinations would also be
1692 tried: "FRed", "FrEd", "FreD", "fREd", "fReD", "frED". And so on.
1693
1694 The higher value this parameter is set to the more likely it is that a mixed
1695 case password will be matched against a single case password. However, you
1696 should be aware that use of this parameter reduces security and increases the
1697 time taken to process a new connection.
1698
1699 A value of zero will cause only two attempts to be made - the password as is
1700 and the password in all-lower case.
1701
1702 If you find the connections are taking too long with this option then
1703 you probably have a slow crypt() routine. Samba now comes with a fast
1704 "ufc crypt" that you can select in the Makefile. You should also make
1705 sure the PASSWORD_LENGTH option is correct for your system in local.h
1706 and includes.h. On most systems only the first 8 chars of a password
1707 are significant so PASSWORD_LENGTH should be 8, but on some longer
1708 passwords are significant. The inlcudes.h file tries to select the
1709 right length for your system.
1710
1711 .B Default:
1712         password level = 0
1713
1714 .B Example:
1715         password level = 4
1716
1717 .SS password server (G)
1718
1719 By specifying the name of another SMB server (such as a WinNT box)
1720 with this option, and using "security = server" you can get Samba to
1721 do all it's username/password validation via a remote server.
1722
1723 This options sets the name of the password server to use. It must be a
1724 netbios name, so if the machines netbios name is different from it's
1725 internet name then you may have to add it's netbios name to
1726 /etc/hosts.
1727
1728 The password server much be a machine capable of using the "LM1.2X002"
1729 or the "LM NT 0.12" protocol, and it must be in user level security
1730 mode. 
1731
1732 NOTE: Using a password server means your unix box (running Samba) is
1733 only as secure as your password server. DO NOT CHOOSE A PASSWORD
1734 SERVER THAT YOU DON'T COMPLETELY TRUST.
1735
1736 Never point a Samba server at itself for password serving. This will
1737 cause a loop and could lock up your Samba server!
1738
1739 The name of the password server takes the standard substitutions, but
1740 probably the only useful one is %m, which means the Samba server will
1741 use the incoming client as the password server. If you use this then
1742 you better trust your clients, and you better restrict them with hosts
1743 allow!
1744
1745 If you list several hosts in the "password server" option then smbd
1746 will try each in turn till it finds one that responds. This is useful
1747 in case your primary server goes down.
1748
1749 .SS path (S)
1750 A synonym for this parameter is 'directory'.
1751
1752 This parameter specifies a directory to which the user of the service is to
1753 be given access. In the case of printable services, this is where print data 
1754 will spool prior to being submitted to the host for printing.
1755
1756 For a printable service offering guest access, the service should be readonly
1757 and the path should be world-writable and have the sticky bit set. This is not
1758 mandatory of course, but you probably won't get the results you expect if you
1759 do otherwise.
1760
1761 Any occurances of %u in the path will be replaced with the username
1762 that the client is connecting as. Any occurances of %m will be
1763 replaced by the name of the machine they are connecting from. These
1764 replacements are very useful for setting up pseudo home directories
1765 for users.
1766
1767 Note that this path will be based on 'root dir' if one was specified.
1768 .B Default:
1769         none
1770
1771 .B Example:
1772         path = /home/fred+ 
1773
1774 .SS postexec (S)
1775
1776 This option specifies a command to be run whenever the service is
1777 disconnected. It takes the usual substitutions. The command may be run
1778 as the root on some systems.
1779
1780 An interesting example may be do unmount server resources:
1781
1782 postexec = /etc/umount /cdrom
1783
1784 See also preexec
1785
1786 .B Default:
1787       none (no command executed)
1788
1789 .B Example:
1790       postexec = echo \"%u disconnected from %S from %m (%I)\" >> /tmp/log
1791
1792 .SS postscript (S)
1793 This parameter forces a printer to interpret the print files as
1794 postscript. This is done by adding a %! to the start of print output. 
1795
1796 This is most useful when you have lots of PCs that persist in putting
1797 a control-D at the start of print jobs, which then confuses your
1798 printer.
1799
1800 .B Default: 
1801         postscript = False
1802
1803 .B Example: 
1804         postscript = True
1805
1806 .SS preexec (S)
1807
1808 This option specifies a command to be run whenever the service is
1809 connected to. It takes the usual substitutions.
1810
1811 An interesting example is to send the users a welcome message every
1812 time they log in. Maybe a message of the day? Here is an example:
1813
1814 preexec = csh -c 'echo \"Welcome to %S!\" | \
1815        /usr/local/samba/smbclient -M %m -I %I' &
1816
1817 Of course, this could get annoying after a while :-)
1818
1819 See also postexec
1820
1821 .B Default:
1822         none (no command executed)
1823
1824 .B Example:
1825         preexec = echo \"%u connected to %S from %m (%I)\" >> /tmp/log
1826
1827 .SS preferred master (G)
1828 This boolean parameter controls if Samba is a preferred master browser
1829 for its workgroup. Setting this gives it a slight edge in elections
1830 and also means it will automatically start an election when it starts
1831 up. 
1832
1833 It is on by default.
1834
1835 .SS preload
1836 This is an alias for "auto services"
1837
1838 .SS preserve case (S)
1839
1840 This controls if new filenames are created with the case that the
1841 client passes, or if they are forced to be the "default" case.
1842
1843 .B Default:
1844        preserve case = no
1845
1846 See the section on "NAME MANGLING" for a fuller discussion.
1847
1848 .SS print command (S)
1849 After a print job has finished spooling to a service, this command will be
1850 used via a system() call to process the spool file. Typically the command 
1851 specified will submit the spool file to the host's printing subsystem, but
1852 there is no requirement that this be the case. The server will not remove the
1853 spool file, so whatever command you specify should remove the spool file when
1854 it has been processed, otherwise you will need to manually remove old spool
1855 files.
1856
1857 The print command is simply a text string. It will be used verbatim,
1858 with two exceptions: All occurrences of "%s" will be replaced by the
1859 appropriate spool file name, and all occurrences of "%p" will be
1860 replaced by the appropriate printer name. The spool file name is
1861 generated automatically by the server, the printer name is discussed
1862 below.
1863
1864 The full path name will be used for the filename if %s is not preceded
1865 by a /. If you don't like this (it can stuff up some lpq output) then
1866 use %f instead. Any occurances of %f get replaced by the spool
1867 filename without the full path at the front.
1868
1869 The print command MUST contain at least one occurrence of "%s" or %f -
1870 the "%p" is optional. At the time a job is submitted, if no printer
1871 name is supplied the "%p" will be silently removed from the printer
1872 command.
1873
1874 If specified in the [global] section, the print command given will be used
1875 for any printable service that does not have its own print command specified.
1876
1877 If there is neither a specified print command for a printable service nor a 
1878 global print command, spool files will be created but not processed and (most
1879 importantly) not removed.
1880
1881 Note that printing may fail on some unixes from the "nobody"
1882 account. If this happens then create an alternative guest account that
1883 can print and set the "guest account" in the [global] section.
1884
1885 You can form quite complex print commands by realising that they are
1886 just passed to a shell. For example the following will log a print
1887 job, print the file, then remove it. Note that ; is the usual
1888 separator for command in shell scripts.
1889
1890 print command = echo Printing %s >> /tmp/print.log; lpr -P %p %s; rm %s
1891
1892 You may have to vary this command considerably depending on how you
1893 normally print files on your system.
1894
1895 .B Default:
1896         print command = lpr -r -P %p %s
1897
1898 .B Example:
1899         print command = /usr/local/samba/myprintscript %p %s
1900 .SS print ok (S)
1901 See
1902 .B printable.
1903 .SS printable (S)
1904 A synonym for this parameter is 'print ok'.
1905
1906 If this parameter is 'yes', then clients may open, write to and submit spool 
1907 files on the directory specified for the service.
1908
1909 Note that a printable service will ALWAYS allow writing to the service path
1910 (user privileges permitting) via the spooling of print data. The 'read only'
1911 parameter controls only non-printing access to the resource.
1912
1913 .B Default:
1914         printable = no
1915
1916 .B Example:
1917         printable = yes
1918
1919 .SS printing (G)
1920 This parameters controls how printer status information is interpreted
1921 on your system, and also affects the default values for the "print
1922 command", "lpq command" and "lprm command".
1923
1924 Currently six printing styles are supported. They are "printing =
1925 bsd", "printing = sysv", "printing = hpux", "printing = aix",
1926 "printing = qnx" and "printing = plp".
1927
1928 To see what the defaults are for the other print commands when using
1929 these three options use the "testparm" program.
1930
1931
1932 .SS printcap name (G)
1933 This parameter may be used to override the compiled-in default printcap
1934 name used by the server (usually /etc/printcap). See the discussion of the
1935 [printers] section above for reasons why you might want to do this.
1936
1937 For those of you without a printcap (say on SysV) you can just create a
1938 minimal file that looks like a printcap and set "printcap name =" in
1939 [global] to point at it.
1940
1941 A minimal printcap file would look something like this:
1942
1943 print1|My Printer 1
1944 print2|My Printer 2
1945 print3|My Printer 3
1946 print4|My Printer 4
1947 print5|My Printer 5
1948
1949 where the | separates aliases of a printer. The fact that the second
1950 alias has a space in it gives a hint to Samba that it's a comment.
1951
1952 NOTE: Under AIX the default printcap name is "/etc/qconfig". Samba
1953 will assume the file is in AIX "qconfig" format if the string
1954 "/qconfig" appears in the printcap filename.
1955
1956 .B Default:
1957         printcap name = /etc/printcap
1958
1959 .B Example:
1960         printcap name = /etc/myprintcap
1961 .SS printer (S)
1962 A synonym for this parameter is 'printer name'.
1963
1964 This parameter specifies the name of the printer to which print jobs spooled
1965 through a printable service will be sent.
1966
1967 If specified in the [global] section, the printer name given will be used
1968 for any printable service that does not have its own printer name specified.
1969
1970 .B Default:
1971         none (but may be 'lp' on many systems)
1972
1973 .B Example:
1974         printer name = laserwriter
1975 .SS printer name (S)
1976 See
1977 .B printer.
1978 .SS protocol (G)
1979 The value of the parameter (a string) is the highest protocol level that will
1980 be supported by the server. 
1981
1982 Possible values are CORE, COREPLUS, LANMAN1, LANMAN2 and NT1. The relative
1983 merits of each are discussed in the README file.
1984
1985 .B Default:
1986         protocol = NT1
1987
1988 .B Example:
1989         protocol = LANMAN1
1990 .SS public (S)
1991 A synonym for this parameter is 'guest ok'.
1992
1993 If this parameter is 'yes' for a service, then no password is required
1994 to connect to the service. Privileges will be those of the guest
1995 account.
1996
1997 See the section below on user/password validation for more information about
1998 this option.
1999
2000 .B Default:
2001         public = no
2002
2003 .B Example:
2004         public = yes
2005 .SS read list (S)
2006 This is a list of users that are given read-only access to a
2007 service. If the connecting user is in this list then they will
2008 not be given write access, no matter what the "read only" option
2009 is set to. The list can include group names using the @group syntax.
2010
2011 See also the "write list" option
2012
2013 .B Default:
2014      read list =
2015
2016 .B Example:
2017      read list = mary, @students
2018
2019 .SS read only (S)
2020 See
2021 .B writable
2022 and
2023 .B write ok.
2024 Note that this is an inverted synonym for writable and write ok.
2025 .SS read prediction (G)
2026 This options enables or disables the read prediction code used to
2027 speed up reads from the server. When enabled the server will try to
2028 pre-read data from the last accessed file that was opened read-only
2029 while waiting for packets.
2030
2031 .SS Default:
2032         read prediction = False
2033
2034 .SS Example:
2035         read prediction = True
2036 .SS read raw (G)
2037 This parameter controls whether or not the server will support raw reads when
2038 transferring data to clients.
2039
2040 If enabled, raw reads allow reads of 65535 bytes in one packet. This
2041 typically provides a major performance benefit.
2042
2043 However, some clients either negotiate the allowable block size incorrectly
2044 or are incapable of supporting larger block sizes, and for these clients you
2045 may need to disable raw reads.
2046
2047 In general this parameter should be viewed as a system tuning tool and left
2048 severely alone. See also
2049 .B write raw.
2050
2051 .B Default:
2052         read raw = yes
2053
2054 .B Example:
2055         read raw = no
2056 .SS read size (G)
2057
2058 The option "read size" affects the overlap of disk reads/writes with
2059 network reads/writes. If the amount of data being transferred in
2060 several of the SMB commands (currently SMBwrite, SMBwriteX and
2061 SMBreadbraw) is larger than this value then the server begins writing
2062 the data before it has received the whole packet from the network, or
2063 in the case of SMBreadbraw, it begins writing to the network before
2064 all the data has been read from disk.
2065
2066 This overlapping works best when the speeds of disk and network access
2067 are similar, having very little effect when the speed of one is much
2068 greater than the other.
2069
2070 The default value is 2048, but very little experimentation has been
2071 done yet to determine the optimal value, and it is likely that the best
2072 value will vary greatly between systems anyway. A value over 65536 is
2073 pointless and will cause you to allocate memory unnecessarily.
2074
2075 .B Default:
2076         read size = 2048
2077
2078 .B Example:
2079         read size = 8192
2080
2081 .SS revalidate (S)
2082
2083 This options controls whether Samba will allow a previously validated
2084 username/password pair to be used to attach to a share. Thus if you
2085 connect to \\\\server\\share1 then to \\\\server\\share2 it won't
2086 automatically allow the client to request connection to the second
2087 share as the same username as the first without a password.
2088
2089 If "revalidate" is True then the client will be denied automatic
2090 access as the same username.
2091
2092 .B Default:
2093         revalidate = False
2094
2095 .B Example:
2096         revalidate = True
2097
2098 .SS root (G)
2099 See
2100 .B root directory.
2101 .SS root dir (G)
2102 See
2103 .B root directory.
2104 .SS root directory (G)
2105 Synonyms for this parameter are 'root dir' and 'root'.
2106
2107 The server will chroot() to this directory on startup. This is not 
2108 strictly necessary for secure operation. Even without it the server
2109 will deny access to files not in one of the service entries. It may 
2110 also check for, and deny access to, soft links to other parts of the 
2111 filesystem, or attempts to use .. in file names to access other 
2112 directories (depending on the setting of the "wide links" parameter).
2113
2114 Adding a "root dir" entry other than "/" adds an extra level of security, 
2115 but at a price. It absolutely ensures that no access is given to files not
2116 in the sub-tree specified in the "root dir" option, *including* some files 
2117 needed for complete operation of the server. To maintain full operability
2118 of the server you will need to mirror some system files into the "root dir"
2119 tree. In particular you will need to mirror /etc/passwd (or a subset of it),
2120 and any binaries or configuration files needed for printing (if required). 
2121 The set of files that must be mirrored is operating system dependent.
2122
2123 .B Default:
2124         root directory = /
2125
2126 .B Example:
2127         root directory = /homes/smb
2128 .SS security (G)
2129 This option does affects how clients respond to Samba.
2130
2131 The option sets the "security mode bit" in replies to protocol negotiations
2132 to turn share level security on or off. Clients decide based on this bit 
2133 whether (and how) to transfer user and password information to the server.
2134
2135 The default is "security=SHARE", mainly because that was the only
2136 option at one stage.
2137
2138 The alternatives are "security = user" or "security = server". 
2139
2140 If your PCs use usernames that are the same as their usernames on the
2141 unix machine then you will want to use "security = user". If you
2142 mostly use usernames that don't exist on the unix box then use
2143 "security = share".
2144
2145 There is a bug in WfWg that may affect your decision. When in user
2146 level security a WfWg client will totally ignore the password you type
2147 in the "connect drive" dialog box. This makes it very difficult (if
2148 not impossible) to connect to a Samba service as anyone except the
2149 user that you are logged into WfWg as.
2150
2151 If you use "security = server" then Samba will try to validate the
2152 username/password by passing it to another SMB server, such as an NT
2153 box. If this fails it will revert to "security = USER".
2154
2155 See the "password server" option for more details.
2156
2157 .B Default:
2158         security = SHARE
2159
2160 .B Example:
2161         security = USER
2162 .SS server string (G)
2163 This controls what string will show up in the printer comment box in
2164 print manager and next to the IPC connection in "net view". It can be
2165 any string that you wish to show to your users.
2166
2167 Note that it DOES NOT affect the string that appears in browse
2168 lists. That is controlled by a nmbd command line option instead.
2169
2170 A %v will be replaced with the Samba version number.
2171
2172 A %h will be replaced with the hostname.
2173
2174 .B Default:
2175         server string = Samba %v
2176
2177 .B Example:
2178         server string = University of GNUs Samba Server
2179
2180 .SS smbrun (G)
2181 This sets the full path to the smbrun binary. This defaults to the
2182 value in the Makefile.
2183
2184 You must get this path right for many services to work correctly.
2185
2186 .B Default: taken from Makefile
2187
2188 .B Example:
2189         smbrun = /usr/local/samba/bin/smbrun
2190
2191 .SS short preserve case (S)
2192
2193 This controls if new short filenames are created with the case that
2194 the client passes, or if they are forced to be the "default" case.
2195
2196 .B Default:
2197        short preserve case = no
2198
2199 See the section on "NAME MANGLING" for a fuller discussion.
2200
2201 .SS root preexec (S)
2202
2203 This is the same as preexec except that the command is run as
2204 root. This is useful for mounting filesystems (such as cdroms) before
2205 a connection is finalised.
2206
2207 .SS root postexec (S)
2208
2209 This is the same as postexec except that the command is run as
2210 root. This is useful for unmounting filesystems (such as cdroms) after
2211 a connection is closed.
2212
2213 .SS set directory (S)
2214 If 'set directory = no', then users of the service may not use the setdir
2215 command to change directory.
2216
2217 The setdir comand is only implemented in the Digital Pathworks client. See the
2218 Pathworks documentation for details.
2219 .B Default:
2220         set directory = no
2221
2222 .B Example:
2223         set directory = yes
2224
2225 .SS share modes (S)
2226
2227 This enables or disables the honouring of the "share modes" during a
2228 file open. These modes are used by clients to gain exclusive read or
2229 write access to a file. 
2230
2231 These open modes are not directly supported by unix, so they are
2232 simulated using lock files in the "lock directory". The "lock
2233 directory" specified in smb.conf must be readable by all users.
2234
2235 The share modes that are enabled by this option are DENY_DOS,
2236 DENY_ALL, DENY_READ, DENY_WRITE, DENY_NONE and DENY_FCB.
2237
2238 Enabling this option gives full share compatability but may cost a bit
2239 of processing time on the unix server. They are enabled by default.
2240
2241 .B Default:
2242         share modes = yes
2243
2244 .B Example:
2245         share modes = no
2246
2247 .SS socket options (G)
2248 This option (which can also be invoked with the -O command line
2249 option) allows you to set socket options to be used when talking with
2250 the client.
2251
2252 Socket options are controls on the networking layer of the operating
2253 systems which allow the connection to be tuned.
2254
2255 This option will typically be used to tune your Samba server for
2256 optimal performance for your local network. There is no way that Samba
2257 can know what the optimal parameters are for your net, so you must
2258 experiment and choose them yourself. I strongly suggest you read the
2259 appropriate documentation for your operating system first (perhaps
2260 "man setsockopt" will help).
2261
2262 You may find that on some systems Samba will say "Unknown socket
2263 option" when you supply an option. This means you either mis-typed it
2264 or you need to add an include file to includes.h for your OS. If the
2265 latter is the case please send the patch to me
2266 (samba-bugs@anu.edu.au).
2267
2268 Any of the supported socket options may be combined in any way you
2269 like, as long as your OS allows it.
2270
2271 This is the list of socket options currently settable using this
2272 option:
2273
2274   SO_KEEPALIVE
2275
2276   SO_REUSEADDR
2277
2278   SO_BROADCAST
2279
2280   TCP_NODELAY
2281
2282   IPTOS_LOWDELAY
2283
2284   IPTOS_THROUGHPUT
2285
2286   SO_SNDBUF *
2287
2288   SO_RCVBUF *
2289
2290   SO_SNDLOWAT *
2291
2292   SO_RCVLOWAT *
2293
2294 Those marked with a * take an integer argument. The others can
2295 optionally take a 1 or 0 argument to enable or disable the option, by
2296 default they will be enabled if you don't specify 1 or 0.
2297
2298 To specify an argument use the syntax SOME_OPTION=VALUE for example
2299 SO_SNDBUF=8192. Note that you must not have any spaces before or after
2300 the = sign.
2301
2302 If you are on a local network then a sensible option might be
2303
2304 socket options = IPTOS_LOWDELAY
2305
2306 If you have an almost unloaded local network and you don't mind a lot
2307 of extra CPU usage in the server then you could try
2308
2309 socket options = IPTOS_LOWDELAY TCP_NODELAY
2310
2311 If you are on a wide area network then perhaps try setting
2312 IPTOS_THROUGHPUT. 
2313
2314 Note that several of the options may cause your Samba server to fail
2315 completely. Use these options with caution!
2316
2317 .B Default:
2318         no socket options
2319
2320 .B Example:
2321         socket options = IPTOS_LOWDELAY 
2322
2323
2324
2325
2326 .SS status (G)
2327 This enables or disables logging of connections to a status file that
2328 smbstatus can read.
2329
2330 With this disabled smbstatus won't be able to tell you what
2331 connections are active.
2332
2333 .B Default:
2334         status = yes
2335
2336 .B Example:
2337         status = no
2338
2339 .SS strip dot (G)
2340 This is a boolean that controls whether to strup trailing dots off
2341 filenames. This helps with some CDROMs that have filenames ending in a
2342 single dot.
2343
2344 NOTE: This option is now obsolete, and may be removed in future. You
2345 should use the "mangled map" option instead as it is much more
2346 general. 
2347
2348 .SS strict locking (S)
2349 This is a boolean that controls the handling of file locking in the
2350 server. When this is set to yes the server will check every read and
2351 write access for file locks, and deny access if locks exist. This can
2352 be slow on some systems.
2353
2354 When strict locking is "no" the server does file lock checks only when
2355 the client explicitly asks for them. 
2356
2357 Well behaved clients always ask for lock checks when it is important,
2358 so in the vast majority of cases "strict locking = no" is preferable.
2359
2360 .B Default:
2361         strict locking = no
2362
2363 .B Example:
2364         strict locking = yes
2365
2366 .SS sync always (S)
2367
2368 This is a boolean parameter that controls whether writes will always
2369 be written to stable storage before the write call returns. If this is
2370 false then the server will be guided by the clients request in each
2371 write call (clients can set a bit indicating that a particular write
2372 should be synchronous). If this is true then every write will be
2373 followed by a fsync() call to ensure the data is written to disk.
2374
2375 .B Default:
2376         sync always = no
2377
2378 .B Example:
2379         sync always = yes
2380
2381 .SS time offset (G)
2382 This parameter is a setting in minutes to add to the normal GMT to
2383 local time conversion. This is useful if you are serving a lot of PCs
2384 that have incorrect daylight saving time handling.
2385
2386 .B Default:
2387         time offset = 0
2388
2389 .B Example:
2390         time offset = 60
2391
2392 .SS user (S)
2393 See
2394 .B username.
2395 .SS username (S)
2396 A synonym for this parameter is 'user'.
2397
2398 Multiple users may be specified in a comma-delimited list, in which case the
2399 supplied password will be tested against each username in turn (left to right).
2400
2401 The username= line is needed only when the PC is unable to supply it's own
2402 username. This is the case for the coreplus protocol or where your
2403 users have different WfWg usernames to unix usernames. In both these
2404 cases you may also be better using the \\\\server\\share%user syntax
2405 instead. 
2406
2407 The username= line is not a great solution in many cases as it means Samba
2408 will try to validate the supplied password against each of the
2409 usernames in the username= line in turn. This is slow and a bad idea for
2410 lots of users in case of duplicate passwords. You may get timeouts or
2411 security breaches using this parameter unwisely.
2412
2413 Samba relies on the underlying unix security. This parameter does not
2414 restrict who can login, it just offers hints to the Samba server as to
2415 what usernames might correspond to the supplied password. Users can
2416 login as whoever they please and they will be able to do no more
2417 damage than if they started a telnet session. The daemon runs as the
2418 user that they log in as, so they cannot do anything that user cannot
2419 do.
2420
2421 To restrict a service to a particular set of users you can use the
2422 "valid users=" line.
2423
2424 If any of the usernames begin with a @ then the name will be looked up
2425 in the groups file and will expand to a list of all users in the group
2426 of that name. Note that searching though a groups file can take quite
2427 some time, and some clients may time out during the search.
2428
2429 See the section below on username/password validation for more information
2430 on how this parameter determines access to the services.
2431
2432 .B Default:
2433         The guest account if a guest service, else the name of the service.
2434
2435 .B Examples:
2436         username = fred
2437         username = fred, mary, jack, jane, @users, @pcgroup
2438
2439 .SS username map (G)
2440
2441 This option allows you to to specify a file containing a mapping of
2442 usernames from the clients to the server. This can be used for several
2443 purposes. The most common is to map usernames that users use on dos or
2444 windows machines to those that the unix box uses. The other is to map
2445 multiple users to a single username so that they can more easily share
2446 files.
2447
2448 The map file is parsed line by line. Each line should contain a single
2449 unix username on the left then a '=' followed by a list of usernames
2450 on the right. The list of usernames on the right may contain names of
2451 the form @group in which case they will match any unix username in
2452 that group. The special client name '*' is a wildcard and matches any
2453 name.
2454
2455 The file is processed on each line by taking the supplied username and
2456 comparing it with each username on the right hand side of the '='
2457 signs. If the supplied name matrches any of the names on the right
2458 hand side then it is replaced with the name on the left. Processing
2459 then continues with the next line.
2460
2461 If any line begins with a '#' or a ';' then it is ignored
2462
2463 For example to map from he name "admin" or "administrator" to the unix
2464 name "root" you would use
2465
2466         root = admin administrator
2467
2468 Or to map anyone in the unix group "system" to the unix name "sys" you
2469 would use
2470
2471         sys = @system
2472
2473 You can have as many mappings as you like in a username map file.
2474
2475 Note that the remapping is applied to all occurances of
2476 usernames. Thus if you connect to "\\\\server\\fred" and "fred" is
2477 remapped to "mary" then you will actually be connecting to
2478 "\\\\server\\mary" and will need to supply a password suitable for
2479 "mary" not "fred". The only exception to this is the username passwed
2480 to the "password server" (if you have one). The password server will
2481 receive whatever username the client supplies without modification.
2482
2483 Also note that no reverse mapping is done. The main effect this has is
2484 with printing. Users who have been mapped may have trouble deleting
2485 print jobs as PrintManager under WfWg will think they don't own the
2486 print job.
2487
2488 .B Default
2489         no username map
2490
2491 .B Example
2492         username map = /usr/local/samba/lib/users.map
2493
2494 .SS valid chars (S)
2495
2496 The option allows you to specify additional characters that should be
2497 considered valid by the server in filenames. This is particularly
2498 useful for national character sets, such as adding u-umlaut or a-ring.
2499
2500 The option takes a list of characters in either integer or character
2501 form with spaces between them. If you give two characters with a colon
2502 between them then it will be taken as an lowercase:uppercase pair.
2503
2504 If you have an editor capable of entering the characters into the
2505 config file then it is probably easiest to use this method. Otherwise
2506 you can specify the characters in octal, decimal or hexidecimal form
2507 using the usual C notation.
2508
2509 For example to add the single character 'Z' to the charset (which is a
2510 pointless thing to do as it's already there) you could do one of the
2511 following
2512
2513 valid chars = Z
2514 valid chars = z:Z
2515 valid chars = 0132:0172
2516
2517 The last two examples above actually add two characters, and alters
2518 the uppercase and lowercase mappings appropriately.
2519
2520 .B Default
2521         Samba defaults to using a reasonable set of valid characters
2522         for english systems
2523
2524 .B Example
2525         valid chars = 0345:0305 0366:0326 0344:0304
2526
2527 The above example allows filenames to have the swedish characters in
2528 them. 
2529
2530 .SS valid users (S)
2531 This is a list of users that should be allowed to login to this
2532 service. A name starting with @ is interpreted as a unix group.
2533
2534 If this is empty (the default) then any user can login. If a username
2535 is in both this list and the "invalid users" list then access is
2536 denied for that user.
2537
2538 The current servicename is substituted for %S. This is useful in the
2539 [homes] section.
2540
2541 See also "invalid users"
2542
2543 .B Default
2544         No valid users list. (anyone can login)
2545
2546 .B Example
2547         valid users = greg, @pcusers
2548
2549 .SS volume (S)
2550 This allows you to override the volume label returned for a
2551 share. Useful for CDROMs whos installation programs insist on a
2552 particular volume label.
2553
2554 The default is the name of the share
2555
2556 .SS wide links (S)
2557 This parameter controls whether or not links in the Unix file system may be
2558 followed by the server. Links that point to areas within the directory tree
2559 exported by the server are always allowed; this parameter controls access 
2560 only to areas that are outside the directory tree being exported.
2561
2562 .B Default:
2563         wide links = yes
2564
2565 .B Example:
2566         wide links = no
2567
2568 .SS wins proxy (G)
2569
2570 This is a boolean that controls if nmbd will respond to broadcast name
2571 queries on behalf of other hosts. You may need to set this to no for
2572 some older clients.
2573
2574 .B Default:
2575         wins proxy = no
2576 .SS wins support (G)
2577
2578 This boolean controls if Samba will act as a WINS server. You should
2579 normally set this to true unless you already have another WINS server
2580 on the network.
2581
2582 .B Default:
2583         wins support = yes
2584 .SS wins server (G)
2585
2586 This specifies the DNS name of the WINS server that Samba should
2587 register with. If you have a WINS server on your network then you
2588 should set this to the WINS servers name.
2589
2590 This option only takes effect if Samba is not acting as a WINS server
2591 itself. 
2592
2593 .B Default:
2594         wins server = 
2595 .SS workgroup (G)
2596
2597 This controls what workgroup your server will appear to be in when
2598 queried by clients. This can be different to the workgroup specified
2599 in the nmbd configuration, but it is probably best if you set them to
2600 the same value.
2601
2602 .B Default:
2603         set in the Makefile
2604
2605 .B Example:
2606         workgroup = MYGROUP
2607
2608 .SS write ok (S)
2609 See
2610 .B writable
2611 and
2612 .B read only.
2613 .SS writable (S)
2614 A synonym for this parameter is 'write ok'. An inverted synonym is 'read only'.
2615
2616 If this parameter is 'no', then users of a service may not create or modify
2617 files in the service's directory.
2618
2619 Note that a printable service ('printable = yes') will ALWAYS allow 
2620 writing to the directory (user privileges permitting), but only via
2621 spooling operations.
2622
2623 .B Default:
2624         writable = no
2625
2626 .B Examples:
2627         read only = no
2628         writable = yes
2629         write ok = yes
2630 .SS write list (S)
2631 This is a list of users that are given read-write access to a
2632 service. If the connecting user is in this list then they will be
2633 given write access, no matter what the "read only" option is set
2634 to. The list can include group names using the @group syntax.
2635
2636 Note that if a user is in both the read list and the write list then
2637 they will be given write access.
2638
2639 See also the "read list" option
2640
2641 .B Default:
2642      write list =
2643
2644 .B Example:
2645      write list = admin, root, @staff
2646
2647 .SS write raw (G)
2648 This parameter controls whether or not the server will support raw writes when
2649 transferring data from clients.
2650
2651 .B Default:
2652         write raw = yes
2653
2654 .B Example:
2655         write raw = no
2656 .SH NOTE ABOUT USERNAME/PASSWORD VALIDATION
2657 There are a number of ways in which a user can connect to a
2658 service. The server follows the following steps in determining if it
2659 will allow a connection to a specified service. If all the steps fail
2660 then the connection request is rejected. If one of the steps pass then
2661 the following steps are not checked.
2662
2663 If the service is marked "guest only = yes" then steps 1 to 5 are skipped
2664
2665 Step 1: If the client has passed a username/password pair and that
2666 username/password pair is validated by the unix systems password
2667 programs then the connection is made as that username. Note that this
2668 includes the \\\\server\\service%username method of passing a username.
2669
2670 Step 2: If the client has previously registered a username with the
2671 system and now supplies a correct password for that username then the
2672 connection is allowed.
2673
2674 Step 3: The clients netbios name and any previously used user names
2675 are checked against the supplied password, if they match then the
2676 connection is allowed as the corresponding user.
2677
2678 Step 4: If the client has previously validated a username/password
2679 pair with the server and the client has passed the validation token
2680 then that username is used. This step is skipped if "revalidate = yes" 
2681 for this service.
2682
2683 Step 5: If a "user = " field is given in the smb.conf file for the
2684 service and the client has supplied a password, and that password
2685 matches (according to the unix systems password checking) with one of
2686 the usernames from the user= field then the connection is made as the
2687 username in the "user=" line. If one of the username in the user= list
2688 begins with a @ then that name expands to a list of names in the group
2689 of the same name.
2690
2691 Step 6: If the service is a guest service then a connection is made as
2692 the username given in the "guest account =" for the service,
2693 irrespective of the supplied password.
2694
2695
2696 .SH WARNINGS
2697 Although the configuration file permits service names to contain spaces, 
2698 your client software may not. Spaces will be ignored in comparisons anyway,
2699 so it shouldn't be a problem - but be aware of the possibility.
2700
2701 On a similar note, many clients - especially DOS clients - limit service
2702 names to eight characters. Smbd has no such limitation, but attempts
2703 to connect from such clients will fail if they truncate the service names.
2704 For this reason you should probably keep your service names down to eight 
2705 characters in length.
2706
2707 Use of the [homes] and [printers] special sections make life for an 
2708 administrator easy, but the various combinations of default attributes can be
2709 tricky. Take extreme care when designing these sections. In particular,
2710 ensure that the permissions on spool directories are correct.
2711 .SH VERSION
2712 This man page is (mostly) correct for version 1.9.00 of the Samba suite, plus some
2713 of the recent patches to it. These notes will necessarily lag behind 
2714 development of the software, so it is possible that your version of 
2715 the server has extensions or parameter semantics that differ from or are not 
2716 covered by this man page. Please notify these to the address below for 
2717 rectification.
2718
2719 Prior to version 1.5.21 of the Samba suite, the configuration file was
2720 radically different (more primitive). If you are using a version earlier than
2721 1.8.05, it is STRONGLY recommended that you upgrade.
2722 .SH OPTIONS
2723 Not applicable.
2724
2725 .SH FILES
2726 Not applicable.
2727
2728 .SH ENVIRONMENT VARIABLES
2729 Not applicable.
2730
2731 .SH SEE ALSO
2732 .B smbd(8),
2733 .B smbclient(1),
2734 .B nmbd(8),
2735 .B testparm(1), 
2736 .B testprns(1),
2737 .B lpq(1),
2738 .B hosts_access(5)
2739 .SH DIAGNOSTICS
2740 [This section under construction]
2741
2742 Most diagnostics issued by the server are logged in a specified log file. The
2743 log file name is specified at compile time, but may be overridden on the
2744 smbd (see smbd(8)) command line.
2745
2746 The number and nature of diagnostics available depends on the debug level used
2747 by the server. If you have problems, set the debug level to 3 and peruse the
2748 log files.
2749
2750 Most messages are reasonably self-explanatory. Unfortunately, at time of
2751 creation of this man page the source code is still too fluid to warrant
2752 describing each and every diagnostic. At this stage your best bet is still
2753 to grep the source code and inspect the conditions that gave rise to the 
2754 diagnostics you are seeing.
2755
2756 .SH BUGS
2757 None known.
2758
2759 Please send bug reports, comments and so on to:
2760
2761 .RS 3
2762 .B samba-bugs@anu.edu.au (Andrew Tridgell)
2763
2764 .RS 3
2765 or to the mailing list
2766 .RE
2767
2768 .B samba@listproc.anu.edu.au
2769
2770 .RE
2771 You may also like to subscribe to the announcement channel
2772
2773 .RS 3
2774 samba-announce@listproc.anu.edu.au
2775 .RE
2776
2777 To subscribe to these lists send a message to
2778 listproc@listproc.anu.edu.au with a body of "subscribe samba Your
2779 Name" or "subscribe samba-announce Your Name".
2780
2781 Errors or suggestions for improvements to the Samba man pages should be 
2782 mailed to:
2783
2784 .RS 3
2785 .B samba-bugs@anu.edu.au (Andrew Tridgell)
2786 .RE
2787