7149be6a473134828353ffd65c083eecf9cfe53b
[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 invalid users (S)
1052 This is a list of users that should not be allowed to login to this
1053 service. This is really a "paranoid" check to absolutely ensure an
1054 improper setting does not breach your security.
1055
1056 A name starting with @ is interpreted as a unix group.
1057
1058 The current servicename is substituted for %S. This is useful in the
1059 [homes] section.
1060
1061 See also "valid users"
1062
1063 .B Default
1064         No invalid users
1065
1066 .B Example
1067         invalid users = root fred admin @wheel
1068
1069 .SS include (G)
1070
1071 This allows you to inlcude one config file inside another. the file is
1072 included literally, as though typed in place.
1073
1074 It takes the standard substitutions, except %u, %P and %S
1075
1076 .SS keep alive (G)
1077 The value of the parameter (an integer) represents the number of seconds 
1078 between 'keepalive' packets. If this parameter is zero, no keepalive packets
1079 will be sent. Keepalive packets, if sent, allow the server to tell whether a
1080 client is still present and responding.
1081
1082 Keepalives should, in general, not be needed if the socket being used
1083 has the SO_KEEPALIVE attribute set on it (see "socket
1084 options"). Basically you should only use this option if you strike
1085 difficulties.
1086
1087 .B Default:
1088         keep alive = 0
1089
1090 .B Example:
1091         keep alive = 60
1092 .SS load printers (G)
1093 A boolean variable that controls whether all printers in the printcap
1094 will be loaded for browsing by default. 
1095
1096 .B Default:
1097         load printers = no
1098
1099 .B Example:
1100         load printers = yes
1101
1102 .SS lock directory (G)
1103 This options specifies the directory where lock files will be placed.
1104 The lock files are used to implement the "max connections" option.
1105
1106 .B Default:
1107         lock directory = /tmp/samba
1108
1109 .B Example: 
1110         lock directory = /usr/local/samba/locks
1111 .SS locking (S)
1112 This controls whether or not locking will be performed by the server in 
1113 response to lock requests from the client.
1114
1115 If "locking = no", all lock and unlock requests will appear to succeed and 
1116 all lock queries will indicate that the queried lock is clear.
1117
1118 If "locking = yes", real locking will be performed by the server.
1119
1120 This option may be particularly useful for read-only filesystems which
1121 do not need locking (such as cdrom drives).
1122
1123 Be careful about disabling locking either globally or in a specific
1124 service, as lack of locking may result in data corruption.
1125
1126 .B Default:
1127         locking = yes
1128
1129 .B Example:
1130         locking = no
1131
1132 .SS log file (G)
1133
1134 This options allows you to override the name of the Samba log file
1135 (also known as the debug file).
1136
1137 This option takes the standard substitutions, allowing you to have
1138 separate log files for each user or machine.
1139
1140 .B Example:
1141         log file = /usr/local/samba/log.%m
1142
1143 .SS log level (G)
1144 see "debug level"
1145
1146 .SS lppause command (S)
1147 This parameter specifies the command to be executed on the server host in
1148 order to stop printing or spooling a specific print job.
1149
1150 This command should be a program or script which takes a printer name and
1151 job number to pause the print job. Currently I don't know of any print
1152 spooler system that can do this with a simple option, except for the PPR
1153 system from Trinity College (ppr\-dist.trincoll.edu/pub/ppr). One way
1154 of implementing this is by using job priorities, where jobs having a too
1155 low priority wont be sent to the printer. See also the lppause command.
1156
1157 If a %p is given then the printername is put in it's place. A %j is
1158 replaced with the job number (an integer).
1159 On HPUX (see printing=hpux), if the -p%p option is added to the lpq
1160 command, the job will show up with the correct status, i.e. if the job
1161 priority is lower than the set fence priority it will have the PAUSED
1162 status, whereas if the priority is equal or higher it will have the
1163 SPOOLED or PRINTING status.
1164
1165 Note that it is good practice to include the absolute path in the lppause
1166 command as the PATH may not be available to the server.
1167
1168 .B Default:
1169         Currently no default value is given to this string
1170
1171 .B Example for HPUX:
1172         lppause command = /usr/bin/lpalt %p-%j -p0
1173
1174 .SS lpq cache time (G)
1175
1176 This controls how long lpq info will be cached for to prevent the lpq
1177 command being called too often. A separate cache is kept for each
1178 variation of the lpq command used by the system, so if you use
1179 different lpq commands for different users then they won't share cache
1180 information.
1181
1182 The cache files are stored in /tmp/lpq.xxxx where xxxx is a hash
1183 of the lpq command in use.
1184
1185 The default is 10 seconds, meaning that the cached results of a
1186 previous identical lpq command will be used if the cached data is less
1187 than 10 seconds old. A large value may be advisable if your lpq
1188 command is very slow.
1189
1190 A value of 0 will disable cacheing completely.
1191
1192 .B Default:
1193         lpq cache time = 10
1194
1195 .B Example:
1196         lpq cache time = 30
1197
1198 .SS lpq command (S)
1199 This parameter specifies the command to be executed on the server host in
1200 order to obtain "lpq"-style printer status information. 
1201
1202 This command should be a program or script which takes a printer name
1203 as its only parameter and outputs printer status information. 
1204
1205 Currently six styles of printer status information are supported; BSD,
1206 SYSV, AIX, HPUX, QNX and PLP. This covers most unix systems. You
1207 control which type is expected using the "printing =" option.
1208
1209 Some clients (notably Windows for Workgroups) may not correctly send the
1210 connection number for the printer they are requesting status information
1211 about. To get around this, the server reports on the first printer service
1212 connected to by the client. This only happens if the connection number sent
1213 is invalid.
1214
1215 If a %p is given then the printername is put in it's place. Otherwise
1216 it is placed at the end of the command.
1217
1218 Note that it is good practice to include the absolute path in the lpq
1219 command as the PATH may not be available to the server.
1220
1221 .B Default:
1222         depends on the setting of "printing ="
1223
1224 .B Example:
1225         lpq command = /usr/bin/lpq %p
1226
1227 .SS lpresume command (S)
1228 This parameter specifies the command to be executed on the server host in
1229 order to restart or continue printing or spooling a specific print job.
1230
1231 This command should be a program or script which takes a printer name and
1232 job number to resume the print job. See also the lppause command.
1233
1234 If a %p is given then the printername is put in it's place. A %j is
1235 replaced with the job number (an integer).
1236
1237 Note that it is good practice to include the absolute path in the lpresume
1238 command as the PATH may not be available to the server.
1239
1240 .B Default:
1241         Currently no default value is given to this string
1242
1243 .B Example for HPUX:
1244         lpresume command = /usr/bin/lpalt %p-%j -p2
1245
1246 .SS lprm command (S)
1247 This parameter specifies the command to be executed on the server host in
1248 order to delete a print job.
1249
1250 This command should be a program or script which takes a printer name
1251 and job number, and deletes the print job.
1252
1253 Currently six styles of printer control are supported; BSD, SYSV, AIX
1254 HPUX, QNX and PLP. This covers most unix systems. You control which type is
1255 expected using the "printing =" option.
1256
1257 If a %p is given then the printername is put in it's place. A %j is
1258 replaced with the job number (an integer).
1259
1260 Note that it is good practice to include the absolute path in the lprm
1261 command as the PATH may not be available to the server.
1262
1263 .B Default:
1264         depends on the setting of "printing ="
1265
1266 .B Example 1:
1267         lprm command = /usr/bin/lprm -P%p %j
1268
1269 .B Example 2:
1270         lprm command = /usr/bin/cancel %p-%j
1271
1272 .SS magic output (S)
1273 This parameter specifies the name of a file which will contain output
1274 created by a magic script (see
1275 .I magic script
1276 below).
1277
1278 Warning: If two clients use the same magic script in the same directory the
1279 output file content is undefined.
1280 .B Default:
1281         magic output = <magic script name>.out
1282
1283 .B Example:
1284         magic output = myfile.txt
1285 .SS magic script (S)
1286 This parameter specifies the name of a file which, if opened, will be
1287 executed by the server when the file is closed. This allows a Unix script
1288 to be sent to the Samba host and executed on behalf of the connected user.
1289
1290 Scripts executed in this way will be deleted upon completion, permissions
1291 permitting.
1292
1293 If the script generates output, output will be sent to the file specified by
1294 the
1295 .I magic output
1296 parameter (see above).
1297
1298 Note that some shells are unable to interpret scripts containing
1299 carriage-return-linefeed instead of linefeed as the end-of-line
1300 marker. Magic scripts must be executable "as is" on the host, which
1301 for some hosts and some shells will require filtering at the DOS end.
1302
1303 Magic scripts are EXPERIMENTAL and should NOT be relied upon.
1304 .B Default:
1305         None. Magic scripts disabled.
1306
1307 .B Example:
1308         magic script = user.csh
1309 .SS mangled map (S)
1310 This is for those who want to directly map UNIX file names which are
1311 not representable on DOS.  The mangling of names is not always what is
1312 needed.  In particular you may have documents with file extensiosn
1313 that differ between dos and unix. For example, under unix it is common
1314 to use .html for HTML files, whereas under dos .htm is more commonly
1315 used.
1316
1317 So to map 'html' to 'htm' you put:
1318
1319   mangled map = (*.html *.htm)
1320
1321 One very useful case is to remove the annoying ;1 off the ends of
1322 filenames on some CDROMS (only visible under some unixes). To do this
1323 use a map of (*;1 *)
1324
1325 .B default:
1326         no mangled map
1327
1328 .B Example:
1329         mangled map = (*;1 *)
1330
1331 .SS mangle case (S)
1332
1333 See the section on "NAME MANGLING"
1334
1335 .SS mangled names (S)
1336 This controls whether non-DOS names under Unix should be mapped to
1337 DOS-compatible names ("mangled") and made visible, or whether non-DOS names
1338 should simply be ignored.
1339
1340 See the section on "NAME MANGLING" for details on how to control the
1341 mangling process.
1342
1343 If mangling is used then the mangling algorithm is as follows:
1344 .RS
1345 - the first (up to) five alphanumeric characters before the rightmost dot of
1346 the filename are preserved, forced to upper case, and appear as the first (up
1347 to) five characters of the mangled name.
1348
1349 - a tilde ("~") is appended to the first part of the mangled name, followed
1350 by a two-character unique sequence, based on the origonal root name 
1351 (i.e., the original filename minus its final extension). The final
1352 extension is included in the hash calculation only if it contains any upper
1353 case characters or is longer than three characters.
1354
1355 Note that the character to use may be specified using the "mangling
1356 char" option, if you don't like ~.
1357
1358 - the first three alphanumeric characters of the final extension are preserved,
1359 forced to upper case and appear as the extension of the mangled name. The 
1360 final extension is defined as that part of the original filename after the
1361 rightmost dot. If there are no dots in the filename, the mangled name will
1362 have no extension (except in the case of hidden files - see below).
1363
1364 - files whose Unix name begins with a dot will be presented as DOS hidden
1365 files. The mangled name will be created as for other filenames, but with the
1366 leading dot removed and "___" as its extension regardless of actual original
1367 extension (that's three underscores).
1368 .RE
1369
1370 The two-digit hash value consists of upper case alphanumeric characters.
1371
1372 This algorithm can cause name collisions only if files in a directory share
1373 the same first five alphanumeric characters. The probability of such a clash 
1374 is 1/1300.
1375
1376 The name mangling (if enabled) allows a file to be copied between Unix
1377 directories from DOS while retaining the long Unix filename. Unix files can
1378 be renamed to a new extension from DOS and will retain the same basename. 
1379 Mangled names do not change between sessions.
1380
1381 .B Default:
1382         mangled names = yes
1383
1384 .B Example:
1385         mangled names = no
1386 .SS mangling char (S)
1387 This controls what character is used as the "magic" character in name
1388 mangling. The default is a ~ but this may interfere with some
1389 software. Use this option to set it to whatever you prefer.
1390
1391 .B Default:
1392         mangling char = ~
1393
1394 .B Example:
1395         mangling char = ^
1396
1397 .SS max log size (G)
1398
1399 This option (an integer in kilobytes) specifies the max size the log
1400 file should grow to. Samba periodically checks the size and if it is
1401 exceeded it will rename the file, adding a .old extension.
1402
1403 A size of 0 means no limit.
1404
1405 .B Default:
1406         max log size = 5000
1407
1408 .B Example:
1409         max log size = 1000
1410
1411 .SS max xmit (G)
1412
1413 This option controls the maximum packet size that will be negotiated
1414 by Samba. The default is 65535, which is the maximum. In some cases
1415 you may find you get better performance with a smaller value. A value
1416 below 2048 is likely to cause problems.
1417
1418 .B Default:
1419         max xmit = 65535
1420
1421 .B Example:
1422         max xmit = 8192
1423
1424 .SS mangled stack (G)
1425 This parameter controls the number of mangled names that should be cached in
1426 the Samba server.
1427
1428 This stack is a list of recently mangled base names (extensions are only
1429 maintained if they are longer than 3 characters or contains upper case
1430 characters).
1431
1432 The larger this value, the more likely it is that mangled names can be
1433 successfully converted to correct long Unix names. However, large stack
1434 sizes will slow most directory access. Smaller stacks save memory in the
1435 server (each stack element costs 256 bytes).
1436
1437 It is not possible to absolutely guarantee correct long file names, so
1438 be prepared for some surprises!
1439
1440 .B Default:
1441         mangled stack = 50
1442
1443 .B Example:
1444         mangled stack = 100
1445
1446 .SS map archive (S)
1447 This controls whether the DOS archive attribute should be mapped to Unix
1448 execute bits.  The DOS archive bit is set when a file has been modified
1449 since its last backup.  One motivation for this option it to keep Samba/your
1450 PC from making any file it touches from becoming executable under UNIX.
1451 This can be quite annoying for shared source code, documents,  etc...
1452
1453 .B Default:
1454       map archive = yes
1455
1456 .B Example:
1457       map archive = no
1458
1459 .SS map hidden (S)
1460 This controls whether DOS style hidden files should be mapped to Unix
1461 execute bits.
1462
1463 .B Default:
1464         map hidden = no
1465
1466 .B Example:
1467         map hidden = yes
1468 .SS map system (S)
1469 This controls whether DOS style system files should be mapped to Unix
1470 execute bits.
1471
1472 .B Default:
1473         map system = no
1474
1475 .B Example:
1476         map system = yes
1477 .SS max connections (S)
1478 This option allows the number of simultaneous connections to a
1479 service to be limited. If "max connections" is greater than 0 then
1480 connections will be refused if this number of connections to the
1481 service are already open. A value of zero mean an unlimited number of
1482 connections may be made.
1483
1484 Record lock files are used to implement this feature. The lock files
1485 will be stored in the directory specified by the "lock directory" option.
1486
1487 .B Default:
1488         max connections = 0
1489
1490 .B Example:
1491         max connections = 10
1492 .SS only user (S)
1493 This is a boolean option that controls whether connections with
1494 usernames not in the user= list will be allowed. By default this
1495 option is disabled so a client can supply a username to be used by
1496 the server.
1497
1498 Note that this also means Samba won't try to deduce usernames from the
1499 service name. This can be annoying for the [homes] section. To get
1500 around this you could use "user = %S" which means your "user" list
1501 will be just the service name, which for home directories is the name
1502 of the user.
1503
1504 .B Default: 
1505         only user = False
1506
1507 .B Example: 
1508         only user = True
1509
1510 .SS message command (G)
1511
1512 This specifies what command to run when the server receives a WinPopup
1513 style message.
1514
1515 This would normally be a command that would deliver the message
1516 somehow. How this is to be done is up to your imagination.
1517
1518 What I use is:
1519
1520    message command = csh -c 'xedit %s;rm %s' &
1521
1522 This delivers the message using xedit, then removes it
1523 afterwards. NOTE THAT IT IS VERY IMPORTANT THAT THIS COMMAND RETURN
1524 IMMEDIATELY. That's why I have the & on the end. If it doesn't return
1525 immediately then your PCs may freeze when sending messages (they
1526 should recover after 30secs, hopefully).
1527
1528 All messages are delivered as the global guest user. The command takes
1529 the standard substitutions, although %u won't work (%U may be better
1530 in this case).
1531
1532 Apart from the standard substitutions, some additional ones apply. In
1533 particular:
1534
1535 %s = the filename containing the message
1536
1537 %t = the destination that the message was sent to (probably the server
1538 name)
1539
1540 %f = who the message is from
1541
1542 You could make this command send mail, or whatever else takes your
1543 fancy. Please let me know of any really interesting ideas you have.
1544
1545 Here's a way of sending the messages as mail to root:
1546
1547 message command = /bin/mail -s 'message from %f on %m' root < %s; rm %s
1548
1549 If you don't have a message command then the message won't be
1550 delivered and Samba will tell the sender there was an
1551 error. Unfortunately WfWg totally ignores the error code and carries
1552 on regardless, saying that the message was delivered.
1553
1554 If you want to silently delete it then try "message command = rm %s".
1555
1556 For the really adventurous, try something like this:
1557
1558 message command = csh -c 'csh < %s |& /usr/local/samba/smbclient \\
1559                   -M %m; rm %s' &
1560
1561 this would execute the command as a script on the server, then give
1562 them the result in a WinPopup message. Note that this could cause a
1563 loop if you send a message from the server using smbclient! You better
1564 wrap the above in a script that checks for this :-)
1565
1566 .B Default:
1567         no message command
1568
1569 .B Example:
1570         message command = csh -c 'xedit %s;rm %s' &
1571
1572 .SS min print space (S)
1573
1574 This sets the minimum amount of free disk space that must be available
1575 before a user will be able to spool a print job. It is specified in
1576 kilobytes. The default is 0, which means no limit.
1577
1578 .B Default:
1579         min print space = 0
1580
1581 .B Example:
1582         min print space = 2000
1583
1584 .SS null passwords (G)
1585 Allow or disallow access to accounts that have null passwords. 
1586
1587 .B Default:
1588         null passwords = no
1589
1590 .B Example:
1591         null passwords = yes
1592
1593 .SS os level (G)
1594 This integer value controls what level Samba advertises itself as for
1595 browse elections. See BROWSING.txt for details.
1596
1597 .SS packet size (G)
1598 The maximum transmit packet size during a raw read. This option is no
1599 longer implemented as of version 1.7.00, and is kept only so old
1600 configuration files do not become invalid.
1601
1602 .SS passwd chat (G)
1603 This string coontrols the "chat" conversation that takes places
1604 between smbd and the local password changing program to change the
1605 users password. The string describes a sequence of response-receive
1606 pairs that smbd uses to determine what to send to the passwd program
1607 and what to expect back. If the expected output is not received then
1608 the password is not changed.
1609
1610 This chat sequence is often quite site specific, deppending on what
1611 local methods are used for password control (such as NIS+ etc).
1612
1613 The string can contain the macros %o and %n which are substituted for
1614 the old and new passwords respectively. It can aso contain the
1615 standard macros \\n \\r \\t and \\s to give line-feed, carriage-return,
1616 tab and space.
1617
1618 The string can also contain a * which matches any sequence of
1619 characters.
1620
1621 Double quotes can be used to collect strings with spaces in them into
1622 a single string.
1623
1624 If the send string in any part of the chat sequence is a fullstop "."
1625 then no string is sent. Similarly, is the expect string is a fullstop
1626 then no string is expected.
1627
1628 .B Example:
1629         passwd chat = "*Enter OLD password*" %o\\n "*Enter NEW password*" %n\\n \\
1630                       "*Reenter NEW password*" %n\\n "*Password changed*"
1631
1632 .B Default:
1633         passwd chat = *old*password* %o\\n *new*password* %n\\n *new*password* %n\\n *changed*
1634
1635 .SS passwd program (G)
1636 The name of a program that can be used to set user passwords.
1637
1638 This is only necessary if you have enabled remote password changing at
1639 compile time. Any occurances of %u will be replaced with the user
1640 name.
1641
1642 Also note that many passwd programs insist in "reasonable" passwords,
1643 such as a minimum length, or the inclusion of mixed case chars and
1644 digits. This can pose a problem as some clients (such as Windows for
1645 Workgroups) uppercase the password before sending it. 
1646
1647 .B Default:
1648         passwd program = /bin/passwd
1649
1650 .B Example:
1651         passwd program = /sbin/passwd %u
1652
1653 .SS password level (G)
1654 Some client/server conbinations have difficulty with mixed-case passwords.
1655 One offending client is Windows for Workgroups, which for some reason forces
1656 passwords to upper case when using the LANMAN1 protocol, but leaves them alone
1657 when using COREPLUS!
1658
1659 This parameter defines the maximum number of characters that may be upper case
1660 in passwords.
1661
1662 For example, say the password given was "FRED". If
1663 .B password level
1664 is set to 1 (one), the following combinations would be tried if "FRED" failed:
1665 "Fred", "fred", "fRed", "frEd", "freD". If
1666 .B password level was set to 2 (two), the following combinations would also be
1667 tried: "FRed", "FrEd", "FreD", "fREd", "fReD", "frED". And so on.
1668
1669 The higher value this parameter is set to the more likely it is that a mixed
1670 case password will be matched against a single case password. However, you
1671 should be aware that use of this parameter reduces security and increases the
1672 time taken to process a new connection.
1673
1674 A value of zero will cause only two attempts to be made - the password as is
1675 and the password in all-lower case.
1676
1677 If you find the connections are taking too long with this option then
1678 you probably have a slow crypt() routine. Samba now comes with a fast
1679 "ufc crypt" that you can select in the Makefile. You should also make
1680 sure the PASSWORD_LENGTH option is correct for your system in local.h
1681 and includes.h. On most systems only the first 8 chars of a password
1682 are significant so PASSWORD_LENGTH should be 8, but on some longer
1683 passwords are significant. The inlcudes.h file tries to select the
1684 right length for your system.
1685
1686 .B Default:
1687         password level = 0
1688
1689 .B Example:
1690         password level = 4
1691
1692 .SS password server (G)
1693
1694 By specifying the name of another SMB server (such as a WinNT box)
1695 with this option, and using "security = server" you can get Samba to
1696 do all it's username/password validation via a remote server.
1697
1698 This options sets the name of the password server to use. It must be a
1699 netbios name, so if the machines netbios name is different from it's
1700 internet name then you may have to add it's netbios name to
1701 /etc/hosts.
1702
1703 The password server much be a machine capable of using the "LM1.2X002"
1704 or the "LM NT 0.12" protocol, and it must be in user level security
1705 mode. 
1706
1707 NOTE: Using a password server means your unix box (running Samba) is
1708 only as secure as your password server. DO NOT CHOOSE A PASSWORD
1709 SERVER THAT YOU DON'T COMPLETELY TRUST.
1710
1711 Never point a Samba server at itself for password serving. This will
1712 cause a loop and could lock up your Samba server!
1713
1714 The name of the password server takes the standard substitutions, but
1715 probably the only useful one is %m, which means the Samba server will
1716 use the incoming client as the password server. If you use this then
1717 you better trust your clients, and you better restrict them with hosts
1718 allow!
1719
1720 If you list several hosts in the "password server" option then smbd
1721 will try each in turn till it finds one that responds. This is useful
1722 in case your primary server goes down.
1723
1724 .SS path (S)
1725 A synonym for this parameter is 'directory'.
1726
1727 This parameter specifies a directory to which the user of the service is to
1728 be given access. In the case of printable services, this is where print data 
1729 will spool prior to being submitted to the host for printing.
1730
1731 For a printable service offering guest access, the service should be readonly
1732 and the path should be world-writable and have the sticky bit set. This is not
1733 mandatory of course, but you probably won't get the results you expect if you
1734 do otherwise.
1735
1736 Any occurances of %u in the path will be replaced with the username
1737 that the client is connecting as. Any occurances of %m will be
1738 replaced by the name of the machine they are connecting from. These
1739 replacements are very useful for setting up pseudo home directories
1740 for users.
1741
1742 Note that this path will be based on 'root dir' if one was specified.
1743 .B Default:
1744         none
1745
1746 .B Example:
1747         path = /home/fred+ 
1748
1749 .SS postexec (S)
1750
1751 This option specifies a command to be run whenever the service is
1752 disconnected. It takes the usual substitutions. The command may be run
1753 as the root on some systems.
1754
1755 An interesting example may be do unmount server resources:
1756
1757 postexec = /etc/umount /cdrom
1758
1759 See also preexec
1760
1761 .B Default:
1762       none (no command executed)
1763
1764 .B Example:
1765       postexec = echo \"%u disconnected from %S from %m (%I)\" >> /tmp/log
1766
1767 .SS postscript (S)
1768 This parameter forces a printer to interpret the print files as
1769 postscript. This is done by adding a %! to the start of print output. 
1770
1771 This is most useful when you have lots of PCs that persist in putting
1772 a control-D at the start of print jobs, which then confuses your
1773 printer.
1774
1775 .B Default: 
1776         postscript = False
1777
1778 .B Example: 
1779         postscript = True
1780
1781 .SS preexec (S)
1782
1783 This option specifies a command to be run whenever the service is
1784 connected to. It takes the usual substitutions.
1785
1786 An interesting example is to send the users a welcome message every
1787 time they log in. Maybe a message of the day? Here is an example:
1788
1789 preexec = csh -c 'echo \"Welcome to %S!\" | \
1790        /usr/local/samba/smbclient -M %m -I %I' &
1791
1792 Of course, this could get annoying after a while :-)
1793
1794 See also postexec
1795
1796 .B Default:
1797         none (no command executed)
1798
1799 .B Example:
1800         preexec = echo \"%u connected to %S from %m (%I)\" >> /tmp/log
1801
1802 .SS preferred master (G)
1803 This boolean parameter controls if Samba is a preferred master browser
1804 for its workgroup. Setting this gives it a slight edge in elections
1805 and also means it will automatically start an election when it starts
1806 up. 
1807
1808 It is on by default.
1809
1810 .SS preload
1811 This is an alias for "auto services"
1812
1813 .SS preserve case (S)
1814
1815 This controls if new filenames are created with the case that the
1816 client passes, or if they are forced to be the "default" case.
1817
1818 .B Default:
1819        preserve case = no
1820
1821 See the section on "NAME MANGLING" for a fuller discussion.
1822
1823 .SS print command (S)
1824 After a print job has finished spooling to a service, this command will be
1825 used via a system() call to process the spool file. Typically the command 
1826 specified will submit the spool file to the host's printing subsystem, but
1827 there is no requirement that this be the case. The server will not remove the
1828 spool file, so whatever command you specify should remove the spool file when
1829 it has been processed, otherwise you will need to manually remove old spool
1830 files.
1831
1832 The print command is simply a text string. It will be used verbatim,
1833 with two exceptions: All occurrences of "%s" will be replaced by the
1834 appropriate spool file name, and all occurrences of "%p" will be
1835 replaced by the appropriate printer name. The spool file name is
1836 generated automatically by the server, the printer name is discussed
1837 below.
1838
1839 The full path name will be used for the filename if %s is not preceded
1840 by a /. If you don't like this (it can stuff up some lpq output) then
1841 use %f instead. Any occurances of %f get replaced by the spool
1842 filename without the full path at the front.
1843
1844 The print command MUST contain at least one occurrence of "%s" or %f -
1845 the "%p" is optional. At the time a job is submitted, if no printer
1846 name is supplied the "%p" will be silently removed from the printer
1847 command.
1848
1849 If specified in the [global] section, the print command given will be used
1850 for any printable service that does not have its own print command specified.
1851
1852 If there is neither a specified print command for a printable service nor a 
1853 global print command, spool files will be created but not processed and (most
1854 importantly) not removed.
1855
1856 Note that printing may fail on some unixes from the "nobody"
1857 account. If this happens then create an alternative guest account that
1858 can print and set the "guest account" in the [global] section.
1859
1860 You can form quite complex print commands by realising that they are
1861 just passed to a shell. For example the following will log a print
1862 job, print the file, then remove it. Note that ; is the usual
1863 separator for command in shell scripts.
1864
1865 print command = echo Printing %s >> /tmp/print.log; lpr -P %p %s; rm %s
1866
1867 You may have to vary this command considerably depending on how you
1868 normally print files on your system.
1869
1870 .B Default:
1871         print command = lpr -r -P %p %s
1872
1873 .B Example:
1874         print command = /usr/local/samba/myprintscript %p %s
1875 .SS print ok (S)
1876 See
1877 .B printable.
1878 .SS printable (S)
1879 A synonym for this parameter is 'print ok'.
1880
1881 If this parameter is 'yes', then clients may open, write to and submit spool 
1882 files on the directory specified for the service.
1883
1884 Note that a printable service will ALWAYS allow writing to the service path
1885 (user privileges permitting) via the spooling of print data. The 'read only'
1886 parameter controls only non-printing access to the resource.
1887
1888 .B Default:
1889         printable = no
1890
1891 .B Example:
1892         printable = yes
1893
1894 .SS printing (G)
1895 This parameters controls how printer status information is interpreted
1896 on your system, and also affects the default values for the "print
1897 command", "lpq command" and "lprm command".
1898
1899 Currently six printing styles are supported. They are "printing =
1900 bsd", "printing = sysv", "printing = hpux", "printing = aix",
1901 "printing = qnx" and "printing = plp".
1902
1903 To see what the defaults are for the other print commands when using
1904 these three options use the "testparm" program.
1905
1906
1907 .SS printcap name (G)
1908 This parameter may be used to override the compiled-in default printcap
1909 name used by the server (usually /etc/printcap). See the discussion of the
1910 [printers] section above for reasons why you might want to do this.
1911
1912 For those of you without a printcap (say on SysV) you can just create a
1913 minimal file that looks like a printcap and set "printcap name =" in
1914 [global] to point at it.
1915
1916 A minimal printcap file would look something like this:
1917
1918 print1|My Printer 1
1919 print2|My Printer 2
1920 print3|My Printer 3
1921 print4|My Printer 4
1922 print5|My Printer 5
1923
1924 where the | separates aliases of a printer. The fact that the second
1925 alias has a space in it gives a hint to Samba that it's a comment.
1926
1927 NOTE: Under AIX the default printcap name is "/etc/qconfig". Samba
1928 will assume the file is in AIX "qconfig" format if the string
1929 "/qconfig" appears in the printcap filename.
1930
1931 .B Default:
1932         printcap name = /etc/printcap
1933
1934 .B Example:
1935         printcap name = /etc/myprintcap
1936 .SS printer (S)
1937 A synonym for this parameter is 'printer name'.
1938
1939 This parameter specifies the name of the printer to which print jobs spooled
1940 through a printable service will be sent.
1941
1942 If specified in the [global] section, the printer name given will be used
1943 for any printable service that does not have its own printer name specified.
1944
1945 .B Default:
1946         none (but may be 'lp' on many systems)
1947
1948 .B Example:
1949         printer name = laserwriter
1950 .SS printer name (S)
1951 See
1952 .B printer.
1953 .SS protocol (G)
1954 The value of the parameter (a string) is the highest protocol level that will
1955 be supported by the server. 
1956
1957 Possible values are CORE, COREPLUS, LANMAN1, LANMAN2 and NT1. The relative
1958 merits of each are discussed in the README file.
1959
1960 .B Default:
1961         protocol = NT1
1962
1963 .B Example:
1964         protocol = LANMAN1
1965 .SS public (S)
1966 A synonym for this parameter is 'guest ok'.
1967
1968 If this parameter is 'yes' for a service, then no password is required
1969 to connect to the service. Privileges will be those of the guest
1970 account.
1971
1972 See the section below on user/password validation for more information about
1973 this option.
1974
1975 .B Default:
1976         public = no
1977
1978 .B Example:
1979         public = yes
1980 .SS read list (S)
1981 This is a list of users that are given read-only access to a
1982 service. If the connecting user is in this list then they will
1983 not be given write access, no matter what the "read only" option
1984 is set to. The list can include group names using the @group syntax.
1985
1986 See also the "write list" option
1987
1988 .B Default:
1989      read list =
1990
1991 .B Example:
1992      read list = mary, @students
1993
1994 .SS read only (S)
1995 See
1996 .B writable
1997 and
1998 .B write ok.
1999 Note that this is an inverted synonym for writable and write ok.
2000 .SS read prediction (G)
2001 This options enables or disables the read prediction code used to
2002 speed up reads from the server. When enabled the server will try to
2003 pre-read data from the last accessed file that was opened read-only
2004 while waiting for packets.
2005
2006 .SS Default:
2007         read prediction = False
2008
2009 .SS Example:
2010         read prediction = True
2011 .SS read raw (G)
2012 This parameter controls whether or not the server will support raw reads when
2013 transferring data to clients.
2014
2015 If enabled, raw reads allow reads of 65535 bytes in one packet. This
2016 typically provides a major performance benefit.
2017
2018 However, some clients either negotiate the allowable block size incorrectly
2019 or are incapable of supporting larger block sizes, and for these clients you
2020 may need to disable raw reads.
2021
2022 In general this parameter should be viewed as a system tuning tool and left
2023 severely alone. See also
2024 .B write raw.
2025
2026 .B Default:
2027         read raw = yes
2028
2029 .B Example:
2030         read raw = no
2031 .SS read size (G)
2032
2033 The option "read size" affects the overlap of disk reads/writes with
2034 network reads/writes. If the amount of data being transferred in
2035 several of the SMB commands (currently SMBwrite, SMBwriteX and
2036 SMBreadbraw) is larger than this value then the server begins writing
2037 the data before it has received the whole packet from the network, or
2038 in the case of SMBreadbraw, it begins writing to the network before
2039 all the data has been read from disk.
2040
2041 This overlapping works best when the speeds of disk and network access
2042 are similar, having very little effect when the speed of one is much
2043 greater than the other.
2044
2045 The default value is 2048, but very little experimentation has been
2046 done yet to determine the optimal value, and it is likely that the best
2047 value will vary greatly between systems anyway. A value over 65536 is
2048 pointless and will cause you to allocate memory unnecessarily.
2049
2050 .B Default:
2051         read size = 2048
2052
2053 .B Example:
2054         read size = 8192
2055
2056 .SS revalidate (S)
2057
2058 This options controls whether Samba will allow a previously validated
2059 username/password pair to be used to attach to a share. Thus if you
2060 connect to \\\\server\\share1 then to \\\\server\\share2 it won't
2061 automatically allow the client to request connection to the second
2062 share as the same username as the first without a password.
2063
2064 If "revalidate" is True then the client will be denied automatic
2065 access as the same username.
2066
2067 .B Default:
2068         revalidate = False
2069
2070 .B Example:
2071         revalidate = True
2072
2073 .SS root (G)
2074 See
2075 .B root directory.
2076 .SS root dir (G)
2077 See
2078 .B root directory.
2079 .SS root directory (G)
2080 Synonyms for this parameter are 'root dir' and 'root'.
2081
2082 The server will chroot() to this directory on startup. This is not 
2083 strictly necessary for secure operation. Even without it the server
2084 will deny access to files not in one of the service entries. It may 
2085 also check for, and deny access to, soft links to other parts of the 
2086 filesystem, or attempts to use .. in file names to access other 
2087 directories (depending on the setting of the "wide links" parameter).
2088
2089 Adding a "root dir" entry other than "/" adds an extra level of security, 
2090 but at a price. It absolutely ensures that no access is given to files not
2091 in the sub-tree specified in the "root dir" option, *including* some files 
2092 needed for complete operation of the server. To maintain full operability
2093 of the server you will need to mirror some system files into the "root dir"
2094 tree. In particular you will need to mirror /etc/passwd (or a subset of it),
2095 and any binaries or configuration files needed for printing (if required). 
2096 The set of files that must be mirrored is operating system dependent.
2097
2098 .B Default:
2099         root directory = /
2100
2101 .B Example:
2102         root directory = /homes/smb
2103 .SS security (G)
2104 This option does affects how clients respond to Samba.
2105
2106 The option sets the "security mode bit" in replies to protocol negotiations
2107 to turn share level security on or off. Clients decide based on this bit 
2108 whether (and how) to transfer user and password information to the server.
2109
2110 The default is "security=SHARE", mainly because that was the only
2111 option at one stage.
2112
2113 The alternatives are "security = user" or "security = server". 
2114
2115 If your PCs use usernames that are the same as their usernames on the
2116 unix machine then you will want to use "security = user". If you
2117 mostly use usernames that don't exist on the unix box then use
2118 "security = share".
2119
2120 There is a bug in WfWg that may affect your decision. When in user
2121 level security a WfWg client will totally ignore the password you type
2122 in the "connect drive" dialog box. This makes it very difficult (if
2123 not impossible) to connect to a Samba service as anyone except the
2124 user that you are logged into WfWg as.
2125
2126 If you use "security = server" then Samba will try to validate the
2127 username/password by passing it to another SMB server, such as an NT
2128 box. If this fails it will revert to "security = USER".
2129
2130 See the "password server" option for more details.
2131
2132 .B Default:
2133         security = SHARE
2134
2135 .B Example:
2136         security = USER
2137 .SS server string (G)
2138 This controls what string will show up in the printer comment box in
2139 print manager and next to the IPC connection in "net view". It can be
2140 any string that you wish to show to your users.
2141
2142 Note that it DOES NOT affect the string that appears in browse
2143 lists. That is controlled by a nmbd command line option instead.
2144
2145 A %v will be replaced with the Samba version number.
2146
2147 A %h will be replaced with the hostname.
2148
2149 .B Default:
2150         server string = Samba %v
2151
2152 .B Example:
2153         server string = University of GNUs Samba Server
2154
2155 .SS smbrun (G)
2156 This sets the full path to the smbrun binary. This defaults to the
2157 value in the Makefile.
2158
2159 You must get this path right for many services to work correctly.
2160
2161 .B Default: taken from Makefile
2162
2163 .B Example:
2164         smbrun = /usr/local/samba/bin/smbrun
2165
2166 .SS short preserve case (S)
2167
2168 This controls if new short filenames are created with the case that
2169 the client passes, or if they are forced to be the "default" case.
2170
2171 .B Default:
2172        short preserve case = no
2173
2174 See the section on "NAME MANGLING" for a fuller discussion.
2175
2176 .SS root preexec (S)
2177
2178 This is the same as preexec except that the command is run as
2179 root. This is useful for mounting filesystems (such as cdroms) before
2180 a connection is finalised.
2181
2182 .SS root postexec (S)
2183
2184 This is the same as postexec except that the command is run as
2185 root. This is useful for unmounting filesystems (such as cdroms) after
2186 a connection is closed.
2187
2188 .SS set directory (S)
2189 If 'set directory = no', then users of the service may not use the setdir
2190 command to change directory.
2191
2192 The setdir comand is only implemented in the Digital Pathworks client. See the
2193 Pathworks documentation for details.
2194 .B Default:
2195         set directory = no
2196
2197 .B Example:
2198         set directory = yes
2199
2200 .SS share modes (S)
2201
2202 This enables or disables the honouring of the "share modes" during a
2203 file open. These modes are used by clients to gain exclusive read or
2204 write access to a file. 
2205
2206 These open modes are not directly supported by unix, so they are
2207 simulated using lock files in the "lock directory". The "lock
2208 directory" specified in smb.conf must be readable by all users.
2209
2210 The share modes that are enabled by this option are DENY_DOS,
2211 DENY_ALL, DENY_READ, DENY_WRITE, DENY_NONE and DENY_FCB.
2212
2213 Enabling this option gives full share compatability but may cost a bit
2214 of processing time on the unix server. They are enabled by default.
2215
2216 .B Default:
2217         share modes = yes
2218
2219 .B Example:
2220         share modes = no
2221
2222 .SS socket options (G)
2223 This option (which can also be invoked with the -O command line
2224 option) allows you to set socket options to be used when talking with
2225 the client.
2226
2227 Socket options are controls on the networking layer of the operating
2228 systems which allow the connection to be tuned.
2229
2230 This option will typically be used to tune your Samba server for
2231 optimal performance for your local network. There is no way that Samba
2232 can know what the optimal parameters are for your net, so you must
2233 experiment and choose them yourself. I strongly suggest you read the
2234 appropriate documentation for your operating system first (perhaps
2235 "man setsockopt" will help).
2236
2237 You may find that on some systems Samba will say "Unknown socket
2238 option" when you supply an option. This means you either mis-typed it
2239 or you need to add an include file to includes.h for your OS. If the
2240 latter is the case please send the patch to me
2241 (samba-bugs@anu.edu.au).
2242
2243 Any of the supported socket options may be combined in any way you
2244 like, as long as your OS allows it.
2245
2246 This is the list of socket options currently settable using this
2247 option:
2248
2249   SO_KEEPALIVE
2250
2251   SO_REUSEADDR
2252
2253   SO_BROADCAST
2254
2255   TCP_NODELAY
2256
2257   IPTOS_LOWDELAY
2258
2259   IPTOS_THROUGHPUT
2260
2261   SO_SNDBUF *
2262
2263   SO_RCVBUF *
2264
2265   SO_SNDLOWAT *
2266
2267   SO_RCVLOWAT *
2268
2269 Those marked with a * take an integer argument. The others can
2270 optionally take a 1 or 0 argument to enable or disable the option, by
2271 default they will be enabled if you don't specify 1 or 0.
2272
2273 To specify an argument use the syntax SOME_OPTION=VALUE for example
2274 SO_SNDBUF=8192. Note that you must not have any spaces before or after
2275 the = sign.
2276
2277 If you are on a local network then a sensible option might be
2278
2279 socket options = IPTOS_LOWDELAY
2280
2281 If you have an almost unloaded local network and you don't mind a lot
2282 of extra CPU usage in the server then you could try
2283
2284 socket options = IPTOS_LOWDELAY TCP_NODELAY
2285
2286 If you are on a wide area network then perhaps try setting
2287 IPTOS_THROUGHPUT. 
2288
2289 Note that several of the options may cause your Samba server to fail
2290 completely. Use these options with caution!
2291
2292 .B Default:
2293         no socket options
2294
2295 .B Example:
2296         socket options = IPTOS_LOWDELAY 
2297
2298
2299
2300
2301 .SS status (G)
2302 This enables or disables logging of connections to a status file that
2303 smbstatus can read.
2304
2305 With this disabled smbstatus won't be able to tell you what
2306 connections are active.
2307
2308 .B Default:
2309         status = yes
2310
2311 .B Example:
2312         status = no
2313
2314 .SS strip dot (G)
2315 This is a boolean that controls whether to strup trailing dots off
2316 filenames. This helps with some CDROMs that have filenames ending in a
2317 single dot.
2318
2319 NOTE: This option is now obsolete, and may be removed in future. You
2320 should use the "mangled map" option instead as it is much more
2321 general. 
2322
2323 .SS strict locking (S)
2324 This is a boolean that controls the handling of file locking in the
2325 server. When this is set to yes the server will check every read and
2326 write access for file locks, and deny access if locks exist. This can
2327 be slow on some systems.
2328
2329 When strict locking is "no" the server does file lock checks only when
2330 the client explicitly asks for them. 
2331
2332 Well behaved clients always ask for lock checks when it is important,
2333 so in the vast majority of cases "strict locking = no" is preferable.
2334
2335 .B Default:
2336         strict locking = no
2337
2338 .B Example:
2339         strict locking = yes
2340
2341 .SS sync always (S)
2342
2343 This is a boolean parameter that controls whether writes will always
2344 be written to stable storage before the write call returns. If this is
2345 false then the server will be guided by the clients request in each
2346 write call (clients can set a bit indicating that a particular write
2347 should be synchronous). If this is true then every write will be
2348 followed by a fsync() call to ensure the data is written to disk.
2349
2350 .B Default:
2351         sync always = no
2352
2353 .B Example:
2354         sync always = yes
2355
2356 .SS time offset (G)
2357 This parameter is a setting in minutes to add to the normal GMT to
2358 local time conversion. This is useful if you are serving a lot of PCs
2359 that have incorrect daylight saving time handling.
2360
2361 .B Default:
2362         time offset = 0
2363
2364 .B Example:
2365         time offset = 60
2366
2367 .SS user (S)
2368 See
2369 .B username.
2370 .SS username (S)
2371 A synonym for this parameter is 'user'.
2372
2373 Multiple users may be specified in a comma-delimited list, in which case the
2374 supplied password will be tested against each username in turn (left to right).
2375
2376 The username= line is needed only when the PC is unable to supply it's own
2377 username. This is the case for the coreplus protocol or where your
2378 users have different WfWg usernames to unix usernames. In both these
2379 cases you may also be better using the \\\\server\\share%user syntax
2380 instead. 
2381
2382 The username= line is not a great solution in many cases as it means Samba
2383 will try to validate the supplied password against each of the
2384 usernames in the username= line in turn. This is slow and a bad idea for
2385 lots of users in case of duplicate passwords. You may get timeouts or
2386 security breaches using this parameter unwisely.
2387
2388 Samba relies on the underlying unix security. This parameter does not
2389 restrict who can login, it just offers hints to the Samba server as to
2390 what usernames might correspond to the supplied password. Users can
2391 login as whoever they please and they will be able to do no more
2392 damage than if they started a telnet session. The daemon runs as the
2393 user that they log in as, so they cannot do anything that user cannot
2394 do.
2395
2396 To restrict a service to a particular set of users you can use the
2397 "valid users=" line.
2398
2399 If any of the usernames begin with a @ then the name will be looked up
2400 in the groups file and will expand to a list of all users in the group
2401 of that name. Note that searching though a groups file can take quite
2402 some time, and some clients may time out during the search.
2403
2404 See the section below on username/password validation for more information
2405 on how this parameter determines access to the services.
2406
2407 .B Default:
2408         The guest account if a guest service, else the name of the service.
2409
2410 .B Examples:
2411         username = fred
2412         username = fred, mary, jack, jane, @users, @pcgroup
2413
2414 .SS username map (G)
2415
2416 This option allows you to to specify a file containing a mapping of
2417 usernames from the clients to the server. This can be used for several
2418 purposes. The most common is to map usernames that users use on dos or
2419 windows machines to those that the unix box uses. The other is to map
2420 multiple users to a single username so that they can more easily share
2421 files.
2422
2423 The map file is parsed line by line. Each line should contain a single
2424 unix username on the left then a '=' followed by a list of usernames
2425 on the right. The list of usernames on the right may contain names of
2426 the form @group in which case they will match any unix username in
2427 that group. The special client name '*' is a wildcard and matches any
2428 name.
2429
2430 The file is processed on each line by taking the supplied username and
2431 comparing it with each username on the right hand side of the '='
2432 signs. If the supplied name matrches any of the names on the right
2433 hand side then it is replaced with the name on the left. Processing
2434 then continues with the next line.
2435
2436 If any line begins with a '#' or a ';' then it is ignored
2437
2438 For example to map from he name "admin" or "administrator" to the unix
2439 name "root" you would use
2440
2441         root = admin administrator
2442
2443 Or to map anyone in the unix group "system" to the unix name "sys" you
2444 would use
2445
2446         sys = @system
2447
2448 You can have as many mappings as you like in a username map file.
2449
2450 Note that the remapping is applied to all occurances of
2451 usernames. Thus if you connect to "\\\\server\\fred" and "fred" is
2452 remapped to "mary" then you will actually be connecting to
2453 "\\\\server\\mary" and will need to supply a password suitable for
2454 "mary" not "fred". The only exception to this is the username passwed
2455 to the "password server" (if you have one). The password server will
2456 receive whatever username the client supplies without modification.
2457
2458 Also note that no reverse mapping is done. The main effect this has is
2459 with printing. Users who have been mapped may have trouble deleting
2460 print jobs as PrintManager under WfWg will think they don't own the
2461 print job.
2462
2463 .B Default
2464         no username map
2465
2466 .B Example
2467         username map = /usr/local/samba/lib/users.map
2468
2469 .SS valid chars (S)
2470
2471 The option allows you to specify additional characters that should be
2472 considered valid by the server in filenames. This is particularly
2473 useful for national character sets, such as adding u-umlaut or a-ring.
2474
2475 The option takes a list of characters in either integer or character
2476 form with spaces between them. If you give two characters with a colon
2477 between them then it will be taken as an lowercase:uppercase pair.
2478
2479 If you have an editor capable of entering the characters into the
2480 config file then it is probably easiest to use this method. Otherwise
2481 you can specify the characters in octal, decimal or hexidecimal form
2482 using the usual C notation.
2483
2484 For example to add the single character 'Z' to the charset (which is a
2485 pointless thing to do as it's already there) you could do one of the
2486 following
2487
2488 valid chars = Z
2489 valid chars = z:Z
2490 valid chars = 0132:0172
2491
2492 The last two examples above actually add two characters, and alters
2493 the uppercase and lowercase mappings appropriately.
2494
2495 .B Default
2496         Samba defaults to using a reasonable set of valid characters
2497         for english systems
2498
2499 .B Example
2500         valid chars = 0345:0305 0366:0326 0344:0304
2501
2502 The above example allows filenames to have the swedish characters in
2503 them. 
2504
2505 .SS valid users (S)
2506 This is a list of users that should be allowed to login to this
2507 service. A name starting with @ is interpreted as a unix group.
2508
2509 If this is empty (the default) then any user can login. If a username
2510 is in both this list and the "invalid users" list then access is
2511 denied for that user.
2512
2513 The current servicename is substituted for %S. This is useful in the
2514 [homes] section.
2515
2516 See also "invalid users"
2517
2518 .B Default
2519         No valid users list. (anyone can login)
2520
2521 .B Example
2522         valid users = greg, @pcusers
2523
2524 .SS volume (S)
2525 This allows you to override the volume label returned for a
2526 share. Useful for CDROMs whos installation programs insist on a
2527 particular volume label.
2528
2529 The default is the name of the share
2530
2531 .SS wide links (S)
2532 This parameter controls whether or not links in the Unix file system may be
2533 followed by the server. Links that point to areas within the directory tree
2534 exported by the server are always allowed; this parameter controls access 
2535 only to areas that are outside the directory tree being exported.
2536
2537 .B Default:
2538         wide links = yes
2539
2540 .B Example:
2541         wide links = no
2542
2543 .SS wins proxy (G)
2544
2545 This is a boolean that controls if nmbd will respond to broadcast name
2546 queries on behalf of other hosts. You may need to set this to no for
2547 some older clients.
2548
2549 .B Default:
2550         wins proxy = no
2551 .SS wins support (G)
2552
2553 This boolean controls if Samba will act as a WINS server. You should
2554 normally set this to true unless you already have another WINS server
2555 on the network.
2556
2557 .B Default:
2558         wins support = yes
2559 .SS wins server (G)
2560
2561 This specifies the DNS name of the WINS server that Samba should
2562 register with. If you have a WINS server on your network then you
2563 should set this to the WINS servers name.
2564
2565 This option only takes effect if Samba is not acting as a WINS server
2566 itself. 
2567
2568 .B Default:
2569         wins server = 
2570 .SS workgroup (G)
2571
2572 This controls what workgroup your server will appear to be in when
2573 queried by clients. This can be different to the workgroup specified
2574 in the nmbd configuration, but it is probably best if you set them to
2575 the same value.
2576
2577 .B Default:
2578         set in the Makefile
2579
2580 .B Example:
2581         workgroup = MYGROUP
2582
2583 .SS write ok (S)
2584 See
2585 .B writable
2586 and
2587 .B read only.
2588 .SS writable (S)
2589 A synonym for this parameter is 'write ok'. An inverted synonym is 'read only'.
2590
2591 If this parameter is 'no', then users of a service may not create or modify
2592 files in the service's directory.
2593
2594 Note that a printable service ('printable = yes') will ALWAYS allow 
2595 writing to the directory (user privileges permitting), but only via
2596 spooling operations.
2597
2598 .B Default:
2599         writable = no
2600
2601 .B Examples:
2602         read only = no
2603         writable = yes
2604         write ok = yes
2605 .SS write list (S)
2606 This is a list of users that are given read-write access to a
2607 service. If the connecting user is in this list then they will be
2608 given write access, no matter what the "read only" option is set
2609 to. The list can include group names using the @group syntax.
2610
2611 Note that if a user is in both the read list and the write list then
2612 they will be given write access.
2613
2614 See also the "read list" option
2615
2616 .B Default:
2617      write list =
2618
2619 .B Example:
2620      write list = admin, root, @staff
2621
2622 .SS write raw (G)
2623 This parameter controls whether or not the server will support raw writes when
2624 transferring data from clients.
2625
2626 .B Default:
2627         write raw = yes
2628
2629 .B Example:
2630         write raw = no
2631 .SH NOTE ABOUT USERNAME/PASSWORD VALIDATION
2632 There are a number of ways in which a user can connect to a
2633 service. The server follows the following steps in determining if it
2634 will allow a connection to a specified service. If all the steps fail
2635 then the connection request is rejected. If one of the steps pass then
2636 the following steps are not checked.
2637
2638 If the service is marked "guest only = yes" then steps 1 to 5 are skipped
2639
2640 Step 1: If the client has passed a username/password pair and that
2641 username/password pair is validated by the unix systems password
2642 programs then the connection is made as that username. Note that this
2643 includes the \\\\server\\service%username method of passing a username.
2644
2645 Step 2: If the client has previously registered a username with the
2646 system and now supplies a correct password for that username then the
2647 connection is allowed.
2648
2649 Step 3: The clients netbios name and any previously used user names
2650 are checked against the supplied password, if they match then the
2651 connection is allowed as the corresponding user.
2652
2653 Step 4: If the client has previously validated a username/password
2654 pair with the server and the client has passed the validation token
2655 then that username is used. This step is skipped if "revalidate = yes" 
2656 for this service.
2657
2658 Step 5: If a "user = " field is given in the smb.conf file for the
2659 service and the client has supplied a password, and that password
2660 matches (according to the unix systems password checking) with one of
2661 the usernames from the user= field then the connection is made as the
2662 username in the "user=" line. If one of the username in the user= list
2663 begins with a @ then that name expands to a list of names in the group
2664 of the same name.
2665
2666 Step 6: If the service is a guest service then a connection is made as
2667 the username given in the "guest account =" for the service,
2668 irrespective of the supplied password.
2669
2670
2671 .SH WARNINGS
2672 Although the configuration file permits service names to contain spaces, 
2673 your client software may not. Spaces will be ignored in comparisons anyway,
2674 so it shouldn't be a problem - but be aware of the possibility.
2675
2676 On a similar note, many clients - especially DOS clients - limit service
2677 names to eight characters. Smbd has no such limitation, but attempts
2678 to connect from such clients will fail if they truncate the service names.
2679 For this reason you should probably keep your service names down to eight 
2680 characters in length.
2681
2682 Use of the [homes] and [printers] special sections make life for an 
2683 administrator easy, but the various combinations of default attributes can be
2684 tricky. Take extreme care when designing these sections. In particular,
2685 ensure that the permissions on spool directories are correct.
2686 .SH VERSION
2687 This man page is (mostly) correct for version 1.9.00 of the Samba suite, plus some
2688 of the recent patches to it. These notes will necessarily lag behind 
2689 development of the software, so it is possible that your version of 
2690 the server has extensions or parameter semantics that differ from or are not 
2691 covered by this man page. Please notify these to the address below for 
2692 rectification.
2693
2694 Prior to version 1.5.21 of the Samba suite, the configuration file was
2695 radically different (more primitive). If you are using a version earlier than
2696 1.8.05, it is STRONGLY recommended that you upgrade.
2697 .SH OPTIONS
2698 Not applicable.
2699
2700 .SH FILES
2701 Not applicable.
2702
2703 .SH ENVIRONMENT VARIABLES
2704 Not applicable.
2705
2706 .SH SEE ALSO
2707 .B smbd(8),
2708 .B smbclient(1),
2709 .B nmbd(8),
2710 .B testparm(1), 
2711 .B testprns(1),
2712 .B lpq(1),
2713 .B hosts_access(5)
2714 .SH DIAGNOSTICS
2715 [This section under construction]
2716
2717 Most diagnostics issued by the server are logged in a specified log file. The
2718 log file name is specified at compile time, but may be overridden on the
2719 smbd (see smbd(8)) command line.
2720
2721 The number and nature of diagnostics available depends on the debug level used
2722 by the server. If you have problems, set the debug level to 3 and peruse the
2723 log files.
2724
2725 Most messages are reasonably self-explanatory. Unfortunately, at time of
2726 creation of this man page the source code is still too fluid to warrant
2727 describing each and every diagnostic. At this stage your best bet is still
2728 to grep the source code and inspect the conditions that gave rise to the 
2729 diagnostics you are seeing.
2730
2731 .SH BUGS
2732 None known.
2733
2734 Please send bug reports, comments and so on to:
2735
2736 .RS 3
2737 .B samba-bugs@anu.edu.au (Andrew Tridgell)
2738
2739 .RS 3
2740 or to the mailing list
2741 .RE
2742
2743 .B samba@listproc.anu.edu.au
2744
2745 .RE
2746 You may also like to subscribe to the announcement channel
2747
2748 .RS 3
2749 samba-announce@listproc.anu.edu.au
2750 .RE
2751
2752 To subscribe to these lists send a message to
2753 listproc@listproc.anu.edu.au with a body of "subscribe samba Your
2754 Name" or "subscribe samba-announce Your Name".
2755
2756 Errors or suggestions for improvements to the Samba man pages should be 
2757 mailed to:
2758
2759 .RS 3
2760 .B samba-bugs@anu.edu.au (Andrew Tridgell)
2761 .RE
2762