From dbd241f3421731692cbeae96db9d3bd11bc4f602 Mon Sep 17 00:00:00 2001 From: Jelmer Vernooij Date: Thu, 1 May 2003 14:00:10 +0000 Subject: [PATCH] Merge over Alexanders' conversion to Docbook XML (This used to be commit b0e3fa7a3657a82a208fdee6cb587705db2b5ac4) --- docs/docbook/devdoc/CodingSuggestions.sgml | 237 - docs/docbook/devdoc/NetBIOS.sgml | 154 - docs/docbook/devdoc/Tracing.sgml | 129 - docs/docbook/devdoc/architecture.sgml | 184 - docs/docbook/devdoc/cifsntdomain.sgml | 2932 ------- docs/docbook/devdoc/debug.sgml | 321 - docs/docbook/devdoc/dev-doc.sgml | 70 - docs/docbook/devdoc/encryption.sgml | 196 - docs/docbook/devdoc/internals.sgml | 440 - docs/docbook/devdoc/parsing.sgml | 239 - docs/docbook/devdoc/printing.sgml | 393 - docs/docbook/devdoc/sam.sgml | 357 - docs/docbook/devdoc/unix-smb.sgml | 316 - docs/docbook/devdoc/wins.sgml | 79 - docs/docbook/manpages/findsmb.1.sgml | 142 - docs/docbook/manpages/lmhosts.5.sgml | 114 - docs/docbook/manpages/net.8.sgml | 348 - docs/docbook/manpages/nmbd.8.sgml | 381 - docs/docbook/manpages/nmblookup.1.sgml | 262 - docs/docbook/manpages/pdbedit.8.sgml | 366 - docs/docbook/manpages/rpcclient.1.sgml | 428 - docs/docbook/manpages/samba.7.sgml | 216 - docs/docbook/manpages/smb.conf.5.sgml | 8642 -------------------- docs/docbook/manpages/smbcacls.1.sgml | 255 - docs/docbook/manpages/smbclient.1.sgml | 1088 --- docs/docbook/manpages/smbcontrol.1.sgml | 215 - docs/docbook/manpages/smbd.8.sgml | 427 - docs/docbook/manpages/smbmnt.8.sgml | 113 - docs/docbook/manpages/smbmount.8.sgml | 327 - docs/docbook/manpages/smbpasswd.5.sgml | 204 - docs/docbook/manpages/smbpasswd.8.sgml | 401 - docs/docbook/manpages/smbsh.1.sgml | 235 - docs/docbook/manpages/smbspool.8.sgml | 131 - docs/docbook/manpages/smbstatus.1.sgml | 152 - docs/docbook/manpages/smbtar.1.sgml | 226 - docs/docbook/manpages/smbumount.8.sgml | 73 - docs/docbook/manpages/swat.8.sgml | 209 - docs/docbook/manpages/tdbbackup.8.sgml | 133 - docs/docbook/manpages/testparm.1.sgml | 183 - docs/docbook/manpages/testprns.1.sgml | 143 - docs/docbook/manpages/vfstest.1.sgml | 150 - docs/docbook/manpages/wbinfo.1.sgml | 238 - docs/docbook/manpages/winbindd.8.sgml | 455 -- 43 files changed, 22304 deletions(-) delete mode 100644 docs/docbook/devdoc/CodingSuggestions.sgml delete mode 100644 docs/docbook/devdoc/NetBIOS.sgml delete mode 100644 docs/docbook/devdoc/Tracing.sgml delete mode 100644 docs/docbook/devdoc/architecture.sgml delete mode 100644 docs/docbook/devdoc/cifsntdomain.sgml delete mode 100644 docs/docbook/devdoc/debug.sgml delete mode 100644 docs/docbook/devdoc/dev-doc.sgml delete mode 100644 docs/docbook/devdoc/encryption.sgml delete mode 100644 docs/docbook/devdoc/internals.sgml delete mode 100644 docs/docbook/devdoc/parsing.sgml delete mode 100644 docs/docbook/devdoc/printing.sgml delete mode 100644 docs/docbook/devdoc/sam.sgml delete mode 100644 docs/docbook/devdoc/unix-smb.sgml delete mode 100644 docs/docbook/devdoc/wins.sgml delete mode 100644 docs/docbook/manpages/findsmb.1.sgml delete mode 100644 docs/docbook/manpages/lmhosts.5.sgml delete mode 100644 docs/docbook/manpages/net.8.sgml delete mode 100644 docs/docbook/manpages/nmbd.8.sgml delete mode 100644 docs/docbook/manpages/nmblookup.1.sgml delete mode 100644 docs/docbook/manpages/pdbedit.8.sgml delete mode 100644 docs/docbook/manpages/rpcclient.1.sgml delete mode 100644 docs/docbook/manpages/samba.7.sgml delete mode 100644 docs/docbook/manpages/smb.conf.5.sgml delete mode 100644 docs/docbook/manpages/smbcacls.1.sgml delete mode 100644 docs/docbook/manpages/smbclient.1.sgml delete mode 100644 docs/docbook/manpages/smbcontrol.1.sgml delete mode 100644 docs/docbook/manpages/smbd.8.sgml delete mode 100644 docs/docbook/manpages/smbmnt.8.sgml delete mode 100644 docs/docbook/manpages/smbmount.8.sgml delete mode 100644 docs/docbook/manpages/smbpasswd.5.sgml delete mode 100644 docs/docbook/manpages/smbpasswd.8.sgml delete mode 100644 docs/docbook/manpages/smbsh.1.sgml delete mode 100644 docs/docbook/manpages/smbspool.8.sgml delete mode 100644 docs/docbook/manpages/smbstatus.1.sgml delete mode 100644 docs/docbook/manpages/smbtar.1.sgml delete mode 100644 docs/docbook/manpages/smbumount.8.sgml delete mode 100644 docs/docbook/manpages/swat.8.sgml delete mode 100644 docs/docbook/manpages/tdbbackup.8.sgml delete mode 100644 docs/docbook/manpages/testparm.1.sgml delete mode 100644 docs/docbook/manpages/testprns.1.sgml delete mode 100644 docs/docbook/manpages/vfstest.1.sgml delete mode 100644 docs/docbook/manpages/wbinfo.1.sgml delete mode 100644 docs/docbook/manpages/winbindd.8.sgml diff --git a/docs/docbook/devdoc/CodingSuggestions.sgml b/docs/docbook/devdoc/CodingSuggestions.sgml deleted file mode 100644 index bdf6d3d17d3..00000000000 --- a/docs/docbook/devdoc/CodingSuggestions.sgml +++ /dev/null @@ -1,237 +0,0 @@ - - - - SteveFrench - - - SimoSorce - - - AndrewBartlett - - - TimPotter - - - MartinPool - - - -Coding Suggestions - - -So you want to add code to Samba ... - - - -One of the daunting tasks facing a programmer attempting to write code for -Samba is understanding the various coding conventions used by those most -active in the project. These conventions were mostly unwritten and helped -improve either the portability, stability or consistency of the code. This -document will attempt to document a few of the more important coding -practices used at this time on the Samba project. The coding practices are -expected to change slightly over time, and even to grow as more is learned -about obscure portability considerations. Two existing documents -samba/source/internals.doc and -samba/source/architecture.doc provide -additional information. - - - -The loosely related question of coding style is very personal and this -document does not attempt to address that subject, except to say that I -have observed that eight character tabs seem to be preferred in Samba -source. If you are interested in the topic of coding style, two oft-quoted -documents are: - - - -http://lxr.linux.no/source/Documentation/CodingStyle - - - -http://www.fsf.org/prep/standards_toc.html - - - -But note that coding style in Samba varies due to the many different -programmers who have contributed. - - - -Following are some considerations you should use when adding new code to -Samba. First and foremost remember that: - - - -Portability is a primary consideration in adding function, as is network -compatability with de facto, existing, real world CIFS/SMB implementations. -There are lots of platforms that Samba builds on so use caution when adding -a call to a library function that is not invoked in existing Samba code. -Also note that there are many quite different SMB/CIFS clients that Samba -tries to support, not all of which follow the SNIA CIFS Technical Reference -(or the earlier Microsoft reference documents or the X/Open book on the SMB -Standard) perfectly. - - - -Here are some other suggestions: - - - - - - use d_printf instead of printf for display text - reason: enable auto-substitution of translated language text - - - - use SAFE_FREE instead of free - reason: reduce traps due to null pointers - - - - don't use bzero use memset, or ZERO_STRUCT and ZERO_STRUCTP macros - reason: not POSIX - - - - don't use strcpy and strlen (use safe_* equivalents) - reason: to avoid traps due to buffer overruns - - - - don't use getopt_long, use popt functions instead - reason: portability - - - - explicitly add const qualifiers on parm passing in functions where parm - is input only (somewhat controversial but const can be #defined away) - - - - when passing a va_list as an arg, or assigning one to another - please use the VA_COPY() macro - reason: on some platforms, va_list is a struct that must be - initialized in each function...can SEGV if you don't. - - - - discourage use of threads - reason: portability (also see architecture.doc) - - - - don't explicitly include new header files in C files - new h files - should be included by adding them once to includes.h - reason: consistency - - - - don't explicitly extern functions (they are autogenerated by - "make proto" into proto.h) - reason: consistency - - - - use endian safe macros when unpacking SMBs (see byteorder.h and - internals.doc) - reason: not everyone uses Intel - - - - Note Unicode implications of charset handling (see internals.doc). See - pull_* and push_* and convert_string functions. - reason: Internationalization - - - - Don't assume English only - reason: See above - - - - Try to avoid using in/out parameters (functions that return data which - overwrites input parameters) - reason: Can cause stability problems - - - - Ensure copyright notices are correct, don't append Tridge's name to code - that he didn't write. If you did not write the code, make sure that it - can coexist with the rest of the Samba GPLed code. - - - - Consider usage of DATA_BLOBs for length specified byte-data. - reason: stability - - - - Take advantage of tdbs for database like function - reason: consistency - - - - Don't access the SAM_ACCOUNT structure directly, they should be accessed - via pdb_get...() and pdb_set...() functions. - reason: stability, consistency - - - - Don't check a password directly against the passdb, always use the - check_password() interface. - reason: long term pluggability - - - - Try to use asprintf rather than pstrings and fstrings where possible - - - - Use normal C comments / * instead of C++ comments // like - this. Although the C++ comment format is part of the C99 - standard, some older vendor C compilers do not accept it. - - - - Try to write documentation for API functions and structures - explaining the point of the code, the way it should be used, and - any special conditions or results. Mark these with a double-star - comment start / ** so that they can be picked up by Doxygen, as in - this file. - - - - Keep the scope narrow. This means making functions/variables - static whenever possible. We don't want our namespace - polluted. Each module should have a minimal number of externally - visible functions or variables. - - - - Use function pointers to keep knowledge about particular pieces of - code isolated in one place. We don't want a particular piece of - functionality to be spread out across lots of places - that makes - for fragile, hand to maintain code. Instead, design an interface - and use tables containing function pointers to implement specific - functionality. This is particularly important for command - interpreters. - - - - Think carefully about what it will be like for someone else to add - to and maintain your code. If it would be hard for someone else to - maintain then do it another way. - - - - - -The suggestions above are simply that, suggestions, but the information may -help in reducing the routine rework done on new code. The preceeding list -is expected to change routinely as new support routines and macros are -added. - - diff --git a/docs/docbook/devdoc/NetBIOS.sgml b/docs/docbook/devdoc/NetBIOS.sgml deleted file mode 100644 index 6b4eb34b769..00000000000 --- a/docs/docbook/devdoc/NetBIOS.sgml +++ /dev/null @@ -1,154 +0,0 @@ - - - - LukeLeighton - - 12 June 1997 - - -Definition of NetBIOS Protocol and Name Resolution Modes - - -NETBIOS - - -NetBIOS runs over the following tranports: TCP/IP; NetBEUI and IPX/SPX. -Samba only uses NetBIOS over TCP/IP. For details on the TCP/IP NetBIOS -Session Service NetBIOS Datagram Service, and NetBIOS Names, see -rfc1001.txt and rfc1002.txt. - - - -NetBEUI is a raw NetBIOS frame protocol implementation that allows NetBIOS -datagrams to be sent out over the 'wire' embedded within LLC frames. -NetBEUI is not required when using NetBIOS over TCP/IP protocols and it -is preferable NOT to install NetBEUI if it can be avoided. - - - -IPX/SPX is also not required when using NetBIOS over TCP/IP, and it is -preferable NOT to install the IPX/SPX transport unless you are using Novell -servers. At the very least, it is recommended that you do not install -'NetBIOS over IPX/SPX'. - - - -[When installing Windows 95, you will find that NetBEUI and IPX/SPX are -installed as the default protocols. This is because they are the simplest -to manage: no Windows 95 user-configuration is required]. - - - -NetBIOS applications (such as samba) offer their services (for example, -SMB file and print sharing) on a NetBIOS name. They must claim this name -on the network before doing so. The NetBIOS session service will then -accept connections on the application's behalf (on the NetBIOS name -claimed by the application). A NetBIOS session between the application -and the client can then commence. - - - -NetBIOS names consist of 15 characters plus a 'type' character. This is -similar, in concept, to an IP address and a TCP port number, respectively. -A NetBIOS-aware application on a host will offer different services under -different NetBIOS name types, just as a host will offer different TCP/IP -services on different port numbers. - - - -NetBIOS names must be claimed on a network, and must be defended. The use -of NetBIOS names is most suitable on a single subnet; a Local Area Network -or a Wide Area Network. - - - -NetBIOS names are either UNIQUE or GROUP. Only one application can claim a -UNIQUE NetBIOS name on a network. - - - -There are two kinds of NetBIOS Name resolution: Broadcast and Point-to-Point. - - - - - -BROADCAST NetBIOS - - -Clients can claim names, and therefore offer services on successfully claimed -names, on their broadcast-isolated subnet. One way to get NetBIOS services -(such as browsing: see ftp.microsoft.com/drg/developr/CIFS/browdiff.txt; and -SMB file/print sharing: see cifs4.txt) working on a LAN or WAN is to make -your routers forward all broadcast packets from TCP/IP ports 137, 138 and 139. - - - -This, however, is not recommended. If you have a large LAN or WAN, you will -find that some of your hosts spend 95 percent of their time dealing with -broadcast traffic. [If you have IPX/SPX on your LAN or WAN, you will find -that this is already happening: a packet analyzer will show, roughly -every twelve minutes, great swathes of broadcast traffic!]. - - - - - -NBNS NetBIOS - - -rfc1001.txt describes, amongst other things, the implementation and use -of, a 'NetBIOS Name Service'. NT/AS offers 'Windows Internet Name Service' -which is fully rfc1001/2 compliant, but has had to take specific action -with certain NetBIOS names in order to make it useful. (for example, it -deals with the registration of <1c> <1d> <1e> names all in different ways. -I recommend the reading of the Microsoft WINS Server Help files for full -details). - - - -The use of a WINS server cuts down on broadcast network traffic for -NetBIOS name resolution. It has the effect of pulling all the broadcast -isolated subnets together into a single NetBIOS scope, across your LAN -or WAN, while avoiding the use of TCP/IP broadcast packets. - - - -When you have a WINS server on your LAN, WINS clients will be able to -contact the WINS server to resolve NetBIOS names. Note that only those -WINS clients that have registered with the same WINS server will be -visible. The WINS server _can_ have static NetBIOS entries added to its -database (usually for security reasons you might want to consider putting -your domain controllers or other important servers as static entries, -but you should not rely on this as your sole means of security), but for -the most part, NetBIOS names are registered dynamically. - - - -This provides some confusion for lots of people, and is worth mentioning -here: a Browse Server is NOT a WINS Server, even if these services are -implemented in the same application. A Browse Server _needs_ a WINS server -because a Browse Server is a WINS client, which is _not_ the same thing]. - - - -Clients can claim names, and therefore offer services on successfully claimed -names, on their broadcast-isolated subnet. One way to get NetBIOS services -(such as browsing: see ftp.microsoft.com/drg/developr/CIFS/browdiff.txt; and -SMB file/print sharing: see cifs6.txt) working on a LAN or WAN is to make -your routers forward all broadcast packets from TCP/IP ports 137, 138 and 139. -You will find, however, if you do this on a large LAN or a WAN, that your -network is completely swamped by NetBIOS and browsing packets, which is why -WINS was developed to minimise the necessity of broadcast traffic. - - - -WINS Clients therefore claim names from the WINS server. If the WINS -server allows them to register a name, the client's NetBIOS session service -can then offer services on this name. Other WINS clients will then -contact the WINS server to resolve a NetBIOS name. - - - - - diff --git a/docs/docbook/devdoc/Tracing.sgml b/docs/docbook/devdoc/Tracing.sgml deleted file mode 100644 index ccf1e1c3c84..00000000000 --- a/docs/docbook/devdoc/Tracing.sgml +++ /dev/null @@ -1,129 +0,0 @@ - - - - AndrewTridgell - - Samba Team - - - - -Tracing samba system calls - - -This file describes how to do a system call trace on Samba to work out -what its doing wrong. This is not for the faint of heart, but if you -are reading this then you are probably desperate. - - - -Actually its not as bad as the the above makes it sound, just don't -expect the output to be very pretty :-) - - - -Ok, down to business. One of the big advantages of unix systems is -that they nearly all come with a system trace utility that allows you -to monitor all system calls that a program is making. This is -extremely using for debugging and also helps when trying to work out -why something is slower than you expect. You can use system tracing -without any special compilation options. - - - -The system trace utility is called different things on different -systems. On Linux systems its called strace. Under SunOS 4 its called -trace. Under SVR4 style systems (including solaris) its called -truss. Under many BSD systems its called ktrace. - - - -The first thing you should do is read the man page for your native -system call tracer. In the discussion below I'll assume its called -strace as strace is the only portable system tracer (its available for -free for many unix types) and its also got some of the nicest -features. - - - -Next, try using strace on some simple commands. For example, strace -ls or strace echo hello. - - - -You'll notice that it produces a LOT of output. It is showing you the -arguments to every system call that the program makes and the -result. Very little happens in a program without a system call so you -get lots of output. You'll also find that it produces a lot of -"preamble" stuff showing the loading of shared libraries etc. Ignore -this (unless its going wrong!) - - - -For example, the only line that really matters in the strace echo -hello output is: - - - -write(1, "hello\n", 6) = 6 - - -all the rest is just setting up to run the program. - - -Ok, now you're familiar with strace. To use it on Samba you need to -strace the running smbd daemon. The way I tend ot use it is to first -login from my Windows PC to the Samba server, then use smbstatus to -find which process ID that client is attached to, then as root I do -strace -p PID to attach to that process. I normally redirect the -stderr output from this command to a file for later perusal. For -example, if I'm using a csh style shell: - - -strace -f -p 3872 >& strace.out - -or with a sh style shell: - -strace -f -p 3872 > strace.out 2>&1 - - -Note the "-f" option. This is only available on some systems, and -allows you to trace not just the current process, but any children it -forks. This is great for finding printing problems caused by the -"print command" being wrong. - - - -Once you are attached you then can do whatever it is on the client -that is causing problems and you will capture all the system calls -that smbd makes. - - - -So how do you interpret the results? Generally I search through the -output for strings that I know will appear when the problem -happens. For example, if I am having touble with permissions on a file -I would search for that files name in the strace output and look at -the surrounding lines. Another trick is to match up file descriptor -numbers and "follow" what happens to an open file until it is closed. - - - -Beyond this you will have to use your initiative. To give you an idea -of what you are looking for here is a piece of strace output that -shows that /dev/null is not world writeable, which -causes printing to fail with Samba: - - - -[pid 28268] open("/dev/null", O_RDWR) = -1 EACCES (Permission denied) -[pid 28268] open("/dev/null", O_WRONLY) = -1 EACCES (Permission denied) - - - -The process is trying to first open /dev/null read-write -then read-only. Both fail. This means /dev/null has -incorrect permissions. - - - diff --git a/docs/docbook/devdoc/architecture.sgml b/docs/docbook/devdoc/architecture.sgml deleted file mode 100644 index 312a63af97e..00000000000 --- a/docs/docbook/devdoc/architecture.sgml +++ /dev/null @@ -1,184 +0,0 @@ - - - - DanShearer - - November 1997 - - -Samba Architecture - - -Introduction - - -This document gives a general overview of how Samba works -internally. The Samba Team has tried to come up with a model which is -the best possible compromise between elegance, portability, security -and the constraints imposed by the very messy SMB and CIFS -protocol. - - - -It also tries to answer some of the frequently asked questions such as: - - - - - Is Samba secure when running on Unix? The xyz platform? - What about the root priveliges issue? - - -Pros and cons of multithreading in various parts of Samba - -Why not have a separate process for name resolution, WINS, and browsing? - - - - - - -Multithreading and Samba - - -People sometimes tout threads as a uniformly good thing. They are very -nice in their place but are quite inappropriate for smbd. nmbd is -another matter, and multi-threading it would be very nice. - - - -The short version is that smbd is not multithreaded, and alternative -servers that take this approach under Unix (such as Syntax, at the -time of writing) suffer tremendous performance penalties and are less -robust. nmbd is not threaded either, but this is because it is not -possible to do it while keeping code consistent and portable across 35 -or more platforms. (This drawback also applies to threading smbd.) - - - -The longer versions is that there are very good reasons for not making -smbd multi-threaded. Multi-threading would actually make Samba much -slower, less scalable, less portable and much less robust. The fact -that we use a separate process for each connection is one of Samba's -biggest advantages. - - - - - -Threading smbd - - -A few problems that would arise from a threaded smbd are: - - - - - It's not only to create threads instead of processes, but you - must care about all variables if they have to be thread specific - (currently they would be global). - - - - if one thread dies (eg. a seg fault) then all threads die. We can - immediately throw robustness out the window. - - - - many of the system calls we make are blocking. Non-blocking - equivalents of many calls are either not available or are awkward (and - slow) to use. So while we block in one thread all clients are - waiting. Imagine if one share is a slow NFS filesystem and the others - are fast, we will end up slowing all clients to the speed of NFS. - - - - you can't run as a different uid in different threads. This means - we would have to switch uid/gid on _every_ SMB packet. It would be - horrendously slow. - - - - the per process file descriptor limit would mean that we could only - support a limited number of clients. - - - - we couldn't use the system locking calls as the locking context of - fcntl() is a process, not a thread. - - - - - - - -Threading nmbd - - -This would be ideal, but gets sunk by portability requirements. - - - -Andrew tried to write a test threads library for nmbd that used only -ansi-C constructs (using setjmp and longjmp). Unfortunately some OSes -defeat this by restricting longjmp to calling addresses that are -shallower than the current address on the stack (apparently AIX does -this). This makes a truly portable threads library impossible. So to -support all our current platforms we would have to code nmbd both with -and without threads, and as the real aim of threads is to make the -code clearer we would not have gained anything. (it is a myth that -threads make things faster. threading is like recursion, it can make -things clear but the same thing can always be done faster by some -other method) - - - -Chris tried to spec out a general design that would abstract threading -vs separate processes (vs other methods?) and make them accessible -through some general API. This doesn't work because of the data -sharing requirements of the protocol (packets in the future depending -on packets now, etc.) At least, the code would work but would be very -clumsy, and besides the fork() type model would never work on Unix. (Is there an OS that it would work on, for nmbd?) - - - -A fork() is cheap, but not nearly cheap enough to do on every UDP -packet that arrives. Having a pool of processes is possible but is -nasty to program cleanly due to the enormous amount of shared data (in -complex structures) between the processes. We can't rely on each -platform having a shared memory system. - - - - - -nbmd Design - - -Originally Andrew used recursion to simulate a multi-threaded -environment, which use the stack enormously and made for really -confusing debugging sessions. Luke Leighton rewrote it to use a -queuing system that keeps state information on each packet. The -first version used a single structure which was used by all the -pending states. As the initialisation of this structure was -done by adding arguments, as the functionality developed, it got -pretty messy. So, it was replaced with a higher-order function -and a pointer to a user-defined memory block. This suddenly -made things much simpler: large numbers of functions could be -made static, and modularised. This is the same principle as used -in NT's kernel, and achieves the same effect as threads, but in -a single process. - - - -Then Jeremy rewrote nmbd. The packet data in nmbd isn't what's on the -wire. It's a nice format that is very amenable to processing but still -keeps the idea of a distinct packet. See "struct packet_struct" in -nameserv.h. It has all the detail but none of the on-the-wire -mess. This makes it ideal for using in disk or memory-based databases -for browsing and WINS support. - - - - diff --git a/docs/docbook/devdoc/cifsntdomain.sgml b/docs/docbook/devdoc/cifsntdomain.sgml deleted file mode 100644 index 7c3c22d1065..00000000000 --- a/docs/docbook/devdoc/cifsntdomain.sgml +++ /dev/null @@ -1,2932 +0,0 @@ - - - - LukeLeighton -
lkcl@switchboard.net
-
- - PaulAshton -
paul@argo.demon.co.uk
-
- - DuncanStansfield -
duncans@sco.com
-
- - 01 November 97(version 0.0.24) -
- -NT Domain RPC's - - -Introduction - - - -This document contains information to provide an NT workstation with login -services, without the need for an NT server. It is the sgml version of http://mailhost.cb1.com/~lkcl/cifsntdomain.txt, controlled by Luke. - - - -It should be possible to select a domain instead of a workgroup (in the NT -workstation's TCP/IP settings) and after the obligatory reboot, type in a -username, password, select a domain and successfully log in. I would -appreciate any feedback on your experiences with this process, and any -comments, corrections and additions to this document. - - - -The packets described here can be easily derived from (and are probably -better understood using) Netmon.exe. You will need to use the version -of Netmon that matches your system, in order to correctly decode the -NETLOGON, lsarpc and srvsvc Transact pipes. This document is derived from -NT Service Pack 1 and its corresponding version of Netmon. It is intended -that an annotated packet trace be produced, which will likely be more -instructive than this document. - - - -Also needed, to fully implement NT Domain Login Services, is the -document describing the cryptographic part of the NT authentication. -This document is available from comp.protocols.smb; from the ntsecurity.net -digest and from the samba digest, amongst other sources. - - - -A copy is available from: - - -http://ntbugtraq.rc.on.ca/SCRIPTS/WA.EXE?A2=ind9708;L=ntbugtraq;O=A;P=2935 - -http://mailhost.cb1.com/~lkcl/crypt.html - - -A c-code implementation, provided by Linus Nordberg -of this protocol is available from: - - -http://samba.org/cgi-bin/mfs/01/digest/1997/97aug/0391.html -http://mailhost.cb1.com/~lkcl/crypt.txt - - -Also used to provide debugging information is the Check Build version of -NT workstation, and enabling full debugging in NETLOGON. This is -achieved by setting the following REG_SZ registry key to 0x1ffffff: - - -HKLM\SYSTEM\CurrentControlSet\Services\Netlogon\Parameters - -Incorrect direct editing of the registry can cause your -machine to fail. Then again, so can incorrect implementation of this -protocol. See "Liability:" above. - - -Bear in mind that each packet over-the-wire will have its origin in an -API call. Therefore, there are likely to be structures, enumerations -and defines that are usefully documented elsewhere. - - - -This document is by no means complete or authoritative. Missing sections -include, but are not limited to: - - - - - -Mappings of RIDs to usernames (and vice-versa). - -What a User ID is and what a Group ID is. - -The exact meaning/definition of various magic constants or enumerations. - -The reply error code and use of that error code when a -workstation becomes a member of a domain (to be described later). -Failure to return this error code will make the workstation report -that it is already a member of the domain. - -the cryptographic side of the NetrServerPasswordSet command, -which would allow the workstation to change its password. This password is -used to generate the long-term session key. [It is possible to reject this -command, and keep the default workstation password]. - - - - -Sources - - -cket Traces from Netmonitor (Service Pack 1 and above) -ul Ashton and Luke Leighton's other "NT Domain" doc. -FS documentation - cifs6.txt -FS documentation - cifsrap2.txt - - - - - -Credits - - -Paul Ashton: loads of work with Net Monitor; understanding the NT authentication system; reference implementation of the NT domain support on which this document is originally based. -Duncan Stansfield: low-level analysis of MSRPC Pipes. -Linus Nordberg: producing c-code from Paul's crypto spec. -Windows Sourcer development team - - - - - - - -Notes and Structures - - -Notes - - - -In the SMB Transact pipes, some "Structures", described here, appear to be -4-byte aligned with the SMB header, at their start. Exactly which -"Structures" need aligning is not precisely known or documented. - - - -In the UDP NTLOGON Mailslots, some "Structures", described here, appear to be -2-byte aligned with the start of the mailslot, at their start. - - - -Domain SID is of the format S-revision-version-auth1-auth2...authN. -e.g S-1-5-123-456-789-123-456. the 5 could be a sub-revision. - - - -any undocumented buffer pointers must be non-zero if the string buffer it -refers to contains characters. exactly what value they should be is unknown. -0x0000 0002 seems to do the trick to indicate that the buffer exists. a -NULL buffer pointer indicates that the string buffer is of zero length. -If the buffer pointer is NULL, then it is suspected that the structure it -refers to is NOT put into (or taken out of) the SMB data stream. This is -empirically derived from, for example, the LSA SAM Logon response packet, -where if the buffer pointer is NULL, the user information is not inserted -into the data stream. Exactly what happens with an array of buffer pointers -is not known, although an educated guess can be made. - - - -an array of structures (a container) appears to have a count and a pointer. -if the count is zero, the pointer is also zero. no further data is put -into or taken out of the SMB data stream. if the count is non-zero, then -the pointer is also non-zero. immediately following the pointer is the -count again, followed by an array of container sub-structures. the count -appears a third time after the last sub-structure. - - - - - - -Enumerations - - -MSRPC Header type -command number in the msrpc packet header - - - - MSRPC_Request: - 0x00 - - - MSRPC_Response: - 0x02 - - - MSRPC_Bind: - 0x0B - - - MSRPC_BindAck: - 0x0C - - - - - -MSRPC Packet info - -The meaning of these flags is undocumented - - - - FirstFrag: - 0x01 - - - LastFrag: - 0x02 - - - NotaFrag: - 0x04 - - - RecRespond: - 0x08 - - - NoMultiplex: - 0x10 - - - NotForIdemp: - 0x20 - - - NotforBcast: - 0x40 - - - NoUuid: - 0x80 - - - - - - - - -Structures - -VOID * -sizeof VOID* is 32 bits. - - -char -sizeof char is 8 bits. - - -UTIME -UTIME is 32 bits, indicating time in seconds since 01jan1970. documented in cifs6.txt (section 3.5 page, page 30). - - -NTTIME -NTTIME is 64 bits. documented in cifs6.txt (section 3.5 page, page 30). - - - -DOM_SID (domain SID structure) - - - - - UINT32 - num of sub-authorities in domain SID - - - - UINT8 - SID revision number - - - UINT8 - num of sub-authorities in domain SID - - - UINT8[6] - 6 bytes for domain SID - Identifier Authority. - - - - UINT16[n_subauths] - domain SID sub-authorities - - - - -Note: the domain SID is documented elsewhere. - - - - - -STR (string) - -STR (string) is a char[] : a null-terminated string of ascii characters. - - - - -UNIHDR (unicode string header) - - - - - UINT16 - length of unicode string - - - - UINT16 - max length of unicode string - - - - UINT32 - 4 - undocumented. - - - - - - - -UNIHDR2 (unicode string header plus buffer pointer) - - - - - UNIHDR - unicode string header - - - - - VOID* - undocumented buffer pointer - - - - - - - -UNISTR (unicode string) - - - - - UINT16[] - null-terminated string of unicode characters. - - - - - - - -NAME (length-indicated unicode string) - - - - - UINT32 - length of unicode string - - - UINT16[] - null-terminated string of unicode characters. - - - - - - - -UNISTR2 (aligned unicode string) - - - - UINT8[] - padding to get unicode string 4-byte aligned with the start of the SMB header. - - - UINT32 - max length of unicode string - - - UINT32 - 0 - undocumented - - - UINT32 - length of unicode string - - - UINT16[] - string of uncode characters - - - - - - - -OBJ_ATTR (object attributes) - - - - UINT32 -0x18 - length (in bytes) including the length field. - - VOID* -0 - root directory (pointer) - - VOID* -0 - object name (pointer) - - UINT32 -0 - attributes (undocumented) - - VOID* -0 - security descriptior (pointer) - - UINT32 - 0 - security quality of service - - - - - - - -POL_HND (LSA policy handle) - - - - char[20] - policy handle - - - - - - -DOM_SID2 (domain SID structure, SIDS stored in unicode) - - - - UINT32 - 5 - SID type - - - UINT32 - 0 - undocumented - - - UNIHDR2 - domain SID unicode string header - - - UNISTR - domain SID unicode string - - - -Note: there is a conflict between the unicode string header and the unicode string itself as to which to use to indicate string length. this will need to be resolved. - -Note: the SID type indicates, for example, an alias; a well-known group etc. this is documented somewhere. - - - - -DOM_RID (domain RID structure) - - - - UINT32 -5 - well-known SID. 1 - user SID (see ShowACLs) - - UINT32 - 5 - undocumented - - - UINT32 - domain RID - - - UINT32 - 0 - domain index out of above reference domains - - - - - - -LOG_INFO (server, account, client structure) - -Note: logon server name starts with two '\' characters and is upper case. - -Note: account name is the logon client name from the LSA Request Challenge, with a $ on the end of it, in upper case. - - - - VOID* - undocumented buffer pointer - - - UNISTR2 - logon server unicode string - - - UNISTR2 - account name unicode string - - - UINT16 - sec_chan - security channel type - - - UNISTR2 - logon client machine unicode string - - - - - - -CLNT_SRV (server, client names structure) - -Note: logon server name starts with two '\' characters and is upper case. - - - - VOID* - undocumented buffer pointer - - - UNISTR2 - logon server unicode string - - - VOID* - undocumented buffer pointer - - - UNISTR2 - logon client machine unicode string - - - - - - -CREDS (credentials + time stamp) - - - - char[8] - credentials - - - UTIME - time stamp - - - - - - -CLNT_INFO2 (server, client structure, client credentials) - -Note: whenever this structure appears in a request, you must take a copy of the client-calculated credentials received, because they will beused in subsequent credential checks. the presumed intention is to - maintain an authenticated request/response trail. - - - - CLNT_SRV - client and server names - - - UINT8[] - ???? padding, for 4-byte alignment with SMB header. - - - VOID* - pointer to client credentials. - - - CREDS - client-calculated credentials + client time - - - - - - -CLNT_INFO (server, account, client structure, client credentials) -Note: whenever this structure appears in a request, you must take a copy of the client-calculated credentials received, because they will be used in subsequent credential checks. the presumed intention is to maintain an authenticated request/response trail. - - - - LOG_INFO - logon account info - - - CREDS - client-calculated credentials + client time - - - - - - -ID_INFO_1 (id info structure, auth level 1) - - - - VOID* - ptr_id_info_1 - - - UNIHDR - domain name unicode header - - - UINT32 - param control - - - UINT64 - logon ID - - - UNIHDR - user name unicode header - - - UNIHDR - workgroup name unicode header - - - char[16] - arc4 LM OWF Password - - - char[16] - arc4 NT OWF Password - - - UNISTR2 - domain name unicode string - - - UNISTR2 - user name unicode string - - - UNISTR2 - workstation name unicode string - - - - - - -SAM_INFO (sam logon/logoff id info structure) - -Note: presumably, the return credentials is supposedly for the server to verify that the credential chain hasn't been compromised. - - - - CLNT_INFO2 - client identification/authentication info - - - VOID* - pointer to return credentials. - - - CRED - return credentials - ignored. - - - UINT16 - logon level - - - UINT16 - switch value - - - - - - switch (switch_value) - case 1: - { - ID_INFO_1 id_info_1; - } - - - - - -GID (group id info) - - - - UINT32 -group id - - UINT32 -user attributes (only used by NT 3.1 and 3.51) - - - - - -DOM_REF (domain reference info) - - - - VOID* - undocumented buffer pointer. - - - UINT32 - num referenced domains? - - - VOID* - undocumented domain name buffer pointer. - - - UINT32 - 32 - max number of entries - - - UINT32 - 4 - num referenced domains? - - - UNIHDR2 - domain name unicode string header - - - UNIHDR2[num_ref_doms-1] - referenced domain unicode string headers - - - UNISTR - domain name unicode string - - - DOM_SID[num_ref_doms] - referenced domain SIDs - - - - - - -DOM_INFO (domain info, levels 3 and 5 are the same)) - - - - UINT8[] - ??? padding to get 4-byte alignment with start of SMB header - - - UINT16 - domain name string length * 2 - - - UINT16 - domain name string length * 2 - - - VOID* - undocumented domain name string buffer pointer - - - VOID* -undocumented domain SID string buffer pointer - - UNISTR2 -domain name (unicode string) - - DOM_SID - domain SID - - - - - - -USER_INFO (user logon info) - -Note: it would be nice to know what the 16 byte user session key is for. - - - - NTTIME - logon time - - - NTTIME - logoff time - - - NTTIME - kickoff time - - - NTTIME - password last set time - - - NTTIME - password can change time - - - NTTIME - password must change time - - - UNIHDR - username unicode string header - - - UNIHDR - user's full name unicode string header - - - UNIHDR - logon script unicode string header - - - UNIHDR - profile path unicode string header - - - UNIHDR - home directory unicode string header - - - UNIHDR - home directory drive unicode string header - - - UINT16 - logon count - - - UINT16 - bad password count - - - UINT32 - User ID - - - UINT32 - Group ID - - - UINT32 - num groups - - - VOID* - undocumented buffer pointer to groups. - - - UINT32 - user flags - - - char[16] - user session key - - - UNIHDR - logon server unicode string header - - - UNIHDR - logon domain unicode string header - - - VOID* - undocumented logon domain id pointer - - - char[40] - 40 undocumented padding bytes. future expansion? - - - UINT32 - 0 - num_other_sids? - - - VOID* - NULL - undocumented pointer to other domain SIDs. - - - UNISTR2 - username unicode string - - - UNISTR2 - user's full name unicode string - - - UNISTR2 - logon script unicode string - - - UNISTR2 - profile path unicode string - - - UNISTR2 - home directory unicode string - - - UNISTR2 - home directory drive unicode string - - - UINT32 - num groups - - - GID[num_groups] - group info - - - UNISTR2 - logon server unicode string - - - UNISTR2 - logon domain unicode string - - - DOM_SID - domain SID - - - DOM_SID[num_sids] - other domain SIDs? - - - - - - -SH_INFO_1_PTR (pointers to level 1 share info strings) - -Note: see cifsrap2.txt section5, page 10. - - -0 for shi1_type indicates a Disk. -1 for shi1_type indicates a Print Queue. -2 for shi1_type indicates a Device. -3 for shi1_type indicates an IPC pipe. -0x8000 0000 (top bit set in shi1_type) indicates a hidden share. - - - - - - VOID* - shi1_netname - pointer to net name - - - UINT32 - shi1_type - type of share. 0 - undocumented. - - - VOID* - shi1_remark - pointer to comment. - - - - - - - -SH_INFO_1_STR (level 1 share info strings) - - - - UNISTR2 - shi1_netname - unicode string of net name - - - UNISTR2 - shi1_remark - unicode string of comment. - - - - - - -SHARE_INFO_1_CTR - -share container with 0 entries: - - - - UINT32 - 0 - EntriesRead - - - UINT32 - 0 - Buffer - - - -share container with > 0 entries: - - - - UINT32 - EntriesRead - - - UINT32 - non-zero - Buffer - - - UINT32 - EntriesRead - - - SH_INFO_1_PTR[EntriesRead] - share entry pointers - - - SH_INFO_1_STR[EntriesRead] - share entry strings - - - UINT8[] - padding to get unicode string 4-byte aligned with start of the SMB header. - - - UINT32 - EntriesRead - - - UINT32 - 0 - padding - - - - - - - -SERVER_INFO_101 - -Note: see cifs6.txt section 6.4 - the fields described therein will be of assistance here. for example, the type listed below is the same as fServerType, which is described in 6.4.1. - - - - SV_TYPE_WORKSTATION - 0x00000001 All workstations - - - SV_TYPE_SERVER - 0x00000002 All servers - - - SV_TYPE_SQLSERVER - 0x00000004 Any server running with SQL server - - - SV_TYPE_DOMAIN_CTRL - 0x00000008 Primary domain controller - - - SV_TYPE_DOMAIN_BAKCTRL - 0x00000010 Backup domain controller - - - SV_TYPE_TIME_SOURCE - 0x00000020 Server running the timesource service - - - SV_TYPE_AFP - 0x00000040 Apple File Protocol servers - - - SV_TYPE_NOVELL - 0x00000080 Novell servers - - - SV_TYPE_DOMAIN_MEMBER - 0x00000100 Domain Member - - - SV_TYPE_PRINTQ_SERVER - 0x00000200 Server sharing print queue - - - SV_TYPE_DIALIN_SERVER - 0x00000400 Server running dialin service. - - - SV_TYPE_XENIX_SERVER - 0x00000800 Xenix server - - - SV_TYPE_NT - 0x00001000 NT server - - - SV_TYPE_WFW - 0x00002000 Server running Windows for - - - SV_TYPE_SERVER_NT - 0x00008000 Windows NT non DC server - - - SV_TYPE_POTENTIAL_BROWSER - 0x00010000 Server that can run the browser service - - - SV_TYPE_BACKUP_BROWSER - 0x00020000 Backup browser server - - - SV_TYPE_MASTER_BROWSER - 0x00040000 Master browser server - - - SV_TYPE_DOMAIN_MASTER - 0x00080000 Domain Master Browser server - - - SV_TYPE_LOCAL_LIST_ONLY - 0x40000000 Enumerate only entries marked "local" - - - SV_TYPE_DOMAIN_ENUM - 0x80000000 Enumerate Domains. The pszServer and pszDomain parameters must be NULL. - - - - - - - UINT32 - 500 - platform_id - - - VOID* - pointer to name - - - UINT32 - 5 - major version - - - UINT32 -4 - minor version - - UINT32 -type (SV_TYPE_... bit field) - - VOID* - pointer to comment - - - UNISTR2 - sv101_name - unicode string of server name - - - UNISTR2 - sv_101_comment - unicode string of server comment. - - - UINT8[] - padding to get unicode string 4-byte aligned with start of the SMB header. - - - - - - - - -MSRPC over Transact Named Pipe - -For details on the SMB Transact Named Pipe, see cifs6.txt - - -MSRPC Pipes - - -The MSRPC is conducted over an SMB Transact Pipe with a name of -\PIPE\. You must first obtain a 16 bit file handle, by -sending a SMBopenX with the pipe name \PIPE\srvsvc for -example. You can then perform an SMB Trans, -and must carry out an SMBclose on the file handle once you are finished. - - - -Trans Requests must be sent with two setup UINT16s, no UINT16 params (none -known about), and UINT8 data parameters sufficient to contain the MSRPC -header, and MSRPC data. The first UINT16 setup parameter must be either -0x0026 to indicate an RPC, or 0x0001 to indicate Set Named Pipe Handle -state. The second UINT16 parameter must be the file handle for the pipe, -obtained above. - - - -The Data section for an API Command of 0x0026 (RPC pipe) in the Trans -Request is the RPC Header, followed by the RPC Data. The Data section for -an API Command of 0x0001 (Set Named Pipe Handle state) is two bytes. The -only value seen for these two bytes is 0x00 0x43. - - - -MSRPC Responses are sent as response data inside standard SMB Trans -responses, with the MSRPC Header, MSRPC Data and MSRPC tail. - - - -It is suspected that the Trans Requests will need to be at least 2-byte -aligned (probably 4-byte). This is standard practice for SMBs. It is also -independent of the observed 4-byte alignments with the start of the MSRPC -header, including the 4-byte alignment between the MSRPC header and the -MSRPC data. - - - -First, an SMBtconX connection is made to the IPC$ share. The connection -must be made using encrypted passwords, not clear-text. Then, an SMBopenX -is made on the pipe. Then, a Set Named Pipe Handle State must be sent, -after which the pipe is ready to accept API commands. Lastly, and SMBclose -is sent. - - - -To be resolved: - - - -lkcl/01nov97 there appear to be two additional bytes after the null-terminated \PIPE\ name for the RPC pipe. Values seen so far are -listed below: - - - initial SMBopenX request: RPC API command 0x26 params: - "\\PIPE\\lsarpc" 0x65 0x63; 0x72 0x70; 0x44 0x65; - "\\PIPE\\srvsvc" 0x73 0x76; 0x4E 0x00; 0x5C 0x43; - - - - - -Header - -[section to be rewritten, following receipt of work by Duncan Stansfield] - -Interesting note: if you set packed data representation to 0x0100 0000 -then all 4-byte and 2-byte word ordering is turned around! - -The start of each of the NTLSA and NETLOGON named pipes begins with: - - -offsetVariable typeVariable data -00UINT85 - RPC major version -01UINT80 - RPC minor version -02UINT82 - RPC response packet -03UINT83 - (FirstFrag bit-wise or with LastFrag) -04UINT320x1000 0000 - packed data representation -08UINT16fragment length - data size (bytes) inc header and tail. -0AUINT160 - authentication length -0CUINT32call identifier. matches 12th UINT32 of incoming RPC data. -10UINT32allocation hint - data size (bytes) minus header and tail. -14UINT160 - presentation context identifier -16UINT80 - cancel count -17UINT8in replies: 0 - reserved; in requests: opnum - see #defines. -18......start of data (goes on for allocation_hint bytes) - - - -RPC_Packet for request, response, bind and bind acknowledgement - - - - UINT8 versionmaj -reply same as request (0x05) - - UINT8 versionmin -reply same as request (0x00) - - UINT8 type -one of the MSRPC_Type enums - - UINT8 flags -reply same as request (0x00 for Bind, 0x03 for Request) - - UINT32 representation -reply same as request (0x00000010) - - UINT16 fraglength -the length of the data section of the SMB trans packet - - UINT16 authlength - - - - UINT32 callid -call identifier. (e.g. 0x00149594) - - * stub USE TvPacket -the remainder of the packet depending on the "type" - - - - - -Interface identification - -the interfaces are numbered. as yet I haven't seen more than one interface used on the same pipe name srvsvc - - -abstract (0x4B324FC8, 0x01D31670, 0x475A7812, 0x88E16EBF, 0x00000003) -transfer (0x8A885D04, 0x11C91CEB, 0x0008E89F, 0x6048102B, 0x00000002) - - - - - -RPC_Iface RW - - - - UINT8 byte[16] -16 bytes of number - - UINT32 version -the interface number - - - - - - -RPC_ReqBind RW - -the remainder of the packet after the header if "type" was Bind in the response header, "type" should be BindAck - - - - UINT16 maxtsize -maximum transmission fragment size (0x1630) - - UINT16 maxrsize -max receive fragment size (0x1630) - - UINT32 assocgid -associated group id (0x0) - - UINT32 numelements -the number of elements (0x1) - - UINT16 contextid -presentation context identifier (0x0) - - UINT8 numsyntaxes -the number of syntaxes (has always been 1?)(0x1) - - UINT8[] -4-byte alignment padding, against SMB header - - * abstractint USE RPC_Iface -num and vers. of interface client is using - - * transferint USE RPC_Iface - num and vers. of interface to use for replies - - - - - - -RPC_Address RW - - - - UINT16 length -length of the string including null terminator - - * port USE string -the string above in single byte, null terminated form - - - - - -RPC_ResBind RW - -the response to place after the header in the reply packet - - - - UINT16 maxtsize -same as request - - UINT16 maxrsize -same as request - - UINT32 assocgid -zero - - * secondaddr USE RPC_Address -the address string, as described earlier - - UINT8[] -4-byte alignment padding, against SMB header - - UINT8 numresults -the number of results (0x01) - - UINT8[] -4-byte alignment padding, against SMB header - - UINT16 result -result (0x00 = accept) - - UINT16 reason -reason (0x00 = no reason specified) - - * transfersyntax USE RPC_Iface -the transfer syntax from the request - - - - - -RPC_ReqNorm RW - -the remainder of the packet after the header for every other other request - - - - UINT32 allochint -the size of the stub data in bytes - - UINT16 prescontext -presentation context identifier (0x0) - - UINT16 opnum -operation number (0x15) - - * stub USE TvPacket -a packet dependent on the pipe name (probably the interface) and the op number) - - - - - -RPC_ResNorm RW - - - - UINT32 allochint -# size of the stub data in bytes - - UINT16 prescontext -# presentation context identifier (same as request) - - UINT8 cancelcount -# cancel count? (0x0) - - UINT8 reserved -# 0 - one byte padding - - * stub USE TvPacket -# the remainder of the reply - - - - - - -Tail - -The end of each of the NTLSA and NETLOGON named pipes ends with: - - - - ...... - end of data - - - UINT32 - return code - - - - - - -RPC Bind / Bind Ack - - -RPC Binds are the process of associating an RPC pipe (e.g \PIPE\lsarpc) -with a "transfer syntax" (see RPC_Iface structure). The purpose for doing -this is unknown. - - -Note: The RPC_ResBind SMB Transact request is sent with two uint16 setup parameters. The first is 0x0026; the second is the file handle - returned by the SMBopenX Transact response. - -Note: The RPC_ResBind members maxtsize, maxrsize and assocgid are the same in the response as the same members in the RPC_ReqBind. The - RPC_ResBind member transfersyntax is the same in the response as - the - -Note: The RPC_ResBind response member secondaddr contains the name of what is presumed to be the service behind the RPC pipe. The - mapping identified so far is: - - - - - initial SMBopenX request: - RPC_ResBind response: - - - - "\\PIPE\\srvsvc" - "\\PIPE\\ntsvcs" - - - "\\PIPE\\samr" - "\\PIPE\\lsass" - - - "\\PIPE\\lsarpc" - "\\PIPE\\lsass" - - - "\\PIPE\\wkssvc" - "\\PIPE\\wksvcs" - - - "\\PIPE\\NETLOGON" - "\\PIPE\\NETLOGON" - - - -Note: The RPC_Packet fraglength member in both the Bind Request and Bind Acknowledgment must contain the length of the entire RPC data, including the RPC_Packet header. - -Request: - - -RPC_Packet -RPC_ReqBind - - -Response: - -RPC_Packet -RPC_ResBind - - - - - -NTLSA Transact Named Pipe - -The sequence of actions taken on this pipe are: - - -Establish a connection to the IPC$ share (SMBtconX). use encrypted passwords. -Open an RPC Pipe with the name "\\PIPE\\lsarpc". Store the file handle. -Using the file handle, send a Set Named Pipe Handle state to 0x4300. -Send an LSA Open Policy request. Store the Policy Handle. -Using the Policy Handle, send LSA Query Info Policy requests, etc. -Using the Policy Handle, send an LSA Close. -Close the IPC$ share. - - -Defines for this pipe, identifying the query are: - - - LSA Open Policy: - 0x2c - - - LSA Query Info Policy: - 0x07 - - - LSA Enumerate Trusted Domains: - 0x0d - - - LSA Open Secret: - 0xff - - - LSA Lookup SIDs: - 0xfe - - - LSA Lookup Names: - 0xfd - - - LSA Close: - 0x00 - - - - - - -LSA Open Policy - -Note: The policy handle can be anything you like. - - -Request - - - - VOID* - buffer pointer - - - UNISTR2 - server name - unicode string starting with two '\'s - - - OBJ_ATTR - object attributes - - - UINT32 - 1 - desired access - - - - - - -Response - - - - - POL_HND - LSA policy handle - - - - return - 0 - indicates success - - - - - - - - - -LSA Query Info Policy - -Note: The info class in response must be the same as that in the request. - - -Request - - - - POL_HND -LSA policy handle - - UINT16 -info class (also a policy handle?) - - - - - -Response - - - - VOID* - undocumented buffer pointer - - - UINT16 - info class (same as info class in request). - - - - - -switch (info class) -case 3: -case 5: -{ -DOM_INFO domain info, levels 3 and 5 (are the same). -} - -return 0 - indicates success - - - - - - - -LSA Enumerate Trusted Domains - - -Request - -no extra data - - - - -Response - - - - UINT32 - 0 - enumeration context - - - UINT32 - 0 - entries read - - - UINT32 - 0 - trust information - - - return - 0x8000 001a - "no trusted domains" success code - - - - - - - -LSA Open Secret - - -Request - -no extra data - - - - -Response - - - - UINT32 - 0 - undocumented - - - UINT32 - 0 - undocumented - - - UINT32 - 0 - undocumented - - - UINT32 - 0 - undocumented - - - UINT32 - 0 - undocumented - - - -return 0x0C00 0034 - "no such secret" success code - - - - - - -LSA Close - - -Request - - - - POL_HND - policy handle to be closed - - - - - - -Response - - - - POL_HND -0s - closed policy handle (all zeros) - - -return 0 - indicates success - - - - - -LSA Lookup SIDS - -Note: num_entries in response must be same as num_entries in request. - - -Request - - - - POL_HND - LSA policy handle - - - UINT32 - num_entries - - - VOID* - undocumented domain SID buffer pointer - - - VOID* - undocumented domain name buffer pointer - - - VOID*[num_entries] undocumented domain SID pointers to be looked up. - -DOM_SID[num_entries] domain SIDs to be looked up. - - char[16] - completely undocumented 16 bytes. - - - - - - -Response - - - - DOM_REF -domain reference response - - UINT32 -num_entries (listed above) - - VOID* -undocumented buffer pointer - - UINT32 -num_entries (listed above) - - DOM_SID2[num_entries] -domain SIDs (from Request, listed above). - - UINT32 -num_entries (listed above) - - -return 0 - indicates success - - - - - - -LSA Lookup Names - -Note: num_entries in response must be same as num_entries in request. - - -Request - - - - POL_HND - LSA policy handle - - - UINT32 - num_entries - - - UINT32 - num_entries - - - VOID* - undocumented domain SID buffer pointer - - - VOID* - undocumented domain name buffer pointer - - - NAME[num_entries] - names to be looked up. - - - char[] - undocumented bytes - falsely translated SID structure? - - - - - - -Response - - - - DOM_REF -domain reference response - - UINT32 -num_entries (listed above) - - VOID* -undocumented buffer pointer - - UINT32 -num_entries (listed above) - - DOM_RID[num_entries] -domain SIDs (from Request, listed above). - - UINT32 -num_entries (listed above) - - -return 0 - indicates success - - - - - - -NETLOGON rpc Transact Named Pipe - -The sequence of actions taken on this pipe are: - - -tablish a connection to the IPC$ share (SMBtconX). use encrypted passwords. -en an RPC Pipe with the name "\\PIPE\\NETLOGON". Store the file handle. -ing the file handle, send a Set Named Pipe Handle state to 0x4300. -eate Client Challenge. Send LSA Request Challenge. Store Server Challenge. -lculate Session Key. Send an LSA Auth 2 Challenge. Store Auth2 Challenge. -lc/Verify Client Creds. Send LSA Srv PW Set. Calc/Verify Server Creds. -lc/Verify Client Creds. Send LSA SAM Logon . Calc/Verify Server Creds. -lc/Verify Client Creds. Send LSA SAM Logoff. Calc/Verify Server Creds. -ose the IPC$ share. - - -Defines for this pipe, identifying the query are - - - - LSA Request Challenge: - 0x04 - - - LSA Server Password Set: - 0x06 - - - LSA SAM Logon: - 0x02 - - - LSA SAM Logoff: - 0x03 - - - LSA Auth 2: - 0x0f - - - LSA Logon Control: - 0x0e - - - - -LSA Request Challenge - -Note: logon server name starts with two '\' characters and is upper case. - -Note: logon client is the machine, not the user. - -Note: the initial LanManager password hash, against which the challenge is issued, is the machine name itself (lower case). there will becalls issued (LSA Server Password Set) which will change this, later. refusing these calls allows you to always deal with the same password (i.e the LM# of the machine name in lower case). - - -Request - - - - VOID* - undocumented buffer pointer - - - UNISTR2 - logon server unicode string - - - UNISTR2 - logon client unicode string - - - char[8] - client challenge - - - - - - -Response - - - - char[8] - server challenge - - - -return 0 - indicates success - - - - - - -LSA Authenticate 2 - -Note: in between request and response, calculate the client credentials, and check them against the client-calculated credentials (this process uses the previously received client credentials). - -Note: neg_flags in the response is the same as that in the request. - -Note: you must take a copy of the client-calculated credentials received here, because they will be used in subsequent authentication packets. - - -Request - - - - LOG_INFO - client identification info - - - char[8] - client-calculated credentials - - - UINT8[] -padding to 4-byte align with start of SMB header. - - UINT32 -neg_flags - negotiated flags (usual value is 0x0000 01ff) - - - - - -Response - - - - char[8] - server credentials. - - - UINT32 - neg_flags - same as neg_flags in request. - - - -return 0 - indicates success. failure value unknown. - - - - - - -LSA Server Password Set - -Note: the new password is suspected to be a DES encryption using the old password to generate the key. - -Note: in between request and response, calculate the client credentials, and check them against the client-calculated credentials (this process uses the previously received client credentials). - -Note: the server credentials are constructed from the client-calculated credentials and the client time + 1 second. - -Note: you must take a copy of the client-calculated credentials received here, because they will be used in subsequent authentication packets. - - -Request - - - - CLNT_INFO - client identification/authentication info - - - char[] - new password - undocumented. - - - - - - -Response - - - - CREDS - server credentials. server time stamp appears to be ignored. - - - -return 0 - indicates success; 0xC000 006a indicates failure - - - - - -LSA SAM Logon - - -Note: valid_user is True iff the username and password hash are valid for - the requested domain. - - - -Request - - - SAM_INFO - sam_id structure - - - - - - -Response - - - - VOID* - undocumented buffer pointer - - - CREDS - server credentials. server time stamp appears to be ignored. - - - - -if (valid_user) -{ - UINT16 3 - switch value indicating USER_INFO structure. - VOID* non-zero - pointer to USER_INFO structure - USER_INFO user logon information - - UINT32 1 - Authoritative response; 0 - Non-Auth? - - return 0 - indicates success -} -else -{ - UINT16 0 - switch value. value to indicate no user presumed. - VOID* 0x0000 0000 - indicates no USER_INFO structure. - - UINT32 1 - Authoritative response; 0 - Non-Auth? - - return 0xC000 0064 - NT_STATUS_NO_SUCH_USER. -} - - - - - - - -LSA SAM Logoff - - -Note: presumably, the SAM_INFO structure is validated, and a (currently - undocumented) error code returned if the Logoff is invalid. - - - -Request - - - - SAM_INFO - sam_id structure - - - - - - -Response - - - - VOID* - undocumented buffer pointer - - - CREDS - server credentials. server time stamp appears to be ignored. - - - -return 0 - indicates success. undocumented failure indication. - - - - - - -\\MAILSLOT\NET\NTLOGON - - -Note: mailslots will contain a response mailslot, to which the response - should be sent. the target NetBIOS name is REQUEST_NAME<20>, where - REQUEST_NAME is the name of the machine that sent the request. - - - -Query for PDC - -Note: NTversion, LMNTtoken, LM20token in response are the same as those given in the request. - - -Request - - - - UINT16 - 0x0007 - Query for PDC - - - STR - machine name - - - STR - response mailslot - - - UINT8[] - padding to 2-byte align with start of mailslot. - - - UNISTR - machine name - - - UINT32 - NTversion - - - UINT16 - LMNTtoken - - - UINT16 - LM20token - - - - - - -Response - - - - UINT16 -0x000A - Respose to Query for PDC - - STR -machine name (in uppercase) - - UINT8[] - padding to 2-byte align with start of mailslot. - - - UNISTR - machine name - - - UNISTR -domain name - - UINT32 -NTversion (same as received in request) - - UINT16 -LMNTtoken (same as received in request) - - UINT16 -LM20token (same as received in request) - - - - - - -SAM Logon - -Note: machine name in response is preceded by two '\' characters. - -Note: NTversion, LMNTtoken, LM20token in response are the same as those given in the request. - -Note: user name in the response is presumably the same as that in the request. - - -Request - - - - UINT16 - 0x0012 - SAM Logon - - - UINT16 - request count - - - UNISTR - machine name - - - UNISTR - user name - - - STR - response mailslot - - - UINT32 - alloweable account - - - UINT32 - domain SID size - - - char[sid_size] - domain SID, of sid_size bytes. - - - UINT8[] - ???? padding to 4? 2? -byte align with start of mailslot. - - - UINT32 - NTversion - - - UINT16 - LMNTtoken - - - UINT16 - LM20token - - - - - - -Response - - - - UINT16 - 0x0013 - Response to SAM Logon - - - UNISTR - machine name - - - UNISTR - user name - workstation trust account - - - UNISTR - domain name - - - UINT32 - NTversion - - - UINT16 - LMNTtoken - - - UINT16 - LM20token - - - - - - - - -SRVSVC Transact Named Pipe - -Defines for this pipe, identifying the query are: - - - - Net Share Enum - 0x0f - - - Net Server Get Info - 0x15 - - - - - -Net Share Enum - -Note: share level and switch value in the response are presumably the same as those in the request. - -Note: cifsrap2.txt (section 5) may be of limited assistance here. - - -Request - - - - VOID* -pointer (to server name?) - - UNISTR2 - server name - - - UINT8[] - padding to get unicode string 4-byte aligned with the start of the SMB header. - - - UINT32 - share level - - - UINT32 - switch value - - - VOID* - pointer to SHARE_INFO_1_CTR - - - SHARE_INFO_1_CTR - share info with 0 entries - - - UINT32 -preferred maximum length (0xffff ffff) - - - - -Response - - - - UINT32 - share level - - - UINT32 - switch value - - - VOID* -pointer to SHARE_INFO_1_CTR - - SHARE_INFO_1_CTR -share info (only added if share info ptr is non-zero) - - -return 0 - indicates success - - - - - -Net Server Get Info - -Note: level is the same value as in the request. - - -Request - - - - UNISTR2 - server name - - - UINT32 - switch level - - - - - - -Response - - - - UINT32 - switch level - - - VOID* - pointer to SERVER_INFO_101 - - - SERVER_INFO_101 -server info (only added if server info ptr is non-zero) - - -return 0 - indicates success - - - - - - -Cryptographic side of NT Domain Authentication - - -Definitions - - - -Add(A1,A2) -Intel byte ordered addition of corresponding 4 byte words in arrays A1 and A2 - - - -E(K,D) -DES ECB encryption of 8 byte data D using 7 byte key K - - - -lmowf() -Lan man hash - - - -ntowf() -NT hash - - - -PW -md4(machine_password) == md4(lsadump $machine.acc) == -pwdump(machine$) (initially) == md4(lmowf(unicode(machine))) - - - - -ARC4(K,Lk,D,Ld) -ARC4 encryption of data D of length Ld with key K of length Lk - - - -v[m..n(,l)] -subset of v from bytes m to n, optionally padded with zeroes to length l - - - -Cred(K,D) -E(K[7..7,7],E(K[0..6],D)) computes a credential - - - -Time() -4 byte current time - - - -Cc,Cs -8 byte client and server challenges Rc,Rs: 8 byte client and server credentials - - - - - - - -Protocol - - -C->S ReqChal,Cc -S->C Cs - - - -C & S compute session key Ks = E(PW[9..15],E(PW[0..6],Add(Cc,Cs))) - - - -C: Rc = Cred(Ks,Cc) -C->S Authenticate,Rc -S: Rs = Cred(Ks,Cs), assert(Rc == Cred(Ks,Cc)) -S->C Rs -C: assert(Rs == Cred(Ks,Cs)) - - - -On joining the domain the client will optionally attempt to change its -password and the domain controller may refuse to update it depending -on registry settings. This will also occur weekly afterwards. - - - -C: Tc = Time(), Rc' = Cred(Ks,Rc+Tc) -C->S ServerPasswordSet,Rc',Tc,arc4(Ks[0..7,16],lmowf(randompassword()) -C: Rc = Cred(Ks,Rc+Tc+1) -S: assert(Rc' == Cred(Ks,Rc+Tc)), Ts = Time() -S: Rs' = Cred(Ks,Rs+Tc+1) -S->C Rs',Ts -C: assert(Rs' == Cred(Ks,Rs+Tc+1)) -S: Rs = Rs' - - - -User: U with password P wishes to login to the domain (incidental data -such as workstation and domain omitted) - - - -C: Tc = Time(), Rc' = Cred(Ks,Rc+Tc) -C->S NetLogonSamLogon,Rc',Tc,U,arc4(Ks[0..7,16],16,ntowf(P),16), arc4(Ks[0..7,16],16,lmowf(P),16) -S: assert(Rc' == Cred(Ks,Rc+Tc)) assert(passwords match those in SAM) -S: Ts = Time() - - - -S->C Cred(Ks,Cred(Ks,Rc+Tc+1)),userinfo(logon script,UID,SIDs,etc) -C: assert(Rs == Cred(Ks,Cred(Rc+Tc+1)) -C: Rc = Cred(Ks,Rc+Tc+1) - - - - - -Comments - - -On first joining the domain the session key could be computed by -anyone listening in on the network as the machine password has a well -known value. Until the machine is rebooted it will use this session -key to encrypt NT and LM one way functions of passwords which are -password equivalents. Any user who logs in before the machine has been -rebooted a second time will have their password equivalent exposed. Of -course the new machine password is exposed at this time anyway. - - - -None of the returned user info such as logon script, profile path and -SIDs *appear* to be protected by anything other than the TCP checksum. - - - -The server time stamps appear to be ignored. - - - -The client sends a ReturnAuthenticator in the SamLogon request which I -can't find a use for. However its time is used as the timestamp -returned by the server. - - - -The password OWFs should NOT be sent over the network reversibly -encrypted. They should be sent using ARC4(Ks,md4(owf)) with the server -computing the same function using the owf values in the SAM. - - - - - - -SIDs and RIDs - - -SIDs and RIDs are well documented elsewhere. - - - -A SID is an NT Security ID (see DOM_SID structure). They are of the form: - - - -revision-NN-SubAuth1-SubAuth2-SubAuth3... -revision-0xNNNNNNNNNNNN-SubAuth1-SubAuth2-SubAuth3... - - - -currently, the SID revision is 1. -The Sub-Authorities are known as Relative IDs (RIDs). - - - -Well-known SIDs - - -Universal well-known SIDs - - - - Null SID - S-1-0-0 - - - World - S-1-1-0 - - - Local - S-1-2-0 - - - Creator Owner ID - S-1-3-0 - - - Creator Group ID - S-1-3-1 - - - Creator Owner Server ID - S-1-3-2 - - - Creator Group Server ID - S-1-3-3 - - - (Non-unique IDs) - S-1-4 - - - - - - -NT well-known SIDs - - - - NT Authority - S-1-5 - - - Dialup - S-1-5-1 - - - Network - S-1-5-2 - - - Batch - S-1-5-3 - - - Interactive - S-1-5-4 - - - Service -S-1-5-6 - - AnonymousLogon(aka null logon session) - S-1-5-7 - - - Proxy -S-1-5-8 - - ServerLogon(aka domain controller account) - S-1-5-8 - - - (Logon IDs) - S-1-5-5-X-Y - - - (NT non-unique IDs) - S-1-5-0x15-... - - - (Built-in domain) - s-1-5-0x20 - - - - - - - -Well-known RIDS - - -A RID is a sub-authority value, as part of either a SID, or in the case -of Group RIDs, part of the DOM_GID structure, in the USER_INFO_1 -structure, in the LSA SAM Logon response. - - - -Well-known RID users - - -Groupname -???? -RID -DOMAIN_USER_RID_ADMIN0x000001F4 -DOMAIN_USER_RID_GUEST0x000001F5 - - - - - -Well-known RID groups - - -Groupname -???? -RID - DOMAIN_GROUP_RID_ADMINS0x00000200 - DOMAIN_GROUP_RID_USERS0x00000201 - DOMAIN_GROUP_RID_GUESTS0x00000202 - - - - - -Well-known RID aliases - - -Groupname -???? -RID - DOMAIN_ALIAS_RID_ADMINS0x00000220 - DOMAIN_ALIAS_RID_USERS0x00000221 - DOMAIN_ALIAS_RID_GUESTS0x00000222 - DOMAIN_ALIAS_RID_POWER_USERS0x00000223 - DOMAIN_ALIAS_RID_ACCOUNT_OPS0x00000224 - DOMAIN_ALIAS_RID_SYSTEM_OPS0x00000225 - DOMAIN_ALIAS_RID_PRINT_OPS0x00000226 - DOMAIN_ALIAS_RID_BACKUP_OPS0x00000227 - DOMAIN_ALIAS_RID_REPLICATOR0x00000228 - - - - - -
diff --git a/docs/docbook/devdoc/debug.sgml b/docs/docbook/devdoc/debug.sgml deleted file mode 100644 index 7e81cc825db..00000000000 --- a/docs/docbook/devdoc/debug.sgml +++ /dev/null @@ -1,321 +0,0 @@ - - - - ChrisHertel - - July 1998 - - -The samba DEBUG system - - -New Output Syntax - - - The syntax of a debugging log file is represented as: - - - - >debugfile< :== { >debugmsg< } - - >debugmsg< :== >debughdr< '\n' >debugtext< - - >debughdr< :== '[' TIME ',' LEVEL ']' FILE ':' [FUNCTION] '(' LINE ')' - - >debugtext< :== { >debugline< } - - >debugline< :== TEXT '\n' - - - -TEXT is a string of characters excluding the newline character. - - - -LEVEL is the DEBUG level of the message (an integer in the range - 0..10). - - - -TIME is a timestamp. - - - -FILE is the name of the file from which the debug message was -generated. - - - -FUNCTION is the function from which the debug message was generated. - - - -LINE is the line number of the debug statement that generated the -message. - - -Basically, what that all means is: - - -A debugging log file is made up of debug messages. - - -Each debug message is made up of a header and text. The header is -separated from the text by a newline. - - -The header begins with the timestamp and debug level of the -message enclosed in brackets. The filename, function, and line -number at which the message was generated follow. The filename is -terminated by a colon, and the function name is terminated by the -parenthesis which contain the line number. Depending upon the -compiler, the function name may be missing (it is generated by the -__FUNCTION__ macro, which is not universally implemented, dangit). - - -The message text is made up of zero or more lines, each terminated -by a newline. - - - -Here's some example output: - - - [1998/08/03 12:55:25, 1] nmbd.c:(659) - Netbios nameserver version 1.9.19-prealpha started. - Copyright Andrew Tridgell 1994-1997 - [1998/08/03 12:55:25, 3] loadparm.c:(763) - Initializing global parameters - - - -Note that in the above example the function names are not listed on -the header line. That's because the example above was generated on an -SGI Indy, and the SGI compiler doesn't support the __FUNCTION__ macro. - - - - - -The DEBUG() Macro - - -Use of the DEBUG() macro is unchanged. DEBUG() takes two parameters. -The first is the message level, the second is the body of a function -call to the Debug1() function. - - -That's confusing. - -Here's an example which may help a bit. If you would write - - -printf( "This is a %s message.\n", "debug" ); - - - -to send the output to stdout, then you would write - - - -DEBUG( 0, ( "This is a %s message.\n", "debug" ) ); - - - -to send the output to the debug file. All of the normal printf() -formatting escapes work. - - - -Note that in the above example the DEBUG message level is set to 0. -Messages at level 0 always print. Basically, if the message level is -less than or equal to the global value DEBUGLEVEL, then the DEBUG -statement is processed. - - - -The output of the above example would be something like: - - - - [1998/07/30 16:00:51, 0] file.c:function(128) - This is a debug message. - - - -Each call to DEBUG() creates a new header *unless* the output produced -by the previous call to DEBUG() did not end with a '\n'. Output to the -debug file is passed through a formatting buffer which is flushed -every time a newline is encountered. If the buffer is not empty when -DEBUG() is called, the new input is simply appended. - - - -...but that's really just a Kludge. It was put in place because -DEBUG() has been used to write partial lines. Here's a simple (dumb) -example of the kind of thing I'm talking about: - - - - DEBUG( 0, ("The test returned " ) ); - if( test() ) - DEBUG(0, ("True") ); - else - DEBUG(0, ("False") ); - DEBUG(0, (".\n") ); - - - -Without the format buffer, the output (assuming test() returned true) -would look like this: - - - - [1998/07/30 16:00:51, 0] file.c:function(256) - The test returned - [1998/07/30 16:00:51, 0] file.c:function(258) - True - [1998/07/30 16:00:51, 0] file.c:function(261) - . - - -Which isn't much use. The format buffer kludge fixes this problem. - - - - - -The DEBUGADD() Macro - - -In addition to the kludgey solution to the broken line problem -described above, there is a clean solution. The DEBUGADD() macro never -generates a header. It will append new text to the current debug -message even if the format buffer is empty. The syntax of the -DEBUGADD() macro is the same as that of the DEBUG() macro. - - - - DEBUG( 0, ("This is the first line.\n" ) ); - DEBUGADD( 0, ("This is the second line.\nThis is the third line.\n" ) ); - - -Produces - - - [1998/07/30 16:00:51, 0] file.c:function(512) - This is the first line. - This is the second line. - This is the third line. - - - - - -The DEBUGLVL() Macro - - -One of the problems with the DEBUG() macro was that DEBUG() lines -tended to get a bit long. Consider this example from -nmbd_sendannounce.c: - - - - DEBUG(3,("send_local_master_announcement: type %x for name %s on subnet %s for workgroup %s\n", - type, global_myname, subrec->subnet_name, work->work_group)); - - - -One solution to this is to break it down using DEBUG() and DEBUGADD(), -as follows: - - - - DEBUG( 3, ( "send_local_master_announcement: " ) ); - DEBUGADD( 3, ( "type %x for name %s ", type, global_myname ) ); - DEBUGADD( 3, ( "on subnet %s ", subrec->subnet_name ) ); - DEBUGADD( 3, ( "for workgroup %s\n", work->work_group ) ); - - - -A similar, but arguably nicer approach is to use the DEBUGLVL() macro. -This macro returns True if the message level is less than or equal to -the global DEBUGLEVEL value, so: - - - - if( DEBUGLVL( 3 ) ) - { - dbgtext( "send_local_master_announcement: " ); - dbgtext( "type %x for name %s ", type, global_myname ); - dbgtext( "on subnet %s ", subrec->subnet_name ); - dbgtext( "for workgroup %s\n", work->work_group ); - } - - -(The dbgtext() function is explained below.) - -There are a few advantages to this scheme: - - -The test is performed only once. - - -You can allocate variables off of the stack that will only be used -within the DEBUGLVL() block. - - -Processing that is only relevant to debug output can be contained -within the DEBUGLVL() block. - - - - - - -New Functions - - -dbgtext() - -This function prints debug message text to the debug file (and -possibly to syslog) via the format buffer. The function uses a -variable argument list just like printf() or Debug1(). The -input is printed into a buffer using the vslprintf() function, -and then passed to format_debug_text(). - -If you use DEBUGLVL() you will probably print the body of the -message using dbgtext(). - - - - -dbghdr() - -This is the function that writes a debug message header. -Headers are not processed via the format buffer. Also note that -if the format buffer is not empty, a call to dbghdr() will not -produce any output. See the comments in dbghdr() for more info. - - - -It is not likely that this function will be called directly. It -is used by DEBUG() and DEBUGADD(). - - - - -format_debug_text() - -This is a static function in debug.c. It stores the output text -for the body of the message in a buffer until it encounters a -newline. When the newline character is found, the buffer is -written to the debug file via the Debug1() function, and the -buffer is reset. This allows us to add the indentation at the -beginning of each line of the message body, and also ensures -that the output is written a line at a time (which cleans up -syslog output). - - - - diff --git a/docs/docbook/devdoc/dev-doc.sgml b/docs/docbook/devdoc/dev-doc.sgml deleted file mode 100644 index e256dbe3a2c..00000000000 --- a/docs/docbook/devdoc/dev-doc.sgml +++ /dev/null @@ -1,70 +0,0 @@ - - - - - - - - - - - - - -]> - - - -SAMBA Developers Guide - - - - SAMBA Team - -
samba@samba.org
-
- - -Abstract - - -Last Update : Mon Sep 30 15:23:53 CDT 2002 - - - -This book is a collection of documents that might be useful for -people developing samba or those interested in doing so. -It's nothing more than a collection of documents written by samba developers about -the internals of various parts of samba and the SMB protocol. It's still incomplete. -The most recent version of this document -can be found at http://devel.samba.org/. -Please send updates to jelmer@samba.org. - - - -This documentation is distributed under the GNU General Public License (GPL) -version 2. A copy of the license is included with the Samba source -distribution. A copy can be found on-line at http://www.fsf.org/licenses/gpl.txt - - - - - -&NetBIOS; -&Architecture; -&debug; -&CodingSuggestions; -&internals; -&parsing; -&unix-smb; -&Tracing; -&cifsntdomain; -&printing; -&wins; -&sam; -&encryption; - -
diff --git a/docs/docbook/devdoc/encryption.sgml b/docs/docbook/devdoc/encryption.sgml deleted file mode 100644 index 3ca8aa109c0..00000000000 --- a/docs/docbook/devdoc/encryption.sgml +++ /dev/null @@ -1,196 +0,0 @@ - - - - - - JeremyAllison - - Samba Team -
- samba@samba.org -
-
-
- - 19 Apr 1999 -
- -LanMan and NT Password Encryption - - - Introduction - - With the development of LanManager and Windows NT - compatible password encryption for Samba, it is now able - to validate user connections in exactly the same way as - a LanManager or Windows NT server. - - This document describes how the SMB password encryption - algorithm works and what issues there are in choosing whether - you want to use it. You should read it carefully, especially - the part about security and the "PROS and CONS" section. - - - - - How does it work? - - LanManager encryption is somewhat similar to UNIX - password encryption. The server uses a file containing a - hashed value of a user's password. This is created by taking - the user's plaintext password, capitalising it, and either - truncating to 14 bytes or padding to 14 bytes with null bytes. - This 14 byte value is used as two 56 bit DES keys to encrypt - a 'magic' eight byte value, forming a 16 byte value which is - stored by the server and client. Let this value be known as - the "hashed password". - - Windows NT encryption is a higher quality mechanism, - consisting of doing an MD4 hash on a Unicode version of the user's - password. This also produces a 16 byte hash value that is - non-reversible. - - When a client (LanManager, Windows for WorkGroups, Windows - 95 or Windows NT) wishes to mount a Samba drive (or use a Samba - resource), it first requests a connection and negotiates the - protocol that the client and server will use. In the reply to this - request the Samba server generates and appends an 8 byte, random - value - this is stored in the Samba server after the reply is sent - and is known as the "challenge". The challenge is different for - every client connection. - - The client then uses the hashed password (16 byte values - described above), appended with 5 null bytes, as three 56 bit - DES keys, each of which is used to encrypt the challenge 8 byte - value, forming a 24 byte value known as the "response". - - In the SMB call SMBsessionsetupX (when user level security - is selected) or the call SMBtconX (when share level security is - selected), the 24 byte response is returned by the client to the - Samba server. For Windows NT protocol levels the above calculation - is done on both hashes of the user's password and both responses are - returned in the SMB call, giving two 24 byte values. - - The Samba server then reproduces the above calculation, using - its own stored value of the 16 byte hashed password (read from the - smbpasswd file - described later) and the challenge - value that it kept from the negotiate protocol reply. It then checks - to see if the 24 byte value it calculates matches the 24 byte value - returned to it from the client. - - If these values match exactly, then the client knew the - correct password (or the 16 byte hashed value - see security note - below) and is thus allowed access. If not, then the client did not - know the correct password and is denied access. - - Note that the Samba server never knows or stores the cleartext - of the user's password - just the 16 byte hashed values derived from - it. Also note that the cleartext password or 16 byte hashed values - are never transmitted over the network - thus increasing security. - - - - <anchor id="SMBPASSWDFILEFORMAT"/>The smbpasswd file - - In order for Samba to participate in the above protocol - it must be able to look up the 16 byte hashed values given a user name. - Unfortunately, as the UNIX password value is also a one way hash - function (ie. it is impossible to retrieve the cleartext of the user's - password given the UNIX hash of it), a separate password file - containing this 16 byte value must be kept. To minimise problems with - these two password files, getting out of sync, the UNIX - /etc/passwd and the smbpasswd file, - a utility, mksmbpasswd.sh, is provided to generate - a smbpasswd file from a UNIX /etc/passwd file. - - - - To generate the smbpasswd file from your /etc/passwd - file use the following command: - - $ cat /etc/passwd | mksmbpasswd.sh - > /usr/local/samba/private/smbpasswd - - If you are running on a system that uses NIS, use - - $ ypcat passwd | mksmbpasswd.sh - > /usr/local/samba/private/smbpasswd - - The mksmbpasswd.sh program is found in - the Samba source directory. By default, the smbpasswd file is - stored in : - - /usr/local/samba/private/smbpasswd - - The owner of the /usr/local/samba/private/ - directory should be set to root, and the permissions on it should - be set to 0500 (chmod 500 /usr/local/samba/private). - - - Likewise, the smbpasswd file inside the private directory should - be owned by root and the permissions on is should be set to 0600 - (chmod 600 smbpasswd). - - - The format of the smbpasswd file is (The line has been - wrapped here. It should appear as one entry per line in - your smbpasswd file.) - - -username:uid:XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX:XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX: - [Account type]:LCT-<last-change-time>:Long name - - - Although only the username, - uid, - XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX, - [Account type] and - last-change-time sections are significant - and are looked at in the Samba code. - - It is VITALLY important that there by 32 - 'X' characters between the two ':' characters in the XXX sections - - the smbpasswd and Samba code will fail to validate any entries that - do not have 32 characters between ':' characters. The first XXX - section is for the Lanman password hash, the second is for the - Windows NT version. - - When the password file is created all users have password entries - consisting of 32 'X' characters. By default this disallows any access - as this user. When a user has a password set, the 'X' characters change - to 32 ascii hexadecimal digits (0-9, A-F). These are an ascii - representation of the 16 byte hashed value of a user's password. - - To set a user to have no password (not recommended), edit the file - using vi, and replace the first 11 characters with the ascii text - "NO PASSWORD" (minus the quotes). - - For example, to clear the password for user bob, his smbpasswd file - entry would look like : - - - bob:100:NO PASSWORDXXXXXXXXXXXXXXXXXXXXX:XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX:[U ]:LCT-00000000:Bob's full name:/bobhome:/bobshell - - - If you are allowing users to use the smbpasswd command to set - their own passwords, you may want to give users NO PASSWORD initially - so they do not have to enter a previous password when changing to their - new password (not recommended). In order for you to allow this the - smbpasswd program must be able to connect to the - smbd daemon as that user with no password. Enable this - by adding the line : - - null passwords = yes - - to the [global] section of the smb.conf file (this is why - the above scenario is not recommended). Preferably, allocate your - users a default password to begin with, so you do not have - to enable this on your server. - - Note : This file should be protected very - carefully. Anyone with access to this file can (with enough knowledge of - the protocols) gain access to your SMB server. The file is thus more - sensitive than a normal unix /etc/passwd file. - - -
diff --git a/docs/docbook/devdoc/internals.sgml b/docs/docbook/devdoc/internals.sgml deleted file mode 100644 index 982cfd2e108..00000000000 --- a/docs/docbook/devdoc/internals.sgml +++ /dev/null @@ -1,440 +0,0 @@ - - - - DavidChappell - -
David.Chappell@mail.trincoll.edu
-
-
- 8 May 1996 -
- -Samba Internals - - -Character Handling - -This section describes character set handling in Samba, as implemented in -Samba 3.0 and above - - - -In the past Samba had very ad-hoc character set handling. Scattered -throughout the code were numerous calls which converted particular -strings to/from DOS codepages. The problem is that there was no way of -telling if a particular char* is in dos codepage or unix -codepage. This led to a nightmare of code that tried to cope with -particular cases without handlingt the general case. - - - - -The new functions - - -The new system works like this: - - - - - all char* strings inside Samba are "unix" strings. These are - multi-byte strings that are in the charset defined by the "unix - charset" option in smb.conf. - - - - there is no single fixed character set for unix strings, but any - character set that is used does need the following properties: - - - - - must not contain NULLs except for termination - - - - must be 7-bit compatible with C strings, so that a constant - string or character in C will be byte-for-byte identical to the - equivalent string in the chosen character set. - - - - when you uppercase or lowercase a string it does not become - longer than the original string - - - - must be able to correctly hold all characters that your client - will throw at it - - - - - For example, UTF-8 is fine, and most multi-byte asian character sets - are fine, but UCS2 could not be used for unix strings as they - contain nulls. - - - - - when you need to put a string into a buffer that will be sent on the - wire, or you need a string in a character set format that is - compatible with the clients character set then you need to use a - pull_ or push_ function. The pull_ functions pull a string from a - wire buffer into a (multi-byte) unix string. The push_ functions - push a string out to a wire buffer. - - - - the two main pull_ and push_ functions you need to understand are - pull_string and push_string. These functions take a base pointer - that should point at the start of the SMB packet that the string is - in. The functions will check the flags field in this packet to - automatically determine if the packet is marked as a unicode packet, - and they will choose whether to use unicode for this string based on - that flag. You may also force this decision using the STR_UNICODE or - STR_ASCII flags. For use in smbd/ and libsmb/ there are wrapper - functions clistr_ and srvstr_ that call the pull_/push_ functions - with the appropriate first argument. - - - - You may also call the pull_ascii/pull_ucs2 or push_ascii/push_ucs2 - functions if you know that a particular string is ascii or - unicode. There are also a number of other convenience functions in - charcnv.c that call the pull_/push_ functions with particularly - common arguments, such as pull_ascii_pstring() - - - - - The biggest thing to remember is that internal (unix) strings in Samba - may now contain multi-byte characters. This means you cannot assume - that characters are always 1 byte long. Often this means that you will - have to convert strings to ucs2 and back again in order to do some - (seemingly) simple task. For examples of how to do this see functions - like strchr_m(). I know this is very slow, and we will eventually - speed it up but right now we want this stuff correct not fast. - - - - all lp_ functions now return unix strings. The magic "DOS" flag on - parameters is gone. - - - - all vfs functions take unix strings. Don't convert when passing to them - - - - - - - -Macros in byteorder.h - - -This section describes the macros defined in byteorder.h. These macros -are used extensively in the Samba code. - - - -CVAL(buf,pos) - - -returns the byte at offset pos within buffer buf as an unsigned character. - - - - -PVAL(buf,pos) -returns the value of CVAL(buf,pos) cast to type unsigned integer. - - - -SCVAL(buf,pos,val) -sets the byte at offset pos within buffer buf to value val. - - - -SVAL(buf,pos) - - returns the value of the unsigned short (16 bit) little-endian integer at - offset pos within buffer buf. An integer of this type is sometimes - refered to as "USHORT". - - - - -IVAL(buf,pos) -returns the value of the unsigned 32 bit little-endian integer at offset -pos within buffer buf. - - - -SVALS(buf,pos) -returns the value of the signed short (16 bit) little-endian integer at -offset pos within buffer buf. - - - -IVALS(buf,pos) -returns the value of the signed 32 bit little-endian integer at offset pos -within buffer buf. - - - -SSVAL(buf,pos,val) -sets the unsigned short (16 bit) little-endian integer at offset pos within -buffer buf to value val. - - - -SIVAL(buf,pos,val) -sets the unsigned 32 bit little-endian integer at offset pos within buffer -buf to the value val. - - - -SSVALS(buf,pos,val) -sets the short (16 bit) signed little-endian integer at offset pos within -buffer buf to the value val. - - - -SIVALS(buf,pos,val) -sets the signed 32 bit little-endian integer at offset pos withing buffer -buf to the value val. - - - -RSVAL(buf,pos) -returns the value of the unsigned short (16 bit) big-endian integer at -offset pos within buffer buf. - - - -RIVAL(buf,pos) -returns the value of the unsigned 32 bit big-endian integer at offset -pos within buffer buf. - - - -RSSVAL(buf,pos,val) -sets the value of the unsigned short (16 bit) big-endian integer at -offset pos within buffer buf to value val. -refered to as "USHORT". - - - -RSIVAL(buf,pos,val) -sets the value of the unsigned 32 bit big-endian integer at offset -pos within buffer buf to value val. - - - - - - -LAN Manager Samba API - - -This section describes the functions need to make a LAN Manager RPC call. -This information had been obtained by examining the Samba code and the LAN -Manager 2.0 API documentation. It should not be considered entirely -reliable. - - - - -call_api(int prcnt, int drcnt, int mprcnt, int mdrcnt, - char *param, char *data, char **rparam, char **rdata); - - - - -This function is defined in client.c. It uses an SMB transaction to call a -remote api. - - - -Parameters - -The parameters are as follows: - - - - prcnt: the number of bytes of parameters begin sent. - - - drcnt: the number of bytes of data begin sent. - - - mprcnt: the maximum number of bytes of parameters which should be returned - - - mdrcnt: the maximum number of bytes of data which should be returned - - - param: a pointer to the parameters to be sent. - - - data: a pointer to the data to be sent. - - - rparam: a pointer to a pointer which will be set to point to the returned - paramters. The caller of call_api() must deallocate this memory. - - - rdata: a pointer to a pointer which will be set to point to the returned - data. The caller of call_api() must deallocate this memory. - - - - -These are the parameters which you ought to send, in the order of their -appearance in the parameter block: - - - - - -An unsigned 16 bit integer API number. You should set this value with -SSVAL(). I do not know where these numbers are described. - - - -An ASCIIZ string describing the parameters to the API function as defined -in the LAN Manager documentation. The first parameter, which is the server -name, is ommited. This string is based uppon the API function as described -in the manual, not the data which is actually passed. - - - -An ASCIIZ string describing the data structure which ought to be returned. - - - -Any parameters which appear in the function call, as defined in the LAN -Manager API documentation, after the "Server" and up to and including the -"uLevel" parameters. - - - -An unsigned 16 bit integer which gives the size in bytes of the buffer we -will use to receive the returned array of data structures. Presumably this -should be the same as mdrcnt. This value should be set with SSVAL(). - - - -An ASCIIZ string describing substructures which should be returned. If no -substructures apply, this string is of zero length. - - - - - -The code in client.c always calls call_api() with no data. It is unclear -when a non-zero length data buffer would be sent. - - - - - -Return value - - -The returned parameters (pointed to by rparam), in their order of appearance -are: - - - - -An unsigned 16 bit integer which contains the API function's return code. -This value should be read with SVAL(). - - - -An adjustment which tells the amount by which pointers in the returned -data should be adjusted. This value should be read with SVAL(). Basically, -the address of the start of the returned data buffer should have the returned -pointer value added to it and then have this value subtracted from it in -order to obtain the currect offset into the returned data buffer. - - - -A count of the number of elements in the array of structures returned. -It is also possible that this may sometimes be the number of bytes returned. - - - - -When call_api() returns, rparam points to the returned parameters. The -first if these is the result code. It will be zero if the API call -suceeded. This value by be read with "SVAL(rparam,0)". - - - -The second parameter may be read as "SVAL(rparam,2)". It is a 16 bit offset -which indicates what the base address of the returned data buffer was when -it was built on the server. It should be used to correct pointer before -use. - - - -The returned data buffer contains the array of returned data structures. -Note that all pointers must be adjusted before use. The function -fix_char_ptr() in client.c can be used for this purpose. - - - -The third parameter (which may be read as "SVAL(rparam,4)") has something to -do with indicating the amount of data returned or possibly the amount of -data which can be returned if enough buffer space is allowed. - - - - - - -Code character table - -Certain data structures are described by means of ASCIIz strings containing -code characters. These are the code characters: - - - - -W a type byte little-endian unsigned integer - - -N a count of substructures which follow - - -D a four byte little-endian unsigned integer - - -B a byte (with optional count expressed as trailing ASCII digits) - - -z a four byte offset to a NULL terminated string - - -l a four byte offset to non-string user data - - -b an offset to data (with count expressed as trailing ASCII digits) - - -r pointer to returned data buffer??? - - -L length in bytes of returned data buffer??? - - -h number of bytes of information available??? - - - - -
diff --git a/docs/docbook/devdoc/parsing.sgml b/docs/docbook/devdoc/parsing.sgml deleted file mode 100644 index 8d929617f5a..00000000000 --- a/docs/docbook/devdoc/parsing.sgml +++ /dev/null @@ -1,239 +0,0 @@ - - - - ChrisHertel - - November 1997 - - -The smb.conf file - - -Lexical Analysis - - -Basically, the file is processed on a line by line basis. There are -four types of lines that are recognized by the lexical analyzer -(params.c): - - - - -Blank lines - Lines containing only whitespace. - - -Comment lines - Lines beginning with either a semi-colon or a -pound sign (';' or '#'). - - -Section header lines - Lines beginning with an open square bracket ('['). - - -Parameter lines - Lines beginning with any other character. -(The default line type.) - - - - -The first two are handled exclusively by the lexical analyzer, which -ignores them. The latter two line types are scanned for - - - - - - Section names - - - - Parameter names - - - - Parameter values - - - - -These are the only tokens passed to the parameter loader -(loadparm.c). Parameter names and values are divided from one -another by an equal sign: '='. - - - -Handling of Whitespace - - -Whitespace is defined as all characters recognized by the isspace() -function (see ctype(3C)) except for the newline character ('\n') -The newline is excluded because it identifies the end of the line. - - - - -The lexical analyzer scans past white space at the beginning of a line. - - - -Section and parameter names may contain internal white space. All -whitespace within a name is compressed to a single space character. - - - -Internal whitespace within a parameter value is kept verbatim with -the exception of carriage return characters ('\r'), all of which -are removed. - - - -Leading and trailing whitespace is removed from names and values. - - - - - - - -Handling of Line Continuation - - -Long section header and parameter lines may be extended across -multiple lines by use of the backslash character ('\\'). Line -continuation is ignored for blank and comment lines. - - - -If the last (non-whitespace) character within a section header or on -a parameter line is a backslash, then the next line will be -(logically) concatonated with the current line by the lexical -analyzer. For example: - - - - param name = parameter value string \ - with line continuation. - - -Would be read as - - - param name = parameter value string with line continuation. - - - -Note that there are five spaces following the word 'string', -representing the one space between 'string' and '\\' in the top -line, plus the four preceeding the word 'with' in the second line. -(Yes, I'm counting the indentation.) - - - -Line continuation characters are ignored on blank lines and at the end -of comments. They are *only* recognized within section and parameter -lines. - - - - - -Line Continuation Quirks - -Note the following example: - - - param name = parameter value string \ - \ - with line continuation. - - - -The middle line is *not* parsed as a blank line because it is first -concatonated with the top line. The result is - - - -param name = parameter value string with line continuation. - - -The same is true for comment lines. - - - param name = parameter value string \ - ; comment \ - with a comment. - - -This becomes: - - -param name = parameter value string ; comment with a comment. - - - -On a section header line, the closing bracket (']') is considered a -terminating character, and the rest of the line is ignored. The lines - - - - [ section name ] garbage \ - param name = value - - -are read as - - - [section name] - param name = value - - - - - - -Syntax - -The syntax of the smb.conf file is as follows: - - - <file> :== { <section> } EOF - <section> :== <section header> { <parameter line> } - <section header> :== '[' NAME ']' - <parameter line> :== NAME '=' VALUE NL - - -Basically, this means that - - - - a file is made up of zero or more sections, and is terminated by - an EOF (we knew that). - - - - A section is made up of a section header followed by zero or more - parameter lines. - - - - A section header is identified by an opening bracket and - terminated by the closing bracket. The enclosed NAME identifies - the section. - - - - A parameter line is divided into a NAME and a VALUE. The *first* - equal sign on the line separates the NAME from the VALUE. The - VALUE is terminated by a newline character (NL = '\n'). - - - - - -About params.c - - -The parsing of the config file is a bit unusual if you are used to -lex, yacc, bison, etc. Both lexical analysis (scanning) and parsing -are performed by params.c. Values are loaded via callbacks to -loadparm.c. - - - - diff --git a/docs/docbook/devdoc/printing.sgml b/docs/docbook/devdoc/printing.sgml deleted file mode 100644 index 363b9fb6e50..00000000000 --- a/docs/docbook/devdoc/printing.sgml +++ /dev/null @@ -1,393 +0,0 @@ - - - - GeraldCarter - - October 2002 - - - -Samba Printing Internals - - - -Abstract - -The purpose of this document is to provide some insight into -Samba's printing functionality and also to describe the semantics -of certain features of Windows client printing. - - - - - - - -Printing Interface to Various Back ends - - - -Samba uses a table of function pointers to seven functions. The -function prototypes are defined in the printif structure declared -in printing.h. - - - - retrieve the contents of a print queue - pause the print queue - resume a paused print queue - delete a job from the queue - pause a job in the print queue - result a paused print job in the queue - submit a job to the print queue - - - -Currently there are only two printing back end implementations -defined. - - - - a generic set of functions for working with standard UNIX - printing subsystems - - a set of CUPS specific functions (this is only enabled if - the CUPS libraries were located at compile time). - - - - - - - - - -Print Queue TDB's - - - - -Samba provides periodic caching of the output from the "lpq command" -for performance reasons. This cache time is configurable in seconds. -Obviously the longer the cache time the less often smbd will be -required to exec a copy of lpq. However, the accuracy of the print -queue contents displayed to clients will be diminished as well. - - - -The list of currently opened print queue TDB's can be found -be examining the list of tdb_print_db structures ( see print_db_head -in printing.c ). A queue TDB is opened using the wrapper function -printing.c:get_print_db_byname(). The function ensures that smbd -does not open more than MAX_PRINT_DBS_OPEN in an effort to prevent -a large print server from exhausting all available file descriptors. -If the number of open queue TDB's exceeds the MAX_PRINT_DBS_OPEN -limit, smbd falls back to a most recently used algorithm for maintaining -a list of open TDB's. - - - -There are two ways in which a a print job can be entered into -a print queue's TDB. The first is to submit the job from a Windows -client which will insert the job information directly into the TDB. -The second method is to have the print job picked up by executing the -"lpq command". - - - -/* included from printing.h */ -struct printjob { - pid_t pid; /* which process launched the job */ - int sysjob; /* the system (lp) job number */ - int fd; /* file descriptor of open file if open */ - time_t starttime; /* when the job started spooling */ - int status; /* the status of this job */ - size_t size; /* the size of the job so far */ - int page_count; /* then number of pages so far */ - BOOL spooled; /* has it been sent to the spooler yet? */ - BOOL smbjob; /* set if the job is a SMB job */ - fstring filename; /* the filename used to spool the file */ - fstring jobname; /* the job name given to us by the client */ - fstring user; /* the user who started the job */ - fstring queuename; /* service number of printer for this job */ - NT_DEVICEMODE *nt_devmode; -}; - - - -The current manifestation of the printjob structure contains a field -for the UNIX job id returned from the "lpq command" and a Windows job -ID (32-bit bounded by PRINT_MAX_JOBID). When a print job is returned -by the "lpq command" that does not match an existing job in the queue's -TDB, a 32-bit job ID above the <*vance doesn't know what word is missing here*> is generating by adding UNIX_JOB_START to -the id reported by lpq. - - - -In order to match a 32-bit Windows jobid onto a 16-bit lanman print job -id, smbd uses an in memory TDB to match the former to a number appropriate -for old lanman clients. - - - -When updating a print queue, smbd will perform the following -steps ( refer to print.c:print_queue_update() ): - - - - Check to see if another smbd is currently in - the process of updating the queue contents by checking the pid - stored in LOCK/printer_name. - If so, then do not update the TDB. - - Lock the mutex entry in the TDB and store our own pid. - Check that this succeeded, else fail. - - Store the updated time stamp for the new cache - listing - - Retrieve the queue listing via "lpq command" - - - foreach job in the queue - { - if the job is a UNIX job, create a new entry; - if the job has a Windows based jobid, then - { - Lookup the record by the jobid; - if the lookup failed, then - treat it as a UNIX job; - else - update the job status only - } - } - - Delete any jobs in the TDB that are not - in the in the lpq listing - - Store the print queue status in the TDB - - update the cache time stamp again - - - - -Note that it is the contents of this TDB that is returned to Windows -clients and not the actual listing from the "lpq command". - - - -The NT_DEVICEMODE stored as part of the printjob structure is used to -store a pointer to a non-default DeviceMode associated with the print -job. The pointer will be non-null when the client included a Device -Mode in the OpenPrinterEx() call and subsequently submitted a job for -printing on that same handle. If the client did not include a Device -Mode in the OpenPrinterEx() request, the nt_devmode field is NULL -and the job has the printer's device mode associated with it by default. - - - -Only non-default Device Mode are stored with print jobs in the print -queue TDB. Otherwise, the Device Mode is obtained from the printer -object when the client issues a GetJob(level == 2) request. - - - - - - - - - -ChangeID and Client Caching of Printer Information - - - -[To be filled in later] - - - - - - - -Windows NT/2K Printer Change Notify - - - -When working with Windows NT+ clients, it is possible for a -print server to use RPC to send asynchronous change notification -events to clients for certain printer and print job attributes. -This can be useful when the client needs to know that a new -job has been added to the queue for a given printer or that the -driver for a printer has been changed. Note that this is done -entirely orthogonal to cache updates based on a new ChangeID for -a printer object. - - - -The basic set of RPC's used to implement change notification are - - - - RemoteFindFirstPrinterChangeNotifyEx ( RFFPCN ) - RemoteFindNextPrinterChangeNotifyEx ( RFNPCN ) - FindClosePrinterChangeNotify( FCPCN ) - ReplyOpenPrinter - ReplyClosePrinter - RouteRefreshPrinterChangeNotify ( RRPCN ) - - - -One additional RPC is available to a server, but is never used by the -Windows spooler service: - - - - RouteReplyPrinter() - - - -The opnum for all of these RPC's are defined in include/rpc_spoolss.h - - - -Windows NT print servers use a bizarre method of sending print -notification event to clients. The process of registering a new change -notification handle is as follows. The 'C' is for client and the -'S' is for server. All error conditions have been eliminated. - - - -C: Obtain handle to printer or to the printer - server via the standard OpenPrinterEx() call. -S: Respond with a valid handle to object - -C: Send a RFFPCN request with the previously obtained - handle with either (a) set of flags for change events - to monitor, or (b) a PRINTER_NOTIFY_OPTIONS structure - containing the event information to monitor. The windows - spooler has only been observed to use (b). -S: The <* another missing word*> opens a new TCP session to the client (thus requiring - all print clients to be CIFS servers as well) and sends - a ReplyOpenPrinter() request to the client. -C: The client responds with a printer handle that can be used to - send event notification messages. -S: The server replies success to the RFFPCN request. - -C: The windows spooler follows the RFFPCN with a RFNPCN - request to fetch the current values of all monitored - attributes. -S: The server replies with an array SPOOL_NOTIFY_INFO_DATA - structures (contained in a SPOOL_NOTIFY_INFO structure). - -C: If the change notification handle is ever released by the - client via a FCPCN request, the server sends a ReplyClosePrinter() - request back to the client first. However a request of this - nature from the client is often an indication that the previous - notification event was not marshalled correctly by the server - or a piece of data was wrong. -S: The server closes the internal change notification handle - (POLICY_HND) and does not send any further change notification - events to the client for that printer or job. - - - -The current list of notification events supported by Samba can be -found by examining the internal tables in srv_spoolss_nt.c - - - - printer_notify_table[] - job_notify_table[] - - - -When an event occurs that could be monitored, smbd sends a message -to itself about the change. The list of events to be transmitted -are queued by the smbd process sending the message to prevent an -overload of TDB usage and the internal message is sent during smbd's -idle loop (refer to printing/notify.c and the functions -send_spoolss_notify2_msg() and print_notify_send_messages() ). - - - -The decision of whether or not the change is to be sent to connected -clients is made by the routine which actually sends the notification. -( refer to srv_spoolss_nt.c:recieve_notify2_message() ). - - - -Because it possible to receive a listing of multiple changes for -multiple printers, the notification events must be split into -categories by the printer name. This makes it possible to group -multiple change events to be sent in a single RPC according to the -printer handle obtained via a ReplyOpenPrinter(). - - - -The actual change notification is performed using the RRPCN request -RPC. This packet contains - - - - - -the printer handle registered with the -client's spooler on which the change occurred - -The change_low value which was sent as part -of the last RFNPCN request from the client - -The SPOOL_NOTIFY_INFO container with the event -information - - - - -A SPOOL_NOTIFY_INFO contains: - - - - -the version and flags field are predefined -and should not be changed - -The count field is the number of entries -in the SPOOL_NOTIFY_INFO_DATA array - - - - -The SPOOL_NOTIFY_INFO_DATA entries contain: - - - - -The type defines whether or not this event -is for a printer or a print job - -The field is the flag identifying the event - -the notify_data union contains the new valuie of the -attribute - -The enc_type defines the size of the structure for marshalling -and unmarshalling - -(a) the id must be 0 for a printer event on a printer handle. -(b) the id must be the job id for an event on a printer job -(c) the id must be the matching number of the printer index used -in the response packet to the RFNPCN when using a print server -handle for notification. Samba currently uses the snum of -the printer for this which can break if the list of services -has been modified since the notification handle was registered. - -The size is either (a) the string length in UNICODE for strings, -(b) the size in bytes of the security descriptor, or (c) 0 for -data values. - - - - - diff --git a/docs/docbook/devdoc/sam.sgml b/docs/docbook/devdoc/sam.sgml deleted file mode 100644 index 84c17d65e26..00000000000 --- a/docs/docbook/devdoc/sam.sgml +++ /dev/null @@ -1,357 +0,0 @@ - - - - - AndrewBartlett - - 1 October 2002 - - -The Upcoming SAM System - - -Security in the 'new SAM' - -One of the biggest problems with passdb is it's implementation of -'security'. Access control is on a 'are you root at the moment' basis, -and it has no concept of NT ACLs. Things like ldapsam had to add -'magic' 'are you root' checks. - -We took this very seriously when we started work, and the new structure -is designed with this in mind, from the ground up. Each call to the SAM -has a NT_TOKEN and (if relevant) an 'access desired'. This is either -provided as a parameter, or implicitly supplied by the object being -accessed. - - -For example, when you call - - - -NTSTATUS sam_get_account_by_name(const SAM_CONTEXT *context, const -NT_USER_TOKEN *access_token, uint32 access_desired, const char *domain, -const char *name, SAM_ACCOUNT_HANDLE **account) - - - -The context can be NULL (and is used to allow import/export by setting -up 2 contexts, and allowing calls on both simultaneously) - - - -The access token *must* be specified. Normally the user's token out of -current_user, this can also be a global 'system' context. - - - -The access desired is as per the ACL, for passing to the seaccess stuff. - - - -The domain/username are standard. Even if we only have one domain, -keeping this ensures that we don't get 'unqualified' usernames (same -problem as we had with unqualified SIDs). - - - -We return a 'handle'. This is opaque to the rest of Samba, but is -operated on by get/set routines, all of which return NTSTATUS. - - - -The access checking is done by the SAM module. The reason it is not -done 'above' the interface is to ensure a 'choke point'. I put a lot of -effort into the auth subsystem to ensure we never 'accidentally' forgot -to check for null passwords, missed a restriction etc. I intend the SAM -to be written with the same caution. - - - -The reason the access checking is not handled by the interface itself is -due to the different implementations it make take on. For example, on -ADS, you cannot set a password over a non-SSL connection. Other -backends may have similar requirements - we need to leave this policy up -to the modules. They will naturally have access to 'helper' procedures -and good examples to avoid mishaps. - - - -(Furthermore, some backends my actually chose to push the whole ACL -issue to the remote server, and - assuming ldap for this example - bind -as the user directly) - - - -Each returned handle has an internal 'access permitted', which allows -the 'get' and 'set' routines to return 'ACCESS_DENIED' for things that -were not able to be retrieved from the backend. This removes the need -to specify the NT_TOKEN on every operation, and allows for 'object not -present' to be easily distinguished from 'access denied'. - - - -When you 'set' an object (calling sam_update_account) the internal -details are again used. Each change that has been made to the object -has been flagged, so as to avoid race conditions (on unmodified -components) and to avoid violating any extra ACL requirements on the -actual data store (like the LDAP server). - - - -Finally, we have generic get_sec_desc() and set_sec_desc() routines to -allow external ACL manipulation. These do lookups based on SID. - - - - - -Standalone from UNIX - - -One of the primary tenants of the 'new SAM' is that it would not attempt -to deal with 'what unix id for that'. This would be left to the 'SMS' -(Sid Mapping System') or SID farm, and probably administered via -winbind. We have had constructive discussion on how 'basic' unix -accounts like 'root' would be handled, and we think this can work. -Accounts not preexisting in unix would be served up via winbind. - - - -This is an *optional* part, and my preferred end-game. We have a fare -way to go before things like winbind up to it however. - - - - - -Handles and Races in the new SAM - - -One of the things that the 'new SAM' work has tried to face is both -compatibility with existing code, and a closer alignment to the SAMR -interface. I consider SAMR to be a 'primary customer' to the this work, -because if we get alignment with that wrong, things get more, rather -than less complex. Also, most other parts of Samba are much more -flexible with what they can allow. - - - -In any case, that was a decision taken as to how the general design -would progress. BTW, my understanding of SAMR may be completely flawed. - - - -One of the most race-prone areas of the new code is the conflicting -update problem. We have taken two approaches: - - - - -'Not conflicting' conflicts. Due to the way usrmgr operates, it will -open a user, display all the properties and *save* them all, even if you -don't change any. - - - -For this, see what I've done in rpc_server/srv_samr_util.c. I intend -to take this one step further, and operate on the 'handle' that the -values were read from. This should mean that we only update things that -have *really* changed. - - - - - -'conflicting' updates: Currently we don't deal with this (in passdb -or the new sam stuff), but the design is sufficiently flexible to 'deny' -a second update. I don't foresee locking records however. - - - - - - - -Layers - - -Application - - -This is where smbd, samtest and whatever end-user replacement we have -for pdbedit sits. They use only the SAM interface, and do not get -'special knowledge' of what is below them. - - - -SAM Interface - - -This level 'owns' the various handle structures, the get/set routines on -those structures and provides the public interface. The application -layer may initialize a 'context' to be passed to all interface routines, -else a default, self-initialising context will be supplied. This layser -finds the appropriate backend module for the task, and tries very hard -not to need to much 'knowledge'. It should just provide the required -abstraction to the modules below, and arrange for their initial loading. - - - -We could possibly add ACL checking at this layer, to avoid discrepancies -in implementation modules. - - - - - -SAM Modules - - -These do not communicate with the application directly, only by setting -values in the handles, and receiving requests from the interface. These -modules are responsible for translating values from the handle's -.private into (say) an LDAP modification list. The module is expected -to 'know' things like it's own domain SID, domain name, and any other -state attached to the SAM. Simpler modules may call back to some helper -routine. - - - - - - -SAM Modules - - -Special Module: sam_passdb - - -In order for there to be a smooth transition, kai is writing a module -that reads existing passdb backends, and translates them into SAM -replies. (Also pulling data from the account policy DB etc). We also -intend to write a module that does the reverse - gives the SAM a passdb -interface. - - - - -sam_ads - -This is the first of the SAM modules to be committed to the tree - -mainly because I needed to coordinate work with metze (who authored most -of it). This module aims to use Samba's libads code to provide an -Active Directory LDAP client, suitable for use on a mixed-mode DC. -While it is currently being tested against Win2k servers (with a -password in the smb.conf file) it is expected to eventually use a -(possibly modified) OpenLDAP server. We hope that this will assist in -the construction of an Samba AD DC. - - - -We also intend to construct a Samba 2.2/3.0 compatible ldap module, -again using libads code. - - - - - -Memory Management - - -The 'new SAM' development effort also concerned itself with getting a -sane implementation of memory management. It was decided that we would -be (as much as possible) talloc based, using an 'internal talloc -context' on many objects. That is, the creation of an object would -initiate it's own internal talloc context, and this would be used for -all operations on that object. Much of this is already implemented in -passdb. Also, like passdb, it will be possible to specify that some -object actually be created on a specified context. - - - -Memory management is important here because the APIs in the 'new SAM' do -not use 'pdb_init()' or an equivalent. They always allocate new -objects. Enumeration's are slightly different, and occur on a supplied -context that 'owns' the entire list, rather than per-element. (the -enumeration functions return an array of all elements - not full handles -just basic (and public) info) Likewise for things that fill in a char -**. - - -For example: - - -NTSTATUS sam_lookup_sid(const SAM_CONTEXT *context, const NT_USER_TOKEN -*access_token, TALLOC_CTX *mem_ctx, const DOM_SID *sid, char **name, -uint32 *type) - - -Takes a context to allocate the 'name' on, while: - - -NTSTATUS sam_get_account_by_sid(const SAM_CONTEXT *context, const -NT_USER_TOKEN *access_token, uint32 access_desired, const DOM_SID -*accountsid, SAM_ACCOUNT_HANDLE **account) - - -Allocates a handle and stores the allocation context on that handle. - -I think that the following: - - -NTSTATUS sam_enum_accounts(const SAM_CONTEXT *context, const -NT_USER_TOKEN *access_token, const DOM_SID *domainsid, uint16 acct_ctrl, -int32 *account_count, SAM_ACCOUNT_ENUM **accounts) - - - - - -Testing - - -Testing is vital in any piece of software, and Samba is certainly no -exception. In designing this new subsystem, we have taken care to ensure -it is easily tested, independent of outside protocols. - - - -To this end, Jelmer has constructed 'samtest'. - - - -This utility (see torture/samtest.c) is structured like rpcclient, but -instead operates on the SAM subsystem. It creates a 'custom' SAM -context, that may be distinct from the default values used by the rest -of the system, and can load a separate configuration file. - - - -A small number of commands are currently implemented, but these have -already proved vital in testing. I expect SAM module authors will find -it particularly valuable. - - -Example useage: - -$ bin/samtest - - -> context ads:ldap://192.168.1.96 - -(this loads a new context, using the new ADS module. The parameter is -the 'location' of the ldap server) - - - -> lookup_name DOMAIN abartlet - -(returns a sid). - - - -Because the 'new SAM' is NT ACL based, there will be a command to -specify an arbitrary NT ACL, but for now it uses 'system' by default. - - - diff --git a/docs/docbook/devdoc/unix-smb.sgml b/docs/docbook/devdoc/unix-smb.sgml deleted file mode 100644 index d6a658089c4..00000000000 --- a/docs/docbook/devdoc/unix-smb.sgml +++ /dev/null @@ -1,316 +0,0 @@ - - - - AndrewTridgell - - April 1995 - - -NetBIOS in a Unix World - - -Introduction - -This is a short document that describes some of the issues that -confront a SMB implementation on unix, and how Samba copes with -them. They may help people who are looking at unix<->PC -interoperability. - - - -It was written to help out a person who was writing a paper on unix to -PC connectivity. - - - - - -Usernames - -The SMB protocol has only a loose username concept. Early SMB -protocols (such as CORE and COREPLUS) have no username concept at -all. Even in later protocols clients often attempt operations -(particularly printer operations) without first validating a username -on the server. - - - -Unix security is based around username/password pairs. A unix box -should not allow clients to do any substantive operation without some -sort of validation. - - - -The problem mostly manifests itself when the unix server is in "share -level" security mode. This is the default mode as the alternative -"user level" security mode usually forces a client to connect to the -server as the same user for each connected share, which is -inconvenient in many sites. - - - -In "share level" security the client normally gives a username in the -"session setup" protocol, but does not supply an accompanying -password. The client then connects to resources using the "tree -connect" protocol, and supplies a password. The problem is that the -user on the PC types the username and the password in different -contexts, unaware that they need to go together to give access to the -server. The username is normally the one the user typed in when they -"logged onto" the PC (this assumes Windows for Workgroups). The -password is the one they chose when connecting to the disk or printer. - - - -The user often chooses a totally different username for their login as -for the drive connection. Often they also want to access different -drives as different usernames. The unix server needs some way of -divining the correct username to combine with each password. - - - -Samba tries to avoid this problem using several methods. These succeed -in the vast majority of cases. The methods include username maps, the -service%user syntax, the saving of session setup usernames for later -validation and the derivation of the username from the service name -(either directly or via the user= option). - - - - - -File Ownership - - -The commonly used SMB protocols have no way of saying "you can't do -that because you don't own the file". They have, in fact, no concept -of file ownership at all. - - - -This brings up all sorts of interesting problems. For example, when -you copy a file to a unix drive, and the file is world writeable but -owned by another user the file will transfer correctly but will -receive the wrong date. This is because the utime() call under unix -only succeeds for the owner of the file, or root, even if the file is -world writeable. For security reasons Samba does all file operations -as the validated user, not root, so the utime() fails. This can stuff -up shared development diectories as programs like "make" will not get -file time comparisons right. - - - -There are several possible solutions to this problem, including -username mapping, and forcing a specific username for particular -shares. - - - - - -Passwords - - -Many SMB clients uppercase passwords before sending them. I have no -idea why they do this. Interestingly WfWg uppercases the password only -if the server is running a protocol greater than COREPLUS, so -obviously it isn't just the data entry routines that are to blame. - - - -Unix passwords are case sensitive. So if users use mixed case -passwords they are in trouble. - - - -Samba can try to cope with this by either using the "password level" -option which causes Samba to try the offered password with up to the -specified number of case changes, or by using the "password server" -option which allows Samba to do its validation via another machine -(typically a WinNT server). - - - -Samba supports the password encryption method used by SMB -clients. Note that the use of password encryption in Microsoft -networking leads to password hashes that are "plain text equivalent". -This means that it is *VERY* important to ensure that the Samba -smbpasswd file containing these password hashes is only readable -by the root user. See the documentation ENCRYPTION.txt for more -details. - - - - - -Locking - -Since samba 2.2, samba supports other types of locking as well. This -section is outdated. - - - -The locking calls available under a DOS/Windows environment are much -richer than those available in unix. This means a unix server (like -Samba) choosing to use the standard fcntl() based unix locking calls -to implement SMB locking has to improvise a bit. - - - -One major problem is that dos locks can be in a 32 bit (unsigned) -range. Unix locking calls are 32 bits, but are signed, giving only a 31 -bit range. Unfortunately OLE2 clients use the top bit to select a -locking range used for OLE semaphores. - - - -To work around this problem Samba compresses the 32 bit range into 31 -bits by appropriate bit shifting. This seems to work but is not -ideal. In a future version a separate SMB lockd may be added to cope -with the problem. - - - -It also doesn't help that many unix lockd daemons are very buggy and -crash at the slightest provocation. They normally go mostly unused in -a unix environment because few unix programs use byte range -locking. The stress of huge numbers of lock requests from dos/windows -clients can kill the daemon on some systems. - - - -The second major problem is the "opportunistic locking" requested by -some clients. If a client requests opportunistic locking then it is -asking the server to notify it if anyone else tries to do something on -the same file, at which time the client will say if it is willing to -give up its lock. Unix has no simple way of implementing -opportunistic locking, and currently Samba has no support for it. - - - - - -Deny Modes - - -When a SMB client opens a file it asks for a particular "deny mode" to -be placed on the file. These modes (DENY_NONE, DENY_READ, DENY_WRITE, -DENY_ALL, DENY_FCB and DENY_DOS) specify what actions should be -allowed by anyone else who tries to use the file at the same time. If -DENY_READ is placed on the file, for example, then any attempt to open -the file for reading should fail. - - - -Unix has no equivalent notion. To implement this Samba uses either lock -files based on the files inode and placed in a separate lock -directory or a shared memory implementation. The lock file method -is clumsy and consumes processing and file resources, -the shared memory implementation is vastly prefered and is turned on -by default for those systems that support it. - - - - - -Trapdoor UIDs - -A SMB session can run with several uids on the one socket. This -happens when a user connects to two shares with different -usernames. To cope with this the unix server needs to switch uids -within the one process. On some unixes (such as SCO) this is not -possible. This means that on those unixes the client is restricted to -a single uid. - - - -Note that you can also get the "trapdoor uid" message for other -reasons. Please see the FAQ for details. - - - - - -Port numbers - -There is a convention that clients on sockets use high "unprivilaged" -port numbers (>1000) and connect to servers on low "privilaged" port -numbers. This is enforced in Unix as non-root users can't open a -socket for listening on port numbers less than 1000. - - - -Most PC based SMB clients (such as WfWg and WinNT) don't follow this -convention completely. The main culprit is the netbios nameserving on -udp port 137. Name query requests come from a source port of 137. This -is a problem when you combine it with the common firewalling technique -of not allowing incoming packets on low port numbers. This means that -these clients can't query a netbios nameserver on the other side of a -low port based firewall. - - - -The problem is more severe with netbios node status queries. I've -found that WfWg, Win95 and WinNT3.5 all respond to netbios node status -queries on port 137 no matter what the source port was in the -request. This works between machines that are both using port 137, but -it means it's not possible for a unix user to do a node status request -to any of these OSes unless they are running as root. The answer comes -back, but it goes to port 137 which the unix user can't listen -on. Interestingly WinNT3.1 got this right - it sends node status -responses back to the source port in the request. - - - - - -Protocol Complexity - -There are many "protocol levels" in the SMB protocol. It seems that -each time new functionality was added to a Microsoft operating system, -they added the equivalent functions in a new protocol level of the SMB -protocol to "externalise" the new capabilities. - - - -This means the protocol is very "rich", offering many ways of doing -each file operation. This means SMB servers need to be complex and -large. It also means it is very difficult to make them bug free. It is -not just Samba that suffers from this problem, other servers such as -WinNT don't support every variation of every call and it has almost -certainly been a headache for MS developers to support the myriad of -SMB calls that are available. - - - -There are about 65 "top level" operations in the SMB protocol (things -like SMBread and SMBwrite). Some of these include hundreds of -sub-functions (SMBtrans has at least 120 sub-functions, like -DosPrintQAdd and NetSessionEnum). All of them take several options -that can change the way they work. Many take dozens of possible -"information levels" that change the structures that need to be -returned. Samba supports all but 2 of the "top level" functions. It -supports only 8 (so far) of the SMBtrans sub-functions. Even NT -doesn't support them all. - - - -Samba currently supports up to the "NT LM 0.12" protocol, which is the -one preferred by Win95 and WinNT3.5. Luckily this protocol level has a -"capabilities" field which specifies which super-duper new-fangled -options the server suports. This helps to make the implementation of -this protocol level much easier. - - - -There is also a problem with the SMB specications. SMB is a X/Open -spec, but the X/Open book is far from ideal, and fails to cover many -important issues, leaving much to the imagination. Microsoft recently -renamed the SMB protocol CIFS (Common Internet File System) and have -published new specifications. These are far superior to the old -X/Open documents but there are still undocumented calls and features. -This specification is actively being worked on by a CIFS developers -mailing list hosted by Microsft. - - - - diff --git a/docs/docbook/devdoc/wins.sgml b/docs/docbook/devdoc/wins.sgml deleted file mode 100644 index 53410316c56..00000000000 --- a/docs/docbook/devdoc/wins.sgml +++ /dev/null @@ -1,79 +0,0 @@ - - - - GeraldCarter - - October 2002 - - - -Samba WINS Internals - - - -WINS Failover - - - -The current Samba codebase possesses the capability to use groups of WINS -servers that share a common namespace for NetBIOS name registration and -resolution. The formal parameter syntax is - - - - WINS_SERVER_PARAM = SERVER [ SEPARATOR SERVER_LIST ] - WINS_SERVER_PARAM = "wins server" - SERVER = ADDR[:TAG] - ADDR = ip_addr | fqdn - TAG = string - SEPARATOR = comma | \s+ - SERVER_LIST = SERVER [ SEPARATOR SERVER_LIST ] - - - -A simple example of a valid wins server setting is - - - -[global] - wins server = 192.168.1.2 192.168.1.3 - - - -In the event that no TAG is defined in for a SERVER in the list, smbd assigns a default -TAG of "*". A TAG is used to group servers of a shared NetBIOS namespace together. Upon -startup, nmbd will attempt to register the netbios name value with one server in each -tagged group. - - - -An example using tags to group WINS servers together is show here. Note that the use of -interface names in the tags is only by convention and is not a technical requirement. - - - - -[global] - wins server = 192.168.1.2:eth0 192.168.1.3:eth0 192.168.2.2:eth1 - - - -Using this configuration, nmbd would attempt to register the server's NetBIOS name -with one WINS server in each group. Because the "eth0" group has two servers, the -second server would only be used when a registration (or resolution) request to -the first server in that group timed out. - - - -NetBIOS name resolution follows a similar pattern as name registration. When resolving -a NetBIOS name via WINS, smbd and other Samba programs will attempt to query a single WINS -server in a tagged group until either a positive response is obtained at least once or -until a server from every tagged group has responded negatively to the name query request. -If a timeout occurs when querying a specific WINS server, that server is marked as down to -prevent further timeouts and the next server in the WINS group is contacted. Once marked as -dead, Samba will not attempt to contact that server for name registration/resolution queries -for a period of 10 minutes. - - - - diff --git a/docs/docbook/manpages/findsmb.1.sgml b/docs/docbook/manpages/findsmb.1.sgml deleted file mode 100644 index 0b3bbca0176..00000000000 --- a/docs/docbook/manpages/findsmb.1.sgml +++ /dev/null @@ -1,142 +0,0 @@ - - - - - findsmb - 1 - - - - - findsmb - list info about machines that respond to SMB - name queries on a subnet - - - - - findsmb - subnet broadcast address - - - - - DESCRIPTION - - This perl script is part of the - Samba suite. - - findsmb is a perl script that - prints out several pieces of information about machines - on a subnet that respond to SMB name query requests. - It uses - nmblookup(1) and - smbclient(1) to obtain this information. - - - - - OPTIONS - - - - -r - Controls whether findsmb takes - bugs in Windows95 into account when trying to find a Netbios name - registered of the remote machine. This option is disabled by default - because it is specific to Windows 95 and Windows 95 machines only. - If set, nmblookup - will be called with -B option. - - - subnet broadcast address - Without this option, findsmb - will probe the subnet of the machine where - findsmb is run. This value is passed - to nmblookup as part of the - -B option. - - - - - - EXAMPLES - - The output of findsmb lists the following - information for all machines that respond to the initial - nmblookup for any name: IP address, NetBIOS name, - Workgroup name, operating system, and SMB server version. - - There will be a '+' in front of the workgroup name for - machines that are local master browsers for that workgroup. There - will be an '*' in front of the workgroup name for - machines that are the domain master browser for that workgroup. - Machines that are running Windows, Windows 95 or Windows 98 will - not show any information about the operating system or server - version. - - The command with -r option - must be run on a system without nmbd running. - If nmbd is running on the system, you will - only get the IP address and the DNS name of the machine. To - get proper responses from Windows 95 and Windows 98 machines, - the command must be run as root and with -r - option on a machine without nmbd running. - - For example, running findsmb without - -r option set would yield output similar - to the following - - -IP ADDR NETBIOS NAME WORKGROUP/OS/VERSION ---------------------------------------------------------------------- -192.168.35.10 MINESET-TEST1 [DMVENGR] -192.168.35.55 LINUXBOX *[MYGROUP] [Unix] [Samba 2.0.6] -192.168.35.56 HERBNT2 [HERB-NT] -192.168.35.63 GANDALF [MVENGR] [Unix] [Samba 2.0.5a for IRIX] -192.168.35.65 SAUNA [WORKGROUP] [Unix] [Samba 1.9.18p10] -192.168.35.71 FROGSTAR [ENGR] [Unix] [Samba 2.0.0 for IRIX] -192.168.35.78 HERBDHCP1 +[HERB] -192.168.35.88 SCNT2 +[MVENGR] [Windows NT 4.0] [NT LAN Manager 4.0] -192.168.35.93 FROGSTAR-PC [MVENGR] [Windows 5.0] [Windows 2000 LAN Manager] -192.168.35.97 HERBNT1 *[HERB-NT] [Windows NT 4.0] [NT LAN Manager 4.0] - - - - - - - VERSION - - This man page is correct for version 3.0 of - the Samba suite. - - - - SEE ALSO - nmbd(8), - smbclient(1) - , and - nmblookup(1) - - - - - AUTHOR - - The original Samba software and related utilities - were created by Andrew Tridgell. Samba is now developed - by the Samba Team as an Open Source project similar - to the way the Linux kernel is developed. - - The original Samba man pages were written by Karl Auer. - The man page sources were converted to YODL format (another - excellent piece of Open Source software, available at - - ftp://ftp.icce.rug.nl/pub/unix/) and updated for the Samba 2.0 - release by Jeremy Allison. The conversion to DocBook for - Samba 2.2 was done by Gerald Carter - - - diff --git a/docs/docbook/manpages/lmhosts.5.sgml b/docs/docbook/manpages/lmhosts.5.sgml deleted file mode 100644 index 7934c18e8ec..00000000000 --- a/docs/docbook/manpages/lmhosts.5.sgml +++ /dev/null @@ -1,114 +0,0 @@ - - - - - lmhosts - 5 - - - - - lmhosts - The Samba NetBIOS hosts file - - - - lmhosts is the - Samba NetBIOS name to IP address mapping file. - - - - DESCRIPTION - - This file is part of the - Samba suite. - - lmhosts is the Samba - NetBIOS name to IP address mapping file. It - is very similar to the /etc/hosts file - format, except that the hostname component must correspond - to the NetBIOS naming format. - - - - FILE FORMAT - It is an ASCII file containing one line for NetBIOS name. - The two fields on each line are separated from each other by - white space. Any entry beginning with '#' is ignored. Each line - in the lmhosts file contains the following information : - - - IP Address - in dotted decimal format. - - - NetBIOS Name - This name format is a - maximum fifteen character host name, with an optional - trailing '#' character followed by the NetBIOS name type - as two hexadecimal digits. - - If the trailing '#' is omitted then the given IP - address will be returned for all names that match the given - name, whatever the NetBIOS name type in the lookup. - - - - An example follows : - - -# -# Sample Samba lmhosts file. -# -192.9.200.1 TESTPC -192.9.200.20 NTSERVER#20 -192.9.200.21 SAMBASERVER - - - Contains three IP to NetBIOS name mappings. The first - and third will be returned for any queries for the names "TESTPC" - and "SAMBASERVER" respectively, whatever the type component of - the NetBIOS name requested. - - The second mapping will be returned only when the "0x20" name - type for a name "NTSERVER" is queried. Any other name type will not - be resolved. - - The default location of the lmhosts file - is in the same directory as the - smb.conf(5)> file. - - - - - VERSION - - This man page is correct for version 2.2 of - the Samba suite. - - - - SEE ALSO - smbclient(1) - , - smb.conf(5), and - smbpasswd(8) - - - - - AUTHOR - - The original Samba software and related utilities - were created by Andrew Tridgell. Samba is now developed - by the Samba Team as an Open Source project similar - to the way the Linux kernel is developed. - - The original Samba man pages were written by Karl Auer. - The man page sources were converted to YODL format (another - excellent piece of Open Source software, available at - - ftp://ftp.icce.rug.nl/pub/unix/) and updated for the Samba 2.0 - release by Jeremy Allison. The conversion to DocBook for - Samba 2.2 was done by Gerald Carter - - - diff --git a/docs/docbook/manpages/net.8.sgml b/docs/docbook/manpages/net.8.sgml deleted file mode 100644 index aab9032f147..00000000000 --- a/docs/docbook/manpages/net.8.sgml +++ /dev/null @@ -1,348 +0,0 @@ - - - - - net - 8 - - - - - net - Tool for administration of Samba and remote - CIFS servers. - - - - - net - <ads|rap|rpc> - -h - -w workgroup - -W myworkgroup - -U user - -I ip-address - -p port - -n myname - -s conffile - -S server - -C comment - -M maxusers - -F flags - -j jobid - -l - -r - -f - -t timeout - -P - -D debuglevel - - - - - DESCRIPTION - - This tool is part of the - Samba suite. - - The samba net utility is meant to work just like the net utility - available for windows and DOS. - - - - - OPTIONS - - - - -h - - Display summary of all available options. - - - - - - -w target-workgroup - - Sets target workgroup or domain. You have to specify either this option or the IP address or the name of a server. - - - - - -W workgroup - - Sets client workgroup or domain - - - - - -U user - - User name to use - - - - - -I ip-address - - IP address of target server to use. You have to specify either this option or a target workgroup or a target server. - - - - - -p port - - Port on the target server to connect to. - - - - - -n myname - - Sets name of the client. - - - - - -s conffile - - Specify alternative configuration file that should be loaded. - - - - - -S server - - Name of target server. You should specify either this option or a target workgroup or a target IP address. - - - - - -C comment - - FIXME - - - - - -M maxusers - - FIXME - - - - - -F flags - - FIXME - - - - - -j jobid - - FIXME - - - - - -l - - FIXME - - - - - -r - - FIXME - - - - - -f - - FIXME - - - - - -t timeout - - FIXME - - - - - -P - - Make queries to the external server using the machine account of the local server. - - - - - -D debuglevel - set the debuglevel. Debug level 0 is the lowest - and 100 being the highest. This should be set to 100 if you are - planning on submitting a bug report to the Samba team (see - BUGS.txt). - - - - - - - - TIME - - The NET TIME command allows you to view the time on a remote server - or synchronise the time on the local server with the time on the remote server. - - - - - - Without any options, the NET TIME command - displays the time on the remote server. - - - - - SYSTEM - - Displays the time on the remote server in a format ready for /bin/date - - - - - SET - - Tries to set the date and time of the local server to that on - the remote server using /bin/date. - - - - - ZONE - - Displays the timezone in hours from GMT on the remote computer. - - - - - - - RPC - - The NET RPC command allows you to do various - NT4 operations. - - - - JOIN -U username[%password] [options] - - Join a domain with specified username and password. Password - will be prompted if none is specified. - - - - - JOIN [options except -U] - - to join a domain created in server manager - - - - - USER [misc. options] [targets] - - List users - - - - - USER DELETE <name> [misc options] - - delete specified user - - - - - USER INFO <name> [misc options] - - list the domain groups of the specified user - - - - - USER ADD <name> [password] [-F user flags] [misc. options - - Add specified user - - - - - GROUP [misc options] [targets] - - List user groups - - - - - GROUP DELETE <name> [misc. options] [targets] - - Delete specified group - - - - - GROUP ADD <name> [-C comment] - - Create specified group - - - - - SHARE [misc. options] [targets] - - enumerates all exported resources (network shares) on target server - - - - - SHARE ADD <name=serverpath> [misc. options] [targets] - - Adds a share from a server (makes the export active) - - - - - SHARE DELETE <sharenam - - - - - - - VERSION - - This man page is incomplete for version 3.0 of the Samba - suite. - - - - AUTHOR - - The original Samba software and related utilities - were created by Andrew Tridgell. Samba is now developed - by the Samba Team as an Open Source project similar - to the way the Linux kernel is developed. - - The original Samba man pages were written by Karl Auer. - The current set of manpages and documentation is maintained - by the Samba Team in the same fashion as the Samba source code. - - - - diff --git a/docs/docbook/manpages/nmbd.8.sgml b/docs/docbook/manpages/nmbd.8.sgml deleted file mode 100644 index db920c79a1c..00000000000 --- a/docs/docbook/manpages/nmbd.8.sgml +++ /dev/null @@ -1,381 +0,0 @@ - - - - - nmbd - 8 - - - - - nmbd - NetBIOS name server to provide NetBIOS - over IP naming services to clients - - - - - nmbd - -D - -F - -S - -a - -i - -o - -h - -V - -d <debug level> - -H <lmhosts file> - -l <log directory> - -n <primary netbios name> - -p <port number> - -s <configuration file> - - - - - DESCRIPTION - This program is part of the Samba suite. - - nmbd is a server that understands - and can reply to NetBIOS over IP name service requests, like - those produced by SMB/CIFS clients such as Windows 95/98/ME, - Windows NT, Windows 2000, Windows XP and LanManager clients. It also - participates in the browsing protocols which make up the - Windows "Network Neighborhood" view. - - SMB/CIFS clients, when they start up, may wish to - locate an SMB/CIFS server. That is, they wish to know what - IP number a specified host is using. - - Amongst other services, nmbd will - listen for such requests, and if its own NetBIOS name is - specified it will respond with the IP number of the host it - is running on. Its "own NetBIOS name" is by - default the primary DNS name of the host it is running on, - but this can be overridden with the -n - option (see OPTIONS below). Thus nmbd will - reply to broadcast queries for its own name(s). Additional - names for nmbd to respond on can be set - via parameters in the - smb.conf(5) configuration file. - - nmbd can also be used as a WINS - (Windows Internet Name Server) server. What this basically means - is that it will act as a WINS database server, creating a - database from name registration requests that it receives and - replying to queries from clients for these names. - - In addition, nmbd can act as a WINS - proxy, relaying broadcast queries from clients that do - not understand how to talk the WINS protocol to a WINS - server. - - - - OPTIONS - - - - -D - If specified, this parameter causes - nmbd to operate as a daemon. That is, - it detaches itself and runs in the background, fielding - requests on the appropriate port. By default, nmbd - will operate as a daemon if launched from a command shell. - nmbd can also be operated from the inetd - meta-daemon, although this is not recommended. - - - - - -F - If specified, this parameter causes - the main nmbd process to not daemonize, - i.e. double-fork and disassociate with the terminal. - Child processes are still created as normal to service - each connection request, but the main process does not - exit. This operation mode is suitable for running - nmbd under process supervisors such - as supervise and svscan - from Daniel J. Bernstein's daemontools - package, or the AIX process monitor. - - - - - -S - If specified, this parameter causes - nmbd to log to standard output rather - than a file. - - - - -a - If this parameter is specified, each new - connection will append log messages to the log file. - This is the default. - - - - -i - If this parameter is specified it causes the - server to run "interactively", not as a daemon, even if the - server is executed on the command line of a shell. Setting this - parameter negates the implicit daemon mode when run from the - command line. nmbd also logs to standard - output, as if the -S parameter had been - given. - - - - -o - If this parameter is specified, the - log files will be overwritten when opened. By default, - smbd will append entries to the log - files. - - - - -h - Prints the help information (usage) - for nmbd. - - - - -H <filename> - NetBIOS lmhosts file. The lmhosts - file is a list of NetBIOS names to IP addresses that - is loaded by the nmbd server and used via the name - resolution mechanism - name resolve order described in smb.conf(5) - to resolve any NetBIOS name queries needed by the server. Note - that the contents of this file are NOT - used by nmbd to answer any name queries. - Adding a line to this file affects name NetBIOS resolution - from this host ONLY. - - The default path to this file is compiled into - Samba as part of the build process. Common defaults - are /usr/local/samba/lib/lmhosts, - /usr/samba/lib/lmhosts or - /etc/lmhosts. See the - lmhosts(5) - man page for details on the contents of this file. - - - - -V - Prints the version number for - nmbd. - - - - -d <debug level> - debuglevel is an integer - from 0 to 10. The default value if this parameter is - not specified is zero. - - The higher this value, the more detail will - be logged to the log files about the activities of the - server. At level 0, only critical errors and serious - warnings will be logged. Level 1 is a reasonable level for - day to day running - it generates a small amount of - information about operations carried out. - - Levels above 1 will generate considerable amounts - of log data, and should only be used when investigating - a problem. Levels above 3 are designed for use only by developers - and generate HUGE amounts of log data, most of which is extremely - cryptic. - - Note that specifying this parameter here will override - the log level - parameter in the - smb.conf(5) file. - - - - -l <log directory> - The -l parameter specifies a directory - into which the "log.nmbd" log file will be created - for operational data from the running nmbd - server. The default log directory is compiled into Samba - as part of the build process. Common defaults are - /usr/local/samba/var/log.nmb, - /usr/samba/var/log.nmb or - /var/log/log.nmb. Beware: - If the directory specified does not exist, nmbd - will log to the default debug log location defined at compile time. - - - - - - -n <primary NetBIOS name> - This option allows you to override - the NetBIOS name that Samba uses for itself. This is identical - to setting the - NetBIOS name parameter in the - smb.conf file. However, a command - line setting will take precedence over settings in - smb.conf. - - - - - -p <UDP port number> - UDP port number is a positive integer value. - This option changes the default UDP port number (normally 137) - that nmbd responds to name queries on. Don't - use this option unless you are an expert, in which case you - won't need help! - - - - -s <configuration file> - The default configuration file name - is set at build time, typically as - /usr/local/samba/lib/smb.conf, but - this may be changed when Samba is autoconfigured. - - The file specified contains the configuration details - required by the server. See - smb.conf(5) for more information. - - - - - - - FILES - - - - /etc/inetd.conf - If the server is to be run by the - inetd meta-daemon, this file - must contain suitable startup information for the - meta-daemon. See the UNIX_INSTALL.html document - for details. - - - - - /etc/rc - or whatever initialization script your - system uses). - - If running the server as a daemon at startup, - this file will need to contain an appropriate startup - sequence for the server. See the UNIX_INSTALL.html document - for details. - - - - /etc/services - If running the server via the - meta-daemon inetd, this file - must contain a mapping of service name (e.g., netbios-ssn) - to service port (e.g., 139) and protocol type (e.g., tcp). - See the UNIX_INSTALL.html - document for details. - - - - /usr/local/samba/lib/smb.conf - This is the default location of the - smb.conf - server configuration file. Other common places that systems - install this file are /usr/samba/lib/smb.conf - and /etc/smb.conf. - - When run as a WINS server (see the - wins support - parameter in the smb.conf(5) man page), - nmbd - will store the WINS database in the file wins.dat - in the var/locks directory configured under - wherever Samba was configured to install itself. - - If nmbd is acting as a - browse master (see the local master - parameter in the smb.conf(5) man page, - nmbd - will store the browsing database in the file browse.dat - in the var/locks directory - configured under wherever Samba was configured to install itself. - - - - - - - SIGNALS - - To shut down an nmbd process it is recommended - that SIGKILL (-9) NOT be used, except as a last - resort, as this may leave the name database in an inconsistent state. - The correct way to terminate nmbd is to send it - a SIGTERM (-15) signal and wait for it to die on its own. - - nmbd will accept SIGHUP, which will cause - it to dump out its namelists into the file namelist.debug - in the /usr/local/samba/var/locks - directory (or the var/locks directory configured - under wherever Samba was configured to install itself). This will also - cause nmbd to dump out its server database in - the log.nmb file. - - The debug log level of nmbd may be raised or lowered using - smbcontrol(1) - (SIGUSR[1|2] signals are no longer used in Samba 2.2). This is - to allow transient problems to be diagnosed, whilst still running - at a normally low log level. - - - - - VERSION - - This man page is correct for version 3.0 of - the Samba suite. - - - - SEE ALSO - inetd(8), smbd(8), - smb.conf(5) - , smbclient(1) - , - testparm(1), - testprns(1), and the Internet RFC's - rfc1001.txt, rfc1002.txt. - In addition the CIFS (formerly SMB) specification is available - as a link from the Web page - http://samba.org/cifs/. - - - - AUTHOR - - The original Samba software and related utilities - were created by Andrew Tridgell. Samba is now developed - by the Samba Team as an Open Source project similar - to the way the Linux kernel is developed. - - The original Samba man pages were written by Karl Auer. - The man page sources were converted to YODL format (another - excellent piece of Open Source software, available at - - ftp://ftp.icce.rug.nl/pub/unix/) and updated for the Samba 2.0 - release by Jeremy Allison. The conversion to DocBook for - Samba 2.2 was done by Gerald Carter - - - diff --git a/docs/docbook/manpages/nmblookup.1.sgml b/docs/docbook/manpages/nmblookup.1.sgml deleted file mode 100644 index 7bec00949cd..00000000000 --- a/docs/docbook/manpages/nmblookup.1.sgml +++ /dev/null @@ -1,262 +0,0 @@ - - - - - nmblookup - 1 - - - - - nmblookup - NetBIOS over TCP/IP client used to lookup NetBIOS - names - - - - - nmblookup - -M - -R - -S - -r - -A - -h - -B <broadcast address> - -U <unicast address> - -d <debug level> - -s <smb config file> - -i <NetBIOS scope> - -T - -f - name - - - - - DESCRIPTION - - This tool is part of the - Samba suite. - - nmblookup is used to query NetBIOS names - and map them to IP addresses in a network using NetBIOS over TCP/IP - queries. The options allow the name queries to be directed at a - particular IP broadcast area or to a particular machine. All queries - are done over UDP. - - - - OPTIONS - - - - -M - Searches for a master browser by looking - up the NetBIOS name name with a - type of 0x1d. If - name is "-" then it does a lookup on the special name - __MSBROWSE__. Please note that in order to - use the name "-", you need to make sure "-" isn't parsed as an - argument, e.g. use : - nmblookup -M -- -. - - - - -R - Set the recursion desired bit in the packet - to do a recursive lookup. This is used when sending a name - query to a machine running a WINS server and the user wishes - to query the names in the WINS server. If this bit is unset - the normal (broadcast responding) NetBIOS processing code - on a machine is used instead. See rfc1001, rfc1002 for details. - - - - - -S - Once the name query has returned an IP - address then do a node status query as well. A node status - query returns the NetBIOS names registered by a host. - - - - - - -r - Try and bind to UDP port 137 to send and receive UDP - datagrams. The reason for this option is a bug in Windows 95 - where it ignores the source port of the requesting packet - and only replies to UDP port 137. Unfortunately, on most UNIX - systems root privilege is needed to bind to this port, and - in addition, if the nmbd(8) - daemon is running on this machine it also binds to this port. - - - - - - -A - Interpret name as - an IP Address and do a node status query on this address. - - - - - - - -h - Print a help (usage) message. - - - - - - -B <broadcast address> - Send the query to the given broadcast address. Without - this option the default behavior of nmblookup is to send the - query to the broadcast address of the network interfaces as - either auto-detected or defined in the interfaces - parameter of the smb.conf (5) file. - - - - - - - -U <unicast address> - Do a unicast query to the specified address or - host unicast address. This option - (along with the -R option) is needed to - query a WINS server. - - - - - -d <debuglevel> - debuglevel is an integer from 0 to 10. - - The default value if this parameter is not specified - is zero. - - The higher this value, the more detail will be logged - about the activities of nmblookup. At level - 0, only critical errors and serious warnings will be logged. - - Levels above 1 will generate considerable amounts of - log data, and should only be used when investigating a problem. - Levels above 3 are designed for use only by developers and - generate HUGE amounts of data, most of which is extremely cryptic. - - Note that specifying this parameter here will override - the - log level parameter in the - smb.conf(5) file. - - - - -s <smb.conf> - This parameter specifies the pathname to - the Samba configuration file, - smb.conf(5). This file controls all aspects of - the Samba setup on the machine. - - - - -i <scope> - This specifies a NetBIOS scope that - nmblookup will use to communicate with when - generating NetBIOS names. For details on the use of NetBIOS - scopes, see rfc1001.txt and rfc1002.txt. NetBIOS scopes are - very rarely used, only set this parameter - if you are the system administrator in charge of all the - NetBIOS systems you communicate with. - - - - - -T - This causes any IP addresses found in the - lookup to be looked up via a reverse DNS lookup into a - DNS name, and printed out before each - - IP address .... NetBIOS name - - pair that is the normal output. - - - - -f - - Show which flags apply to the name that has been looked up. Possible - answers are zero or more of: Response, Authoritative, - Truncated, Recursion_Desired, Recursion_Available, Broadcast. - - - - - - name - This is the NetBIOS name being queried. Depending - upon the previous options this may be a NetBIOS name or IP address. - If a NetBIOS name then the different name types may be specified - by appending '#<type>' to the name. This name may also be - '*', which will return all registered names within a broadcast - area. - - - - - - - EXAMPLES - - nmblookup can be used to query - a WINS server (in the same way nslookup is - used to query DNS servers). To query a WINS server, - nmblookup must be called like this: - - nmblookup -U server -R 'name' - - For example, running : - - nmblookup -U samba.org -R 'IRIX#1B' - - would query the WINS server samba.org for the domain - master browser (1B name type) for the IRIX workgroup. - - - - VERSION - - This man page is correct for version 3.0 of - the Samba suite. - - - - SEE ALSO - nmbd(8), - samba(7), and smb.conf(5) - - - - - AUTHOR - - The original Samba software and related utilities - were created by Andrew Tridgell. Samba is now developed - by the Samba Team as an Open Source project similar - to the way the Linux kernel is developed. - - The original Samba man pages were written by Karl Auer. - The man page sources were converted to YODL format (another - excellent piece of Open Source software, available at - - ftp://ftp.icce.rug.nl/pub/unix/) and updated for the Samba 2.0 - release by Jeremy Allison. The conversion to DocBook for - Samba 2.2 was done by Gerald Carter - - - diff --git a/docs/docbook/manpages/pdbedit.8.sgml b/docs/docbook/manpages/pdbedit.8.sgml deleted file mode 100644 index 3454b7d7faa..00000000000 --- a/docs/docbook/manpages/pdbedit.8.sgml +++ /dev/null @@ -1,366 +0,0 @@ - %globalentities; -]> - - - - pdbedit - 8 - - - - - pdbedit - manage the SAM database - - - - - pdbedit - -l - -v - -w - -u username - -f fullname - -h homedir - -D drive - -S script - -p profile - -a - -m - -x - -i passdb-backend - -e passdb-backend - -g - -b passdb-backend - -d debuglevel - -s configfile - -P account-policy - -V value - - - - - DESCRIPTION - - This tool is part of the - Samba suite. - - The pdbedit program is used to manage the users accounts - stored in the sam database and can only be run by root. - - The pdbedit tool uses the passdb modular interface and is - independent from the kind of users database used (currently there - are smbpasswd, ldap, nis+ and tdb based and more can be added - without changing the tool). - - There are five main ways to use pdbedit: adding a user account, - removing a user account, modifing a user account, listing user - accounts, importing users accounts. - - - - OPTIONS - - - -l - This option lists all the user accounts - present in the users database. - This option prints a list of user/uid pairs separated by - the ':' character. - - Example: pdbedit -l - - sorce:500:Simo Sorce - samba:45:Test User - - - - - - - - -v - This option enables the verbose listing format. - It causes pdbedit to list the users in the database, printing - out the account fields in a descriptive format. - - Example: pdbedit -l -v - - --------------- - username: sorce - user ID/Group: 500/500 - user RID/GRID: 2000/2001 - Full Name: Simo Sorce - Home Directory: \\BERSERKER\sorce - HomeDir Drive: H: - Logon Script: \\BERSERKER\netlogon\sorce.bat - Profile Path: \\BERSERKER\profile - --------------- - username: samba - user ID/Group: 45/45 - user RID/GRID: 1090/1091 - Full Name: Test User - Home Directory: \\BERSERKER\samba - HomeDir Drive: - Logon Script: - Profile Path: \\BERSERKER\profile - - - - - - - - -w - This option sets the "smbpasswd" listing format. - It will make pdbedit list the users in the database, printing - out the account fields in a format compatible with the - smbpasswd file format. (see the smbpasswd(5) for details) - - Example: pdbedit -l -w - - sorce:500:508818B733CE64BEAAD3B435B51404EE:D2A2418EFC466A8A0F6B1DBB5C3DB80C:[UX ]:LCT-00000000: - samba:45:0F2B255F7B67A7A9AAD3B435B51404EE:BC281CE3F53B6A5146629CD4751D3490:[UX ]:LCT-3BFA1E8D: - - - - - - - -u username - This option specifies the username to be - used for the operation requested (listing, adding, removing). - It is required in add, remove and modify - operations and optional in list - operations. - - - - - - - -f fullname - This option can be used while adding or - modifing a user account. It will specify the user's full - name. - - Example: -f "Simo Sorce" - - - - - - - -h homedir - This option can be used while adding or - modifing a user account. It will specify the user's home - directory network path. - - Example: -h "\\\\BERSERKER\\sorce" - - - - - - - -D drive - This option can be used while adding or - modifing a user account. It will specify the windows drive - letter to be used to map the home directory. - - Example: -d "H:" - - - - - - - -S script - This option can be used while adding or - modifing a user account. It will specify the user's logon - script path. - - Example: -s "\\\\BERSERKER\\netlogon\\sorce.bat" - - - - - - - -p profile - This option can be used while adding or - modifing a user account. It will specify the user's profile - directory. - - Example: -p "\\\\BERSERKER\\netlogon" - - - - - - - -a - This option is used to add a user into the - database. This command needs a user name specified with - the -u switch. When adding a new user, pdbedit will also - ask for the password to be used. - - Example: pdbedit -a -u sorce - new password: - retype new password - - - - - - - - -m - This option may only be used in conjunction - with the -a option. It will make - pdbedit to add a machine trust account instead of a user - account (-u username will provide the machine name). - - Example: pdbedit -a -m -u w2k-wks - - - - - - - -x - This option causes pdbedit to delete an account - from the database. It needs a username specified with the - -u switch. - - Example: pdbedit -x -u bob - - - - - - -i passdb-backend - Use a different passdb backend to retrieve users - than the one specified in smb.conf. Can be used to import data into - your local user database. - - This option will ease migration from one passdb backend to - another. - - Example: pdbedit -i smbpasswd:/etc/smbpasswd.old - - - - - - -e passdb-backend - Exports all currently available users to the - specified password database backend. - - This option will ease migration from one passdb backend to - another and will ease backing up. - - Example: pdbedit -e smbpasswd:/root/samba-users.backup - - - - - -g - If you specify -g, - then -i in-backend -e out-backend - applies to the group mapping instead of the user database. - - - This option will ease migration from one passdb backend to - another and will ease backing up. - - - - - - -b passdb-backend - Use a different default passdb backend. - - Example: pdbedit -b xml:/root/pdb-backup.xml -l - - - - - -P account-policy - Display an account policy - Valid policies are: minimum password age, reset count minutes, disconnect time, - user must logon to change password, password history, lockout duration, min password length, - maximum password age and bad lockout attempt. - - Example: pdbedit -P "bad lockout attempt" - - account policy value for bad lockout attempt is 0 - - - - - - - -V account-policy-value - Sets an account policy to a specified value. - This option may only be used in conjunction - with the -P option. - - - Example: pdbedit -P "bad lockout attempt" -V 3 - - account policy value for bad lockout attempt was 0 - account policy value for bad lockout attempt is now 3 - - - - - &stdarg.debuglevel; - &stdarg.help; - &stdarg.configfile; - - - - - - - NOTES - - This command may be used only by root. - - - - - VERSION - - This man page is correct for version 2.2 of - the Samba suite. - - - - SEE ALSO - smbpasswd(8), - samba(7) - - - - - AUTHOR - - The original Samba software and related utilities - were created by Andrew Tridgell. Samba is now developed - by the Samba Team as an Open Source project similar - to the way the Linux kernel is developed. - - The original Samba man pages were written by Karl Auer. - The man page sources were converted to YODL format (another - excellent piece of Open Source software, available at - - ftp://ftp.icce.rug.nl/pub/unix/) and updated for the Samba 2.0 - release by Jeremy Allison. The conversion to DocBook for - Samba 2.2 was done by Gerald Carter - - - diff --git a/docs/docbook/manpages/rpcclient.1.sgml b/docs/docbook/manpages/rpcclient.1.sgml deleted file mode 100644 index 10e0ff438d5..00000000000 --- a/docs/docbook/manpages/rpcclient.1.sgml +++ /dev/null @@ -1,428 +0,0 @@ - %globalentities; -]> - - - - rpcclient - 1 - - - - - rpcclient - tool for executing client side - MS-RPC functions - - - - - rpcclient - -A authfile - -c <command string> - -d debuglevel - -h - -l logfile - -N - -s <smb config file> - -U username[%password] - -W workgroup - -N - -I destinationIP - server - - - - - DESCRIPTION - - This tool is part of the - Samba suite. - - rpcclient is a utility initially developed - to test MS-RPC functionality in Samba itself. It has undergone - several stages of development and stability. Many system administrators - have now written scripts around it to manage Windows NT clients from - their UNIX workstation. - - - - - OPTIONS - - - - server - NetBIOS name of Server to which to connect. - The server can be any SMB/CIFS server. The name is - resolved using the - name resolve order line from - smb.conf(5). - - - - - -A|--authfile=filename - This option allows - you to specify a file from which to read the username and - password used in the connection. The format of the file is - - - - username = <value> - password = <value> - domain = <value> - - - Make certain that the permissions on the file restrict - access from unwanted users. - - - - - - -c|--command='command string' - execute semicolon separated commands (listed - below)) - - - - - - &stdarg.debuglevel; - &stdarg.help; - - - -I IP-address - IP address is the address of the server to connect to. - It should be specified in standard "a.b.c.d" notation. - - Normally the client would attempt to locate a named - SMB/CIFS server by looking it up via the NetBIOS name resolution - mechanism described above in the name resolve order - parameter above. Using this parameter will force the client - to assume that the server is on the machine with the specified IP - address and the NetBIOS name component of the resource being - connected to will be ignored. - - There is no default for this parameter. If not supplied, - it will be determined automatically by the client as described - above. - - - - - -l|--logfile=logbasename - File name for log/debug files. The extension - '.client' will be appended. The log file is - never removed by the client. - - - - - - - -N|--nopass - instruct rpcclient not to ask - for a password. By default, rpcclient will - prompt for a password. See also the -U - option. - - - - - -s|--conf=smb.conf - Specifies the location of the all-important - smb.conf file. - - - - - - -U|--user=username[%password] - Sets the SMB username or username and password. - - If %password is not specified, the user will be prompted. The - client will first check the USER environment variable, then the - LOGNAME variable and if either exists, the - string is uppercased. If these environmental variables are not - found, the username GUEST is used. - - A third option is to use a credentials file which - contains the plaintext of the username and password. This - option is mainly provided for scripts where the admin does not - wish to pass the credentials on the command line or via environment - variables. If this method is used, make certain that the permissions - on the file restrict access from unwanted users. See the - -A for more details. - - Be cautious about including passwords in scripts. Also, on - many systems the command line of a running process may be seen - via the ps command. To be safe always allow - rpcclient to prompt for a password and type - it in directly. - - - - - - - -W|--workgroup=domain - Set the SMB domain of the username. This - overrides the default domain which is the domain defined in - smb.conf. If the domain specified is the same as the server's NetBIOS name, - it causes the client to log on using the server's local SAM (as - opposed to the Domain SAM). - - - - - - - - - COMMANDS - - LSARPC - - lsaquery - - lookupsids - Resolve a list - of SIDs to usernames. - - - lookupnames - Resolve a list - of usernames to SIDs. - - - enumtrusts - - - - - - SAMR - - queryuser - querygroup - queryusergroups - querygroupmem - queryaliasmem - querydispinfo - querydominfo - enumdomgroups - - - - - - SPOOLSS - - - adddriver <arch> <config> - - Execute an AddPrinterDriver() RPC to install the printer driver - information on the server. Note that the driver files should - already exist in the directory returned by - getdriverdir. Possible values for - arch are the same as those for - the getdriverdir command. - The config parameter is defined as - follows: - - - Long Printer Name:\ - Driver File Name:\ - Data File Name:\ - Config File Name:\ - Help File Name:\ - Language Monitor Name:\ - Default Data Type:\ - Comma Separated list of Files - - - Any empty fields should be enter as the string "NULL". - - Samba does not need to support the concept of Print Monitors - since these only apply to local printers whose driver can make - use of a bi-directional link for communication. This field should - be "NULL". On a remote NT print server, the Print Monitor for a - driver must already be installed prior to adding the driver or - else the RPC will fail. - - - - - addprinter <printername> - <sharename> <drivername> <port> - - Add a printer on the remote server. This printer - will be automatically shared. Be aware that the printer driver - must already be installed on the server (see adddriver) - and the portmust be a valid port name (see - enumports. - - - - deldriver - Delete the - specified printer driver for all architectures. This - does not delete the actual driver files from the server, - only the entry from the server's list of drivers. - - - enumdata - Enumerate all - printer setting data stored on the server. On Windows NT clients, - these values are stored in the registry, while Samba servers - store them in the printers TDB. This command corresponds - to the MS Platform SDK GetPrinterData() function (* This - command is currently unimplemented). - - - - enumjobs <printer> - - List the jobs and status of a given printer. - This command corresponds to the MS Platform SDK EnumJobs() - function (* This command is currently unimplemented). - - - - - enumports [level] - - Executes an EnumPorts() call using the specified - info level. Currently only info levels 1 and 2 are supported. - - - - - enumdrivers [level] - - Execute an EnumPrinterDrivers() call. This lists the various installed - printer drivers for all architectures. Refer to the MS Platform SDK - documentation for more details of the various flags and calling - options. Currently supported info levels are 1, 2, and 3. - - - - enumprinters [level] - - Execute an EnumPrinters() call. This lists the various installed - and share printers. Refer to the MS Platform SDK documentation for - more details of the various flags and calling options. Currently - supported info levels are 0, 1, and 2. - - - - - getdata <printername> - - Retrieve the data for a given printer setting. See - the enumdata command for more information. - This command corresponds to the GetPrinterData() MS Platform - SDK function (* This command is currently unimplemented). - - - - getdriver <printername> - - Retrieve the printer driver information (such as driver file, - config file, dependent files, etc...) for - the given printer. This command corresponds to the GetPrinterDriver() - MS Platform SDK function. Currently info level 1, 2, and 3 are supported. - - - - getdriverdir <arch> - - Execute a GetPrinterDriverDirectory() - RPC to retrieve the SMB share name and subdirectory for - storing printer driver files for a given architecture. Possible - values for arch are "Windows 4.0" - (for Windows 95/98), "Windows NT x86", "Windows NT PowerPC", "Windows - Alpha_AXP", and "Windows NT R4000". - - - - getprinter <printername> - - Retrieve the current printer information. This command - corresponds to the GetPrinter() MS Platform SDK function. - - - - - openprinter <printername> - - Execute an OpenPrinterEx() and ClosePrinter() RPC - against a given printer. - - - setdriver <printername> - <drivername> - - Execute a SetPrinter() command to update the printer driver - associated with an installed printer. The printer driver must - already be correctly installed on the print server. - - See also the enumprinters and - enumdrivers commands for obtaining a list of - of installed printers and drivers. - - - - - GENERAL OPTIONS - - - debuglevel - Set the current - debug level used to log information. - - help (?) - Print a listing of all - known commands or extended help on a particular command. - - - quit (exit) - Exit rpcclient - . - - - - - - - BUGS - - rpcclient is designed as a developer testing tool - and may not be robust in certain areas (such as command line parsing). - It has been known to generate a core dump upon failures when invalid - parameters where passed to the interpreter. - - From Luke Leighton's original rpcclient man page: - - "WARNING! The MSRPC over SMB code has - been developed from examining Network traces. No documentation is - available from the original creators (Microsoft) on how MSRPC over - SMB works, or how the individual MSRPC services work. Microsoft's - implementation of these services has been demonstrated (and reported) - to be... a bit flaky in places. - - The development of Samba's implementation is also a bit rough, - and as more of the services are understood, it can even result in - versions of smbd(8) and rpcclient(1) - that are incompatible for some commands or services. Additionally, - the developers are sending reports to Microsoft, and problems found - or reported to Microsoft are fixed in Service Packs, which may - result in incompatibilities." - - - - - VERSION - - This man page is correct for version 3.0 of the Samba - suite. - - - - AUTHOR - - The original Samba software and related utilities - were created by Andrew Tridgell. Samba is now developed - by the Samba Team as an Open Source project similar - to the way the Linux kernel is developed. - - The original rpcclient man page was written by Matthew - Geddes, Luke Kenneth Casson Leighton, and rewritten by Gerald Carter. - The conversion to DocBook for Samba 2.2 was done by Gerald - Carter. - - - diff --git a/docs/docbook/manpages/samba.7.sgml b/docs/docbook/manpages/samba.7.sgml deleted file mode 100644 index 17865edd81e..00000000000 --- a/docs/docbook/manpages/samba.7.sgml +++ /dev/null @@ -1,216 +0,0 @@ - - - - - samba - 7 - - - - - SAMBA - A Windows SMB/CIFS fileserver for UNIX - - - - Samba - - - - DESCRIPTION - - The Samba software suite is a collection of programs - that implements the Server Message Block (commonly abbreviated - as SMB) protocol for UNIX systems. This protocol is sometimes - also referred to as the Common Internet File System (CIFS). For a - more thorough description, see - http://www.ubiqx.org/cifs/. Samba also implements the NetBIOS - protocol in nmbd. - - - - smbd - The smbd - daemon provides the file and print services to - SMB clients, such as Windows 95/98, Windows NT, Windows - for Workgroups or LanManager. The configuration file - for this daemon is described in smb.conf - - - - - nmbd - The nmbd - daemon provides NetBIOS nameservice and browsing - support. The configuration file for this daemon - is described in smb.conf - - - - - smbclient - The smbclient - program implements a simple ftp-like client. This - is useful for accessing SMB shares on other compatible - servers (such as Windows NT), and can also be used - to allow a UNIX box to print to a printer attached to - any SMB server (such as a PC running Windows NT). - - - - - testparm - The testparm - utility is a simple syntax checker for Samba's - smb.confconfiguration file. - - - - - testprns - The testprns - utility supports testing printer names defined - in your printcap file used - by Samba. - - - - - smbstatus - The smbstatus - tool provides access to information about the - current connections to smbd. - - - - - nmblookup - The nmblookup - tools allows NetBIOS name queries to be made - from a UNIX host. - - - - - make_smbcodepage - The make_smbcodepage - utility provides a means of creating SMB code page - definition files for your smbd server. - - - - - smbpasswd - The smbpasswd - command is a tool for changing LanMan and Windows NT - password hashes on Samba and Windows NT servers. - - - - - - - - COMPONENTS - - The Samba suite is made up of several components. Each - component is described in a separate manual page. It is strongly - recommended that you read the documentation that comes with Samba - and the manual pages of those components that you use. If the - manual pages and documents aren't clear enough then please visit - http://devel.samba.org - for information on how to file a bug report or submit a patch. - - If you require help, visit the Samba webpage at - http://www.samba.org/ and - explore the many option available to you. - - - - - AVAILABILITY - - The Samba software suite is licensed under the - GNU Public License(GPL). A copy of that license should - have come with the package in the file COPYING. You are - encouraged to distribute copies of the Samba suite, but - please obey the terms of this license. - - The latest version of the Samba suite can be - obtained via anonymous ftp from samba.org in the - directory pub/samba/. It is also available on several - mirror sites worldwide. - - You may also find useful information about Samba - on the newsgroup - comp.protocol.smb and the Samba mailing - list. Details on how to join the mailing list are given in - the README file that comes with Samba. - - If you have access to a WWW viewer (such as Netscape - or Mosaic) then you will also find lots of useful information, - including back issues of the Samba mailing list, at - http://lists.samba.org. - - - - VERSION - - This man page is correct for version 2.2 of the - Samba suite. - - - - CONTRIBUTIONS - - If you wish to contribute to the Samba project, - then I suggest you join the Samba mailing list at - http://lists.samba.org. - - - If you have patches to submit, visit - http://devel.samba.org/ - for information on how to do it properly. We prefer patches in - diff -u format. - - - - CONTRIBUTORS - - Contributors to the project are now too numerous - to mention here but all deserve the thanks of all Samba - users. To see a full list, look at - ftp://samba.org/pub/samba/alpha/change-log - for the pre-CVS changes and at - ftp://samba.org/pub/samba/alpha/cvs.log - for the contributors to Samba post-CVS. CVS is the Open Source - source code control system used by the Samba Team to develop - Samba. The project would have been unmanageable without it. - - In addition, several commercial organizations now help - fund the Samba Team with money and equipment. For details see - the Samba Web pages at - http://samba.org/samba/samba-thanks.html. - - - - AUTHOR - - The original Samba software and related utilities - were created by Andrew Tridgell. Samba is now developed - by the Samba Team as an Open Source project similar - to the way the Linux kernel is developed. - - The original Samba man pages were written by Karl Auer. - The man page sources were converted to YODL format (another - excellent piece of Open Source software, available at - - ftp://ftp.icce.rug.nl/pub/unix/) and updated for the Samba 2.0 - release by Jeremy Allison. The conversion to DocBook for - Samba 2.2 was done by Gerald Carter - - - diff --git a/docs/docbook/manpages/smb.conf.5.sgml b/docs/docbook/manpages/smb.conf.5.sgml deleted file mode 100644 index 5d120691e60..00000000000 --- a/docs/docbook/manpages/smb.conf.5.sgml +++ /dev/null @@ -1,8642 +0,0 @@ - - - - - smb.conf - 5 - - - - - smb.conf - The configuration file for the Samba suite - - - - SYNOPSIS - - The smb.conf file is a configuration - file for the Samba suite. smb.conf contains - runtime configuration information for the Samba programs. The - smb.conf file is designed to be configured and - administered by the swat(8) - program. The complete description of the file format and - possible parameters held within are here for reference purposes. - - - - FILE FORMAT - - The file consists of sections and parameters. A section - begins with the name of the section in square brackets and continues - until the next section begins. Sections contain parameters of the - form - - name = value - - - The file is line-based - that is, each newline-terminated - line represents either a comment, a section name or a parameter. - - Section and parameter names are not case sensitive. - - Only the first equals sign in a parameter is significant. - Whitespace before or after the first equals sign is discarded. - Leading, trailing and internal whitespace in section and parameter - names is irrelevant. Leading and trailing whitespace in a parameter - value is discarded. Internal whitespace within a parameter value - is retained verbatim. - - Any line beginning with a semicolon (';') or a hash ('#') - character is ignored, as are lines containing only whitespace. - - Any line ending in a '\' is continued - on the next line in the customary UNIX fashion. - - The values following the equals sign in parameters are all - either a string (no quotes needed) or a boolean, which may be given - as yes/no, 0/1 or true/false. Case is not significant in boolean - values, but is preserved in string values. Some items such as - create modes are numeric. - - - - SECTION DESCRIPTIONS - - Each section in the configuration file (except for the - [global] section) describes a shared resource (known - as a "share"). The section name is the name of the - shared resource and the parameters within the section define - the shares attributes. - - There are three special sections, [global], - [homes] and [printers], which are - described under special sections. The - following notes apply to ordinary section descriptions. - - A share consists of a directory to which access is being - given plus a description of the access rights which are granted - to the user of the service. Some housekeeping options are - also specifiable. - - Sections are either file share services (used by the - client as an extension of their native file systems) or - printable services (used by the client to access print services - on the host running the server). - - Sections may be designated guest services, - in which case no password is required to access them. A specified - UNIX guest account is used to define access - privileges in this case. - - Sections other than guest services will require a password - to access them. The client provides the username. As older clients - only provide passwords and not usernames, you may specify a list - of usernames to check against the password using the "user =" - option in the share definition. For modern clients such as - Windows 95/98/ME/NT/2000, this should not be necessary. - - Note that the access rights granted by the server are - masked by the access rights granted to the specified or guest - UNIX user by the host system. The server does not grant more - access than the host system grants. - - The following sample section defines a file space share. - The user has write access to the path /home/bar. - The share is accessed via the share name "foo": - - - - [foo] - path = /home/bar - read only = no - - - - The following sample section defines a printable share. - The share is readonly, but printable. That is, the only write - access permitted is via calls to open, write to and close a - spool file. The guest ok parameter means - access will be permitted as the default guest user (specified - elsewhere): - - - - [aprinter] - path = /usr/spool/public - read only = yes - printable = yes - guest ok = yes - - - - - - SPECIAL SECTIONS - - - The [global] section - - parameters in this section apply to the server - as a whole, or are defaults for sections which do not - specifically define certain items. See the notes - under PARAMETERS for more information. - - - - The [homes] section - - If a section called homes is included in the - configuration file, services connecting clients to their - home directories can be created on the fly by the server. - - When the connection request is made, the existing - sections are scanned. If a match is found, it is used. If no - match is found, the requested section name is treated as a - user name and looked up in the local password file. If the - name exists and the correct password has been given, a share is - created by cloning the [homes] section. - - Some modifications are then made to the newly - created share: - - - The share name is changed from homes to - the located username. - - If no path was given, the path is set to - the user's home directory. - - - If you decide to use a path = line - in your [homes] section then you may find it useful - to use the %S macro. For example : - - path = /data/pchome/%S - - would be useful if you have different home directories - for your PCs than for UNIX access. - - This is a fast and simple way to give a large number - of clients access to their home directories with a minimum - of fuss. - - A similar process occurs if the requested section - name is "homes", except that the share name is not - changed to that of the requesting user. This method of using - the [homes] section works well if different users share - a client PC. - - The [homes] section can specify all the parameters - a normal service section can specify, though some make more sense - than others. The following is a typical and suitable [homes] - section: - - - - [homes] - read only = no - - - - An important point is that if guest access is specified - in the [homes] section, all home directories will be - visible to all clients without a password. - In the very unlikely event that this is actually desirable, it - would be wise to also specify read only - access. - - Note that the browseable flag for - auto home directories will be inherited from the global browseable - flag, not the [homes] browseable flag. This is useful as - it means setting browseable = no in - the [homes] section will hide the [homes] share but make - any auto home directories visible. - - - - The [printers] section - - This section works like [homes], - but for printers. - - If a [printers] section occurs in the - configuration file, users are able to connect to any printer - specified in the local host's printcap file. - - When a connection request is made, the existing sections - are scanned. If a match is found, it is used. If no match is found, - but a [homes] section exists, it is used as described - above. Otherwise, the requested section name is treated as a - printer name and the appropriate printcap file is scanned to see - if the requested section name is a valid printer share name. If - a match is found, a new printer share is created by cloning - the [printers] section. - - A few modifications are then made to the newly created - share: - - - The share name is set to the located printer - name - - If no printer name was given, the printer name - is set to the located printer name - - If the share does not permit guest access and - no username was given, the username is set to the located - printer name. - - - Note that the [printers] service MUST be - printable - if you specify otherwise, the server will refuse - to load the configuration file. - - Typically the path specified would be that of a - world-writeable spool directory with the sticky bit set on - it. A typical [printers] entry would look like - this: - - - [printers] - path = /usr/spool/public - guest ok = yes - printable = yes - - - All aliases given for a printer in the printcap file - are legitimate printer names as far as the server is concerned. - If your printing subsystem doesn't work like that, you will have - to set up a pseudo-printcap. This is a file consisting of one or - more lines like this: - - - - alias|alias|alias|alias... - - - - Each alias should be an acceptable printer name for - your printing subsystem. In the [global] section, specify - the new file as your printcap. The server will then only recognize - names found in your pseudo-printcap, which of course can contain - whatever aliases you like. The same technique could be used - simply to limit access to a subset of your local printers. - - An alias, by the way, is defined as any component of the - first entry of a printcap record. Records are separated by newlines, - components (if there are more than one) are separated by vertical - bar symbols ('|'). - - NOTE: On SYSV systems which use lpstat to determine what - printers are defined on the system you may be able to use - "printcap name = lpstat" to automatically obtain a list - of printers. See the "printcap name" option - for more details. - - - - - PARAMETERS - - parameters define the specific attributes of sections. - - Some parameters are specific to the [global] section - (e.g., security). Some parameters are usable - in all sections (e.g., create mode). All others - are permissible only in normal sections. For the purposes of the - following descriptions the [homes] and [printers] - sections will be considered normal. The letter G - in parentheses indicates that a parameter is specific to the - [global] section. The letter S - indicates that a parameter can be specified in a service specific - section. Note that all S parameters can also be specified in - the [global] section - in which case they will define - the default behavior for all services. - - parameters are arranged here in alphabetical order - this may - not create best bedfellows, but at least you can find them! Where - there are synonyms, the preferred synonym is described, others refer - to the preferred synonym. - - - - VARIABLE SUBSTITUTIONS - - Many of the strings that are settable in the config file - can take substitutions. For example the option "path = - /tmp/%u" would be interpreted as "path = - /tmp/john" if the user connected with the username john. - - These substitutions are mostly noted in the descriptions below, - but there are some general substitutions which apply whenever they - might be relevant. These are: - - - - %U - session user name (the user name that the client - wanted, not necessarily the same as the one they got). - - - - %G - primary group name of %U. - - - - %h - the Internet hostname that Samba is running - on. - - - - %m - the NetBIOS name of the client machine - (very useful). - - - - %L - the NetBIOS name of the server. This allows you - to change your config based on what the client calls you. Your - server can have a "dual personality". - - Note that this parameter is not available when Samba listens - on port 445, as clients no longer send this information - - - - - - %M - the Internet name of the client machine. - - - - - %R - the selected protocol level after - protocol negotiation. It can be one of CORE, COREPLUS, - LANMAN1, LANMAN2 or NT1. - - - - %d - The process id of the current server - process. - - - - %a - the architecture of the remote - machine. Only some are recognized, and those may not be - 100% reliable. It currently recognizes Samba, WfWg, Win95, - WinNT and Win2k. Anything else will be known as - "UNKNOWN". If it gets it wrong then sending a level - 3 log to samba@samba.org - should allow it to be fixed. - - - - %I - The IP address of the client machine. - - - - - %T - the current date and time. - - - - %D - Name of the domain or workgroup of the current user. - - - - %$(envvar) - The value of the environment variable - envar. - - - - The following substitutes apply only to some configuration options(only those - that are used when a connection has been established): - - - - %S - the name of the current service, if any. - - - - - %P - the root directory of the current service, - if any. - - - - %u - user name of the current service, if any. - - - - - %g - primary group name of %u. - - - - %H - the home directory of the user given - by %u. - - - - %N - the name of your NIS home directory server. - This is obtained from your NIS auto.map entry. If you have - not compiled Samba with the --with-automount - option then this value will be the same as %L. - - - - - %p - the path of the service's home directory, - obtained from your NIS auto.map entry. The NIS auto.map entry - is split up as "%N:%p". - - - - There are some quite creative things that can be done - with these substitutions and other smb.conf options. - - - NAME MANGLING - - Samba supports "name mangling" so that DOS and - Windows clients can use files that don't conform to the 8.3 format. - It can also be set to adjust the case of 8.3 format filenames. - - There are several options that control the way mangling is - performed, and they are grouped here rather than listed separately. - For the defaults look at the output of the testparm program. - - All of these options can be set separately for each service - (or globally, of course). - - The options are: - - - - - mangle case = yes/no - controls if names that have characters that - aren't of the "default" case are mangled. For example, - if this is yes then a name like "Mail" would be mangled. - Default no. - - - - case sensitive = yes/no - controls whether filenames are case sensitive. If - they aren't then Samba must do a filename search and match on passed - names. Default no. - - - - default case = upper/lower - controls what the default case is for new - filenames. Default lower. - - - - preserve case = yes/no - controls if new files are created with the - case that the client passes, or if they are forced to be the - "default" case. Default yes. - - - - - short preserve case = yes/no - controls if new files which conform to 8.3 syntax, - that is all in upper case and of suitable length, are created - upper case, or if they are forced to be the "default" - case. This option can be use with "preserve case = yes" - to permit long filenames to retain their case, while short names - are lowercased. Default yes. - - - - By default, Samba 3.0 has the same semantics as a Windows - NT server, in that it is case insensitive but case preserving. - - - - - NOTE ABOUT USERNAME/PASSWORD VALIDATION - - There are a number of ways in which a user can connect - to a service. The server uses the following steps in determining - if it will allow a connection to a specified service. If all the - steps fail, then the connection request is rejected. However, if one of the - steps succeeds, then the following steps are not checked. - - If the service is marked "guest only = yes" and the - server is running with share-level security ("security = share") - then steps 1 to 5 are skipped. - - - - If the client has passed a username/password - pair and that username/password pair is validated by the UNIX - system's password programs then the connection is made as that - username. Note that this includes the - \\server\service%username method of passing - a username. - - If the client has previously registered a username - with the system and now supplies a correct password for that - username then the connection is allowed. - - The client's NetBIOS name and any previously - used user names are checked against the supplied password, if - they match then the connection is allowed as the corresponding - user. - - If the client has previously validated a - username/password pair with the server and the client has passed - the validation token then that username is used. - - If a "user = " field is given in the - smb.conf file for the service and the client - has supplied a password, and that password matches (according to - the UNIX system's password checking) with one of the usernames - from the "user =" field then the connection is made as - the username in the "user =" line. If one - of the username in the "user =" list begins with a - '@' then that name expands to a list of names in - the group of the same name. - - If the service is a guest service then a - connection is made as the username given in the "guest - account =" for the service, irrespective of the - supplied password. - - - - - - COMPLETE LIST OF GLOBAL PARAMETERS - - Here is a list of all global parameters. See the section of - each parameter for details. Note that some are synonyms. - - - abort shutdown script - add group script - addprinter command - add share command - add user script - add user to group script - add machine script - delete group script - ads server - algorithmic rid base - allow trusted domains - announce as - announce version - auth methods - auto services - bind interfaces only - browse list - change notify timeout - change share command - config file - deadtime - debug hires timestamp - debug pid - debug timestamp - debug uid - debuglevel - default - default service - deleteprinter command - delete share command - delete user script - delete user from group script - dfree command - disable netbios - disable spoolss - display charset - dns proxy - domain logons - domain master - dos charset - encrypt passwords - enhanced browsing - enumports command - getwd cache - hide local users - hide unreadable - hide unwriteable files - hide special files - homedir map - host msdfs - hostname lookups - hosts equiv - interfaces - keepalive - kernel oplocks - lanman auth - large readwrite - - ldap admin dn - ldap delete dn - ldap filter - ldap port - ldap server - ldap ssl - ldap suffix - ldap user suffix - ldap machine suffix - ldap passwd sync - ldap trust ids - - lm announce - lm interval - load printers - local master - lock dir - lock directory - lock spin count - lock spin time - pid directory - log file - log level - logon drive - logon home - logon path - logon script - lpq cache time - machine password timeout - mangled stack - map to guest - max disk size - max log size - max mux - max open files - max protocol - max smbd processes - max ttl - max wins ttl - max xmit - message command - min passwd length - min password length - min protocol - min wins ttl - name cache timeout - name resolve order - netbios aliases - netbios name - netbios scope - nis homedir - ntlm auth - non unix account range - nt pipe support - nt status support - null passwords - obey pam restrictions - oplock break wait time - os level - os2 driver map - pam password change - panic action - paranoid server security - passdb backend - passwd chat - passwd chat debug - passwd program - password level - password server - prefered master - preferred master - preload - printcap - printcap name - printer driver file - private dir - protocol - read bmpx - read raw - read size - realm - remote announce - remote browse sync - restrict anonymous - root - root dir - root directory - security - server schannel - server string - set primary group script - show add printer wizard - shutdown script - smb passwd file - smb ports - socket address - socket options - source environment - use spnego - stat cache - stat cache size - strip dot - syslog - syslog only - template homedir - template shell - time offset - time server - timestamp logs - total print jobs - unicode - unix charset - unix extensions - unix password sync - update encrypted - use mmap - use rhosts - use sendfile - username level - username map - utmp - utmp directory - wtmp directory - winbind cache time - winbind enum users - winbind enum groups - winbind gid - winbind separator - winbind uid - winbind use default domain - wins hook - wins partners - wins proxy - wins server - wins support - workgroup - write raw - - - - - - COMPLETE LIST OF SERVICE PARAMETERS - - Here is a list of all service parameters. See the section on - each parameter for details. Note that some are synonyms. - - - admin users - allow hosts - available - blocking locks -block size - browsable - browseable - case sensitive - casesignames - comment - copy - create mask - create mode - csc policy - - default case - default devmode - delete readonly - delete veto files - deny hosts - directory - directory mask - directory mode - directory security mask - dont descend - dos filemode - dos filetime resolution - dos filetimes - exec - fake directory create times - fake oplocks - follow symlinks - force create mode - force directory mode - force directory security mode - force group - force security mode - force user - fstype - group - guest account - guest ok - guest only - hide dot files - hide files - hosts allow - hosts deny - include - inherit acls - inherit permissions - invalid users - level2 oplocks - locking - lppause command - lpq command - lpresume command - lprm command - magic output - magic script - mangle case - mangled map - mangled names - mangling char - mangling method - map archive - map hidden - map system - max connections - max print jobs - min print space - msdfs proxy - msdfs root - nt acl support - only guest - only user - oplock contention limit - oplocks - path - posix locking - postexec - postscript - preexec - preexec close - preserve case - print command - print ok - printable - printer - printer admin - printer driver - printer driver location - printer name - printing - public - queuepause command - queueresume command - read list - read only - root postexec - root preexec - root preexec close - security mask - set directory - share modes - short preserve case - strict allocate - strict locking - strict sync - sync always - use client driver - user - username - users - valid users - veto files - veto oplock files - vfs path - vfs object - vfs options - volume - wide links - writable - write cache size - write list - write ok - writeable - - - - - - EXPLANATION OF EACH PARAMETER - - - - - abort shutdown script (G) - This parameter only exists in the HEAD cvs branch - This a full path name to a script called by - smbd(8) that - should stop a shutdown procedure issued by the shutdown script. - - This command will be run as user. - - Default: None. - Example: abort shutdown script = /sbin/shutdown -c - - - - - addprinter command (G) - With the introduction of MS-RPC based printing - support for Windows NT/2000 clients in Samba 2.2, The MS Add - Printer Wizard (APW) icon is now also available in the - "Printers..." folder displayed a share listing. The APW - allows for printers to be add remotely to a Samba or Windows - NT/2000 print server. - - For a Samba host this means that the printer must be - physically added to the underlying printing system. The add - printer command defines a script to be run which - will perform the necessary operations for adding the printer - to the print system and to add the appropriate service definition - to the smb.conf file in order that it can be - shared by smbd(8) - . - - The addprinter command is - automatically invoked with the following parameter (in - order: - - - printer name - share name - port name - driver name - location - Windows 9x driver location - - - - All parameters are filled in from the PRINTER_INFO_2 structure sent - by the Windows NT/2000 client with one exception. The "Windows 9x - driver location" parameter is included for backwards compatibility - only. The remaining fields in the structure are generated from answers - to the APW questions. - - Once the addprinter command has - been executed, smbd will reparse the - smb.conf to determine if the share defined by the APW - exists. If the sharename is still invalid, then smbd - will return an ACCESS_DENIED error to the client. - - See also - deleteprinter command, printing, - show add - printer wizard - - Default: none - Example: addprinter command = /usr/bin/addprinter - - - - - - - - add share command (G) - Samba 2.2.0 introduced the ability to dynamically - add and delete shares via the Windows NT 4.0 Server Manager. The - add share command is used to define an - external program or script which will add a new service definition - to smb.conf. In order to successfully - execute the add share command, smbd - requires that the administrator be connected using a root account (i.e. - uid == 0). - - - - When executed, smbd will automatically invoke the - add share command with four parameters. - - - - configFile - the location - of the global smb.conf file. - - - shareName - the name of the new - share. - - - pathName - path to an **existing** - directory on disk. - - - comment - comment string to associate - with the new share. - - - - - This parameter is only used for add file shares. To add printer shares, - see the addprinter - command. - - - - See also change share - command, delete share - command. - - - Default: none - Example: add share command = /usr/local/bin/addshare - - - - - - - add machine script (G) - This is the full pathname to a script that will - be run by smbd(8) when a machine is added - to it's domain using the administrator username and password method. - - This option is only required when using sam back-ends tied to the - Unix uid method of RID calculation such as smbpasswd. This option is only available in Samba 3.0. If this option is not specified, the add user script is used. - - Default: add machine script = <empty string> - - - Example: add machine script = /usr/sbin/adduser -n -g machines -c Machine -d /dev/null -s /bin/false %u - - - - - - ads server (G) - If this option is specified, samba does - not try to figure out what ads server to use itself, but - uses the specified ads server. Either one DNS name or IP - address can be used. - - Default: ads server = - - Example: ads server = 192.168.1.2 - - - - - add user script (G) - This is the full pathname to a script that will - be run AS ROOT by smbd(8) - under special circumstances described below. - - Normally, a Samba server requires that UNIX users are - created for all users accessing files on this server. For sites - that use Windows NT account databases as their primary user database - creating these users and keeping the user list in sync with the - Windows NT PDC is an onerous task. This option allows smbd to create the required UNIX users - ON DEMAND when a user accesses the Samba server. - - In order to use this option, smbd - must NOT be set to security = share - and add user script - must be set to a full pathname for a script that will create a UNIX - user given one argument of %u, which expands into - the UNIX user name to create. - - When the Windows user attempts to access the Samba server, - at login (session setup in the SMB protocol) time, - smbd contacts the password server and - attempts to authenticate the given user with the given password. If the - authentication succeeds then smbd - attempts to find a UNIX user in the UNIX password database to map the - Windows user into. If this lookup fails, and add user script - is set then smbd will - call the specified script AS ROOT, expanding - any %u argument to be the user name to create. - - If this script successfully creates the user then smbd - will continue on as though the UNIX user - already existed. In this way, UNIX users are dynamically created to - match existing Windows NT accounts. - - See also - security, - password server, - delete user - script. - - Default: add user script = <empty string> - - - Example: add user script = /usr/local/samba/bin/add_user - %u - - - - add group script (G) - This is the full pathname to a script that will - be run AS ROOT by smbd(8) when a new group is - requested. It will expand any - %g to the group name passed. - This script is only useful for installations using the - Windows NT domain administration tools. The script is - free to create a group with an arbitrary name to - circumvent unix group name restrictions. In that case - the script must print the numeric gid of the created - group on stdout. - - - - - admin users (S) - This is a list of users who will be granted - administrative privileges on the share. This means that they - will do all file operations as the super-user (root). - - You should use this option very carefully, as any user in - this list will be able to do anything they like on the share, - irrespective of file permissions. - - Default: no admin users - - Example: admin users = jason - - - - - add user to group script (G) - Full path to the script that will be called when - a user is added to a group using the Windows NT domain administration - tools. It will be run by smbd(8) - AS ROOT. Any %g will be - replaced with the group name and any %u will - be replaced with the user name. - - - Default: add user to group script = - - Example: add user to group script = /usr/sbin/adduser %u %g - - - - - - allow hosts (S) - Synonym for - hosts allow. - - - - algorithmic rid base (G) - This determines how Samba will use its - algorithmic mapping from uids/gid to the RIDs needed to construct - NT Security Identifiers. - - Setting this option to a larger value could be useful to sites - transitioning from WinNT and Win2k, as existing user and - group rids would otherwise clash with sytem users etc. - - - All UIDs and GIDs must be able to be resolved into SIDs for - the correct operation of ACLs on the server. As such the algorithmic - mapping can't be 'turned off', but pushing it 'out of the way' should - resolve the issues. Users and groups can then be assigned 'low' RIDs - in arbitary-rid supporting backends. - - Default: algorithmic rid base = 1000 - - Example: algorithmic rid base = 100000 - - - - - allow trusted domains (G) - This option only takes effect when the security option is set to - server or domain. - If it is set to no, then attempts to connect to a resource from - a domain or workgroup other than the one which smbd is running - in will fail, even if that domain is trusted by the remote server - doing the authentication. - - This is useful if you only want your Samba server to - serve resources to users in the domain it is a member of. As - an example, suppose that there are two domains DOMA and DOMB. DOMB - is trusted by DOMA, which contains the Samba server. Under normal - circumstances, a user with an account in DOMB can then access the - resources of a UNIX account with the same account name on the - Samba server even if they do not have an account in DOMA. This - can make implementing a security boundary difficult. - - Default: allow trusted domains = yes - - - - - - announce as (G) - This specifies what type of server - nmbd - will announce itself as, to a network neighborhood browse - list. By default this is set to Windows NT. The valid options - are : "NT Server" (which can also be written as "NT"), - "NT Workstation", "Win95" or "WfW" meaning Windows NT Server, - Windows NT Workstation, Windows 95 and Windows for Workgroups - respectively. Do not change this parameter unless you have a - specific need to stop Samba appearing as an NT server as this - may prevent Samba servers from participating as browser servers - correctly. - - Default: announce as = NT Server - - Example: announce as = Win95 - - - - - - - announce version (G) - This specifies the major and minor version numbers - that nmbd will use when announcing itself as a server. The default - is 4.9. Do not change this parameter unless you have a specific - need to set a Samba server to be a downlevel server. - - Default: announce version = 4.9 - - Example: announce version = 2.0 - - - - - - - auto services (G) - This is a synonym for the - preload. - - - - - - - auth methods (G) - This option allows the administrator to chose what - authentication methods smbd will use when authenticating - a user. This option defaults to sensible values based on - security. - - Each entry in the list attempts to authenticate the user in turn, until - the user authenticates. In practice only one method will ever actually - be able to complete the authentication. - - - Default: auth methods = <empty string> - Example: auth methods = guest sam ntdomain - - - - - - available (S) - This parameter lets you "turn off" a service. If - available = no, then ALL - attempts to connect to the service will fail. Such failures are - logged. - - Default: available = yes - - - - - - - - bind interfaces only (G) - This global parameter allows the Samba admin - to limit what interfaces on a machine will serve SMB requests. It - affects file service smbd(8) and - name service nmbd(8) in slightly - different ways. - - For name service it causes nmbd to bind - to ports 137 and 138 on the interfaces listed in the interfaces parameter. nmbd - also binds to the "all addresses" interface (0.0.0.0) - on ports 137 and 138 for the purposes of reading broadcast messages. - If this option is not set then nmbd will service - name requests on all of these sockets. If bind interfaces - only is set then nmbd will check the - source address of any packets coming in on the broadcast sockets - and discard any that don't match the broadcast addresses of the - interfaces in the interfaces parameter list. - As unicast packets are received on the other sockets it allows - nmbd to refuse to serve names to machines that - send packets that arrive through any interfaces not listed in the - interfaces list. IP Source address spoofing - does defeat this simple check, however, so it must not be used - seriously as a security feature for nmbd. - - For file service it causes smbd(8) - to bind only to the interface list given in the - interfaces parameter. This restricts the networks that - smbd will serve to packets coming in those - interfaces. Note that you should not use this parameter for machines - that are serving PPP or other intermittent or non-broadcast network - interfaces as it will not cope with non-permanent interfaces. - - If bind interfaces only is set then - unless the network address 127.0.0.1 is added - to the interfaces parameter list smbpasswd(8) - and swat(8) may - not work as expected due to the reasons covered below. - - To change a users SMB password, the smbpasswd - by default connects to the localhost - 127.0.0.1 - address as an SMB client to issue the password change request. If - bind interfaces only is set then unless the - network address 127.0.0.1 is added to the - interfaces parameter list then - smbpasswd will fail to connect in it's default mode. - smbpasswd can be forced to use the primary IP interface - of the local host by using its - -r remote machine - parameter, with remote machine set - to the IP name of the primary interface of the local host. - - The swat status page tries to connect with - smbd and nmbd at the address - 127.0.0.1 to determine if they are running. - Not adding 127.0.0.1 will cause - smbd and nmbd to always show - "not running" even if they really are. This can prevent - swat from starting/stopping/restarting smbd - and nmbd. - - Default: bind interfaces only = no - - - - - - - - blocking locks (S) - This parameter controls the behavior of smbd(8) when given a request by a client - to obtain a byte range lock on a region of an open file, and the - request has a time limit associated with it. - - If this parameter is set and the lock range requested - cannot be immediately satisfied, samba will internally - queue the lock request, and periodically attempt to obtain - the lock until the timeout period expires. - - If this parameter is set to no, then - samba will behave as previous versions of Samba would and - will fail the lock request immediately if the lock range - cannot be obtained. - - Default: blocking locks = yes - - - - - - block size (S) - This parameter controls the behavior of - smbd(8) when reporting disk free - sizes. By default, this reports a disk block size of 1024 bytes. - - - Changing this parameter may have some effect on the - efficiency of client writes, this is not yet confirmed. This - parameter was added to allow advanced administrators to change - it (usually to a higher value) and test the effect it has on - client write performance without re-compiling the code. As this - is an experimental option it may be removed in a future release. - - - Changing this option does not change the disk free reporting - size, just the block size unit reported to the client. - - Default: block size = 1024 - Example: block size = 65536 - - - - - - - - browsable (S) - See the - browseable. - - - - - - browse list (G) - This controls whether - smbd(8) will serve a browse list to - a client doing a NetServerEnum call. Normally - set to yes. You should never need to change - this. - - Default: browse list = yes - - - - - - browseable (S) - This controls whether this share is seen in - the list of available shares in a net view and in the browse list. - - Default: browseable = yes - - - - - - - case sensitive (S) - See the discussion in the section NAME MANGLING. - - Default: case sensitive = no - - - - - - - casesignames (S) - Synonym for case - sensitive. - - - - - - change notify timeout (G) - This SMB allows a client to tell a server to - "watch" a particular directory for any changes and only reply to - the SMB request when a change has occurred. Such constant scanning of - a directory is expensive under UNIX, hence an - smbd(8) daemon only performs such a scan - on each requested directory once every change notify - timeout seconds. - - Default: change notify timeout = 60 - Example: change notify timeout = 300 - - Would change the scan time to every 5 minutes. - - - - - - change share command (G) - Samba 2.2.0 introduced the ability to dynamically - add and delete shares via the Windows NT 4.0 Server Manager. The - change share command is used to define an - external program or script which will modify an existing service definition - in smb.conf. In order to successfully - execute the change share command, smbd - requires that the administrator be connected using a root account (i.e. - uid == 0). - - - - When executed, smbd will automatically invoke the - change share command with four parameters. - - - - configFile - the location - of the global smb.conf file. - - - shareName - the name of the new - share. - - - pathName - path to an **existing** - directory on disk. - - - comment - comment string to associate - with the new share. - - - - - This parameter is only used modify existing file shares definitions. To modify - printer shares, use the "Printers..." folder as seen when browsing the Samba host. - - - - See also add share - command, delete - share command. - - - Default: none - Example: change share command = /usr/local/bin/addshare - - - - - - - - - comment (S) - This is a text field that is seen next to a share - when a client does a queries the server, either via the network - neighborhood or via net view to list what shares - are available. - - If you want to set the string that is displayed next to the - machine name then see the - server string parameter. - - Default: No comment string - Example: comment = Fred's Files - - - - - - config file (G) - This allows you to override the config file - to use, instead of the default (usually smb.conf). - There is a chicken and egg problem here as this option is set - in the config file! - - For this reason, if the name of the config file has changed - when the parameters are loaded then it will reload them from - the new config file. - - This option takes the usual substitutions, which can - be very useful. - - If the config file doesn't exist then it won't be loaded - (allowing you to special case the config files of just a few - clients). - - Example: config file = /usr/local/samba/lib/smb.conf.%m - - - - - - - copy (S) - This parameter allows you to "clone" service - entries. The specified service is simply duplicated under the - current service's name. Any parameters specified in the current - section will override those in the section being copied. - - This feature lets you set up a 'template' service and - create similar services easily. Note that the service being - copied must occur earlier in the configuration file than the - service doing the copying. - - Default: no value - Example: copy = otherservice - - - - - - create mask (S) - A synonym for this parameter is - create mode - . - - When a file is created, the necessary permissions are - calculated according to the mapping from DOS modes to UNIX - permissions, and the resulting UNIX mode is then bit-wise 'AND'ed - with this parameter. This parameter may be thought of as a bit-wise - MASK for the UNIX modes of a file. Any bit not - set here will be removed from the modes set on a file when it is - created. - - The default value of this parameter removes the - 'group' and 'other' write and execute bits from the UNIX modes. - - Following this Samba will bit-wise 'OR' the UNIX mode created - from this parameter with the value of the force create mode - parameter which is set to 000 by default. - - This parameter does not affect directory modes. See the - parameter directory mode - for details. - - See also the force - create mode parameter for forcing particular mode - bits to be set on created files. See also the - directory mode parameter for masking - mode bits on created directories. See also the - inherit permissions parameter. - - Note that this parameter does not apply to permissions - set by Windows NT/2000 ACL editors. If the administrator wishes to enforce - a mask on access control lists also, they need to set the security mask. - - Default: create mask = 0744 - Example: create mask = 0775 - - - - - - create mode (S) - This is a synonym for - create mask. - - - - - csc policy (S) - This stands for client-side caching - policy, and specifies how clients capable of offline - caching will cache the files in the share. The valid values - are: manual, documents, programs, disable. - - These values correspond to those used on Windows - servers. - - For example, shares containing roaming profiles can have - offline caching disabled using csc policy = disable - . - - Default: csc policy = manual - Example: csc policy = programs - - - - - deadtime (G) - The value of the parameter (a decimal integer) - represents the number of minutes of inactivity before a connection - is considered dead, and it is disconnected. The deadtime only takes - effect if the number of open files is zero. - - This is useful to stop a server's resources being - exhausted by a large number of inactive connections. - - Most clients have an auto-reconnect feature when a - connection is broken so in most cases this parameter should be - transparent to users. - - Using this parameter with a timeout of a few minutes - is recommended for most systems. - - A deadtime of zero indicates that no auto-disconnection - should be performed. - - Default: deadtime = 0 - Example: deadtime = 15 - - - - - - debug hires timestamp (G) - Sometimes the timestamps in the log messages - are needed with a resolution of higher that seconds, this - boolean parameter adds microsecond resolution to the timestamp - message header when turned on. - - Note that the parameter - debug timestamp must be on for this to have an - effect. - - Default: debug hires timestamp = no - - - - - - - debug pid (G) - When using only one log file for more then one - forked smbd-process there may be hard to follow which process - outputs which message. This boolean parameter is adds the process-id - to the timestamp message headers in the logfile when turned on. - - Note that the parameter - debug timestamp must be on for this to have an - effect. - - Default: debug pid = no - - - - - debug timestamp (G) - Samba debug log messages are timestamped - by default. If you are running at a high - debug level these timestamps - can be distracting. This boolean parameter allows timestamping - to be turned off. - - Default: debug timestamp = yes - - - - - - debug uid (G) - Samba is sometimes run as root and sometime - run as the connected user, this boolean parameter inserts the - current euid, egid, uid and gid to the timestamp message headers - in the log file if turned on. - - Note that the parameter - debug timestamp must be on for this to have an - effect. - - Default: debug uid = no - - - - - - debuglevel (G) - Synonym for - log level. - - - - - - - default (G) - A synonym for - default service. - - - - - - default case (S) - See the section on - NAME MANGLING. Also note the - short preserve case parameter. - - Default: default case = lower - - - - - - - default devmode (S) - This parameter is only applicable to printable services. When smbd is serving - Printer Drivers to Windows NT/2k/XP clients, each printer on the Samba - server has a Device Mode which defines things such as paper size and - orientation and duplex settings. The device mode can only correctly be - generated by the printer driver itself (which can only be executed on a - Win32 platform). Because smbd is unable to execute the driver code - to generate the device mode, the default behavior is to set this field - to NULL. - - - Most problems with serving printer drivers to Windows NT/2k/XP clients - can be traced to a problem with the generated device mode. Certain drivers - will do things such as crashing the client's Explorer.exe with a NULL devmode. - However, other printer drivers can cause the client's spooler service - (spoolsv.exe) to die if the devmode was not created by the driver itself - (i.e. smbd generates a default devmode). - - - This parameter should be used with care and tested with the printer - driver in question. It is better to leave the device mode to NULL - and let the Windows client set the correct values. Because drivers do not - do this all the time, setting default devmode = yes - will instruct smbd to generate a default one. - - - For more information on Windows NT/2k printing and Device Modes, - see the MSDN documentation. - - - Default: default devmode = no - - - - - - - default service (G) - This parameter specifies the name of a service - which will be connected to if the service actually requested cannot - be found. Note that the square brackets are NOT - given in the parameter value (see example below). - - There is no default value for this parameter. If this - parameter is not given, attempting to connect to a nonexistent - service results in an error. - - Typically the default service would be a - guest ok, - read-only service. - - Also note that the apparent service name will be changed - to equal that of the requested service, this is very useful as it - allows you to use macros like %S to make - a wildcard service. - - Note also that any "_" characters in the name of the service - used in the default service will get mapped to a "/". This allows for - interesting things. - - - Example: - - -[global] - default service = pub - -[pub] - path = /%S - - - - - delete group script (G) - This is the full pathname to a script that will - be run AS ROOT by smbd(8) when a group is requested to be deleted. It will expand any %g to the group name passed. This script is only useful for installations using the Windows NT domain administration tools. - - - - - deleteprinter command (G) - With the introduction of MS-RPC based printer - support for Windows NT/2000 clients in Samba 2.2, it is now - possible to delete printer at run time by issuing the - DeletePrinter() RPC call. - - For a Samba host this means that the printer must be - physically deleted from underlying printing system. The - deleteprinter command defines a script to be run which - will perform the necessary operations for removing the printer - from the print system and from smb.conf. - - - The deleteprinter command is - automatically called with only one parameter: - "printer name". - - - Once the deleteprinter command has - been executed, smbd will reparse the - smb.conf to associated printer no longer exists. - If the sharename is still valid, then smbd - will return an ACCESS_DENIED error to the client. - - See also - addprinter command, printing, - show add - printer wizard - - Default: none - Example: deleteprinter command = /usr/bin/removeprinter - - - - - - - - - - - delete readonly (S) - This parameter allows readonly files to be deleted. - This is not normal DOS semantics, but is allowed by UNIX. - - This option may be useful for running applications such - as rcs, where UNIX file ownership prevents changing file - permissions, and DOS semantics prevent deletion of a read only file. - - Default: delete readonly = no - - - - - - delete share command (G) - Samba 2.2.0 introduced the ability to dynamically - add and delete shares via the Windows NT 4.0 Server Manager. The - delete share command is used to define an - external program or script which will remove an existing service - definition from smb.conf. In order to successfully - execute the delete share command, smbd - requires that the administrator be connected using a root account (i.e. - uid == 0). - - - - When executed, smbd will automatically invoke the - delete share command with two parameters. - - - - configFile - the location - of the global smb.conf file. - - - shareName - the name of - the existing service. - - - - - This parameter is only used to remove file shares. To delete printer shares, - see the deleteprinter - command. - - - - See also add share - command, change - share command. - - - Default: none - Example: delete share command = /usr/local/bin/delshare - - - - - - - - - delete user script (G) - This is the full pathname to a script that will - be run by smbd(8) - when managing user's with remote RPC (NT) tools. - - - This script is called when a remote client removes a user - from the server, normally using 'User Manager for Domains' or - rpcclient. - - - This script should delete the given UNIX username. - - - Default: delete user script = <empty string> - - Example: delete user script = /usr/local/samba/bin/del_user - %u - - - - delete user from group script (G) - Full path to the script that will be called when - a user is removed from a group using the Windows NT domain administration - tools. It will be run by smbd(8) - AS ROOT. Any %g will be - replaced with the group name and any %u will - be replaced with the user name. - - - Default: delete user from group script = - - Example: delete user from group script = /usr/sbin/deluser %u %g - - - - - - delete veto files (S) - This option is used when Samba is attempting to - delete a directory that contains one or more vetoed directories - (see the veto files - option). If this option is set to no (the default) then if a vetoed - directory contains any non-vetoed files or directories then the - directory delete will fail. This is usually what you want. - - If this option is set to yes, then Samba - will attempt to recursively delete any files and directories within - the vetoed directory. This can be useful for integration with file - serving systems such as NetAtalk which create meta-files within - directories you might normally veto DOS/Windows users from seeing - (e.g. .AppleDouble) - - Setting delete veto files = yes allows these - directories to be transparently deleted when the parent directory - is deleted (so long as the user has permissions to do so). - - See also the veto - files parameter. - - Default: delete veto files = no - - - - - - - deny hosts (S) - Synonym for hosts - deny. - - - - - - - dfree command (G) - The dfree command setting should - only be used on systems where a problem occurs with the internal - disk space calculations. This has been known to happen with Ultrix, - but may occur with other operating systems. The symptom that was - seen was an error of "Abort Retry Ignore" at the end of each - directory listing. - - This setting allows the replacement of the internal routines to - calculate the total disk space and amount available with an external - routine. The example below gives a possible script that might fulfill - this function. - - The external program will be passed a single parameter indicating - a directory in the filesystem being queried. This will typically consist - of the string ./. The script should return two - integers in ASCII. The first should be the total disk space in blocks, - and the second should be the number of available blocks. An optional - third return value can give the block size in bytes. The default - blocksize is 1024 bytes. - - Note: Your script should NOT be setuid or - setgid and should be owned by (and writeable only by) root! - - Default: By default internal routines for - determining the disk capacity and remaining space will be used. - - - Example: dfree command = /usr/local/samba/bin/dfree - - - Where the script dfree (which must be made executable) could be: - - - #!/bin/sh - df $1 | tail -1 | awk '{print $2" "$4}' - - - or perhaps (on Sys V based systems): - - - #!/bin/sh - /usr/bin/df -k $1 | tail -1 | awk '{print $3" "$5}' - - - Note that you may have to replace the command names - with full path names on some systems. - - - - - - - - directory (S) - Synonym for path - . - - - - - - directory mask (S) - This parameter is the octal modes which are - used when converting DOS modes to UNIX modes when creating UNIX - directories. - - When a directory is created, the necessary permissions are - calculated according to the mapping from DOS modes to UNIX permissions, - and the resulting UNIX mode is then bit-wise 'AND'ed with this - parameter. This parameter may be thought of as a bit-wise MASK for - the UNIX modes of a directory. Any bit not set - here will be removed from the modes set on a directory when it is - created. - - The default value of this parameter removes the 'group' - and 'other' write bits from the UNIX mode, allowing only the - user who owns the directory to modify it. - - Following this Samba will bit-wise 'OR' the UNIX mode - created from this parameter with the value of the force directory mode - parameter. This parameter is set to 000 by - default (i.e. no extra mode bits are added). - - Note that this parameter does not apply to permissions - set by Windows NT/2000 ACL editors. If the administrator wishes to enforce - a mask on access control lists also, they need to set the directory security mask. - - See the force - directory mode parameter to cause particular mode - bits to always be set on created directories. - - See also the create mode - parameter for masking mode bits on created files, - and the directory - security mask parameter. - - Also refer to the - inherit permissions parameter. - - Default: directory mask = 0755 - Example: directory mask = 0775 - - - - - - - directory mode (S) - Synonym for - directory mask - - - - - - directory security mask (S) - This parameter controls what UNIX permission bits - can be modified when a Windows NT client is manipulating the UNIX - permission on a directory using the native NT security dialog - box. - - This parameter is applied as a mask (AND'ed with) to - the changed permission bits, thus preventing any bits not in - this mask from being modified. Essentially, zero bits in this - mask may be treated as a set of bits the user is not allowed - to change. - - If not set explicitly this parameter is set to 0777 - meaning a user is allowed to modify all the user/group/world - permissions on a directory. - - Note that users who can access the - Samba server through other means can easily bypass this restriction, - so it is primarily useful for standalone "appliance" systems. - Administrators of most normal systems will probably want to leave - it as the default of 0777. - - See also the - force directory security mode, security mask, - force security mode - parameters. - - Default: directory security mask = 0777 - Example: directory security mask = 0700 - - - - - - disable netbios (G) - Enabling this parameter will disable netbios support - in Samba. Netbios is the only available form of browsing in - all windows versions except for 2000 and XP. - - Note that clients that only support netbios won't be able to - see your samba server when netbios support is disabled. - - - Default: disable netbios = no - Example: disable netbios = yes - - - - - disable spoolss (G) - Enabling this parameter will disable Samba's support - for the SPOOLSS set of MS-RPC's and will yield identical behavior - as Samba 2.0.x. Windows NT/2000 clients will downgrade to using - Lanman style printing commands. Windows 9x/ME will be uneffected by - the parameter. However, this will also disable the ability to upload - printer drivers to a Samba server via the Windows NT Add Printer - Wizard or by using the NT printer properties dialog window. It will - also disable the capability of Windows NT/2000 clients to download - print drivers from the Samba host upon demand. - Be very careful about enabling this parameter. - - - See also use client driver - - - Default : disable spoolss = no - - - - - display charset (G) - Specifies the charset that samba will use - to print messages to stdout and stderr and SWAT will use. - Should generally be the same as the unix charset. - - - Default: display charset = ASCII - - Example: display charset = UTF8 - - - - - - - dns proxy (G) - Specifies that nmbd(8) - when acting as a WINS server and finding that a NetBIOS name has not - been registered, should treat the NetBIOS name word-for-word as a DNS - name and do a lookup with the DNS server for that name on behalf of - the name-querying client. - - Note that the maximum length for a NetBIOS name is 15 - characters, so the DNS name (or DNS alias) can likewise only be - 15 characters, maximum. - - nmbd spawns a second copy of itself to do the - DNS name lookup requests, as doing a name lookup is a blocking - action. - - See also the parameter - wins support. - - Default: dns proxy = yes - - - - - domain logons (G) - If set to yes, the Samba server will serve - Windows 95/98 Domain logons for the - workgroup it is in. Samba 2.2 - has limited capability to act as a domain controller for Windows - NT 4 Domains. For more details on setting up this feature see - the Samba-PDC-HOWTO included in the htmldocs/ - directory shipped with the source code. - - Default: domain logons = no - - - - - - domain master (G) - Tell - nmbd(8) to enable WAN-wide browse list - collation. Setting this option causes nmbd to - claim a special domain specific NetBIOS name that identifies - it as a domain master browser for its given - workgroup. Local master browsers - in the same workgroup on broadcast-isolated - subnets will give this nmbd their local browse lists, - and then ask smbd(8) - for a complete copy of the browse list for the whole wide area - network. Browser clients will then contact their local master browser, - and will receive the domain-wide browse list, instead of just the list - for their broadcast-isolated subnet. - - Note that Windows NT Primary Domain Controllers expect to be - able to claim this workgroup specific special - NetBIOS name that identifies them as domain master browsers for - that workgroup by default (i.e. there is no - way to prevent a Windows NT PDC from attempting to do this). This - means that if this parameter is set and nmbd claims - the special name for a workgroup before a Windows - NT PDC is able to do so then cross subnet browsing will behave - strangely and may fail. - - If domain logons = yes - , then the default behavior is to enable the domain - master parameter. If domain logons is - not enabled (the default setting), then neither will domain - master be enabled by default. - - Default: domain master = auto - - - - - - - dont descend (S) - There are certain directories on some systems - (e.g., the /proc tree under Linux) that are either not - of interest to clients or are infinitely deep (recursive). This - parameter allows you to specify a comma-delimited list of directories - that the server should always show as empty. - - Note that Samba can be very fussy about the exact format - of the "dont descend" entries. For example you may need - ./proc instead of just /proc. - Experimentation is the best policy :-) - - Default: none (i.e., all directories are OK - to descend) - Example: dont descend = /proc,/dev - - - - - dos charset (G) - DOS SMB clients assume the server has - the same charset as they do. This option specifies which - charset Samba should talk to DOS clients. - - - The default depends on which charsets you have instaled. - Samba tries to use charset 850 but falls back to ASCII in - case it is not available. Run testparm(1) - to check the default on your system. - - - - - - dos filemode (S) - The default behavior in Samba is to provide - UNIX-like behavior where only the owner of a file/directory is - able to change the permissions on it. However, this behavior - is often confusing to DOS/Windows users. Enabling this parameter - allows a user who has write access to the file (by whatever - means) to modify the permissions on it. Note that a user - belonging to the group owning the file will not be allowed to - change permissions if the group is only granted read access. - Ownership of the file/directory is not changed, only the permissions - are modified. - - Default: dos filemode = no - - - - - - - dos filetime resolution (S) - Under the DOS and Windows FAT filesystem, the finest - granularity on time resolution is two seconds. Setting this parameter - for a share causes Samba to round the reported time down to the - nearest two second boundary when a query call that requires one second - resolution is made to smbd(8) - . - - This option is mainly used as a compatibility option for Visual - C++ when used against Samba shares. If oplocks are enabled on a - share, Visual C++ uses two different time reading calls to check if a - file has changed since it was last read. One of these calls uses a - one-second granularity, the other uses a two second granularity. As - the two second call rounds any odd second down, then if the file has a - timestamp of an odd number of seconds then the two timestamps will not - match and Visual C++ will keep reporting the file has changed. Setting - this option causes the two timestamps to match, and Visual C++ is - happy. - - Default: dos filetime resolution = no - - - - - - - dos filetimes (S) - Under DOS and Windows, if a user can write to a - file they can change the timestamp on it. Under POSIX semantics, - only the owner of the file or root may change the timestamp. By - default, Samba runs with POSIX semantics and refuses to change the - timestamp on a file if the user smbd is acting - on behalf of is not the file owner. Setting this option to - yes allows DOS semantics and smbd will change the file - timestamp as DOS requires. - - Default: dos filetimes = no - - - - - - encrypt passwords (G) - This boolean controls whether encrypted passwords - will be negotiated with the client. Note that Windows NT 4.0 SP3 and - above and also Windows 98 will by default expect encrypted passwords - unless a registry entry is changed. To use encrypted passwords in - Samba see the file ENCRYPTION.txt in the Samba documentation - directory docs/ shipped with the source code. - - In order for encrypted passwords to work correctly - smbd(8) must either - have access to a local smbpasswd(5) - file (see the - smbpasswd(8) program for information on how to set up - and maintain this file), or set the security = [server|domain|ads] parameter which - causes smbd to authenticate against another - server. - - Default: encrypt passwords = yes - - - - - enhanced browsing (G) - This option enables a couple of enhancements to - cross-subnet browse propagation that have been added in Samba - but which are not standard in Microsoft implementations. - - - The first enhancement to browse propagation consists of a regular - wildcard query to a Samba WINS server for all Domain Master Browsers, - followed by a browse synchronization with each of the returned - DMBs. The second enhancement consists of a regular randomised browse - synchronization with all currently known DMBs. - - You may wish to disable this option if you have a problem with empty - workgroups not disappearing from browse lists. Due to the restrictions - of the browse protocols these enhancements can cause a empty workgroup - to stay around forever which can be annoying. - - In general you should leave this option enabled as it makes - cross-subnet browse propagation much more reliable. - - Default: enhanced browsing = yes - - - - - - enumports command (G) - The concept of a "port" is fairly foreign - to UNIX hosts. Under Windows NT/2000 print servers, a port - is associated with a port monitor and generally takes the form of - a local port (i.e. LPT1:, COM1:, FILE:) or a remote port - (i.e. LPD Port Monitor, etc...). By default, Samba has only one - port defined--"Samba Printer Port". Under - Windows NT/2000, all printers must have a valid port name. - If you wish to have a list of ports displayed (smbd - does not use a port name for anything) other than - the default "Samba Printer Port", you - can define enumports command to point to - a program which should generate a list of ports, one per line, - to standard output. This listing will then be used in response - to the level 1 and 2 EnumPorts() RPC. - - Default: no enumports command - Example: enumports command = /usr/bin/listports - - - - - - exec (S) - This is a synonym for - preexec. - - - - - - fake directory create times (S) - NTFS and Windows VFAT file systems keep a create - time for all files and directories. This is not the same as the - ctime - status change time - that Unix keeps, so Samba by default - reports the earliest of the various times Unix does keep. Setting - this parameter for a share causes Samba to always report midnight - 1-1-1980 as the create time for directories. - - This option is mainly used as a compatibility option for - Visual C++ when used against Samba shares. Visual C++ generated - makefiles have the object directory as a dependency for each object - file, and a make rule to create the directory. Also, when NMAKE - compares timestamps it uses the creation time when examining a - directory. Thus the object directory will be created if it does not - exist, but once it does exist it will always have an earlier - timestamp than the object files it contains. - - However, Unix time semantics mean that the create time - reported by Samba will be updated whenever a file is created or - or deleted in the directory. NMAKE finds all object files in - the object directory. The timestamp of the last one built is then - compared to the timestamp of the object directory. If the - directory's timestamp if newer, then all object files - will be rebuilt. Enabling this option - ensures directories always predate their contents and an NMAKE build - will proceed as expected. - - Default: fake directory create times = no - - - - - - - fake oplocks (S) - Oplocks are the way that SMB clients get permission - from a server to locally cache file operations. If a server grants - an oplock (opportunistic lock) then the client is free to assume - that it is the only one accessing the file and it will aggressively - cache file data. With some oplock types the client may even cache - file open/close operations. This can give enormous performance benefits. - - - When you set fake oplocks = yes, smbd(8) will - always grant oplock requests no matter how many clients are using - the file. - - It is generally much better to use the real oplocks support rather - than this parameter. - - If you enable this option on all read-only shares or - shares that you know will only be accessed from one client at a - time such as physically read-only media like CDROMs, you will see - a big performance improvement on many operations. If you enable - this option on shares where multiple clients may be accessing the - files read-write at the same time you can get data corruption. Use - this option carefully! - - Default: fake oplocks = no - - - - - - follow symlinks (S) - This parameter allows the Samba administrator - to stop smbd(8) - from following symbolic links in a particular share. Setting this - parameter to no prevents any file or directory - that is a symbolic link from being followed (the user will get an - error). This option is very useful to stop users from adding a - symbolic link to /etc/passwd in their home - directory for instance. However it will slow filename lookups - down slightly. - - This option is enabled (i.e. smbd will - follow symbolic links) by default. - - Default: follow symlinks = yes - - - - - - force create mode (S) - This parameter specifies a set of UNIX mode bit - permissions that will always be set on a - file created by Samba. This is done by bitwise 'OR'ing these bits onto - the mode bits of a file that is being created or having its - permissions changed. The default for this parameter is (in octal) - 000. The modes in this parameter are bitwise 'OR'ed onto the file - mode after the mask set in the create mask - parameter is applied. - - See also the parameter create - mask for details on masking mode bits on files. - - See also the inherit - permissions parameter. - - Default: force create mode = 000 - Example: force create mode = 0755 - - would force all created files to have read and execute - permissions set for 'group' and 'other' as well as the - read/write/execute bits set for the 'user'. - - - - - - - force directory mode (S) - This parameter specifies a set of UNIX mode bit - permissions that will always be set on a directory - created by Samba. This is done by bitwise 'OR'ing these bits onto the - mode bits of a directory that is being created. The default for this - parameter is (in octal) 0000 which will not add any extra permission - bits to a created directory. This operation is done after the mode - mask in the parameter directory mask is - applied. - - See also the parameter - directory mask for details on masking mode bits - on created directories. - - See also the - inherit permissions parameter. - - Default: force directory mode = 000 - Example: force directory mode = 0755 - - would force all created directories to have read and execute - permissions set for 'group' and 'other' as well as the - read/write/execute bits set for the 'user'. - - - - - - - force directory security mode (S) - This parameter controls what UNIX permission bits - can be modified when a Windows NT client is manipulating the UNIX - permission on a directory using the native NT security dialog box. - - This parameter is applied as a mask (OR'ed with) to the - changed permission bits, thus forcing any bits in this mask that - the user may have modified to be on. Essentially, one bits in this - mask may be treated as a set of bits that, when modifying security - on a directory, the user has always set to be 'on'. - - If not set explicitly this parameter is 000, which - allows a user to modify all the user/group/world permissions on a - directory without restrictions. - - Note that users who can access the - Samba server through other means can easily bypass this restriction, - so it is primarily useful for standalone "appliance" systems. - Administrators of most normal systems will probably want to leave - it set as 0000. - - See also the - directory security mask, - security mask, - force security mode - parameters. - - Default: force directory security mode = 0 - Example: force directory security mode = 700 - - - - - - - - force group (S) - This specifies a UNIX group name that will be - assigned as the default primary group for all users connecting - to this service. This is useful for sharing files by ensuring - that all access to files on service will use the named group for - their permissions checking. Thus, by assigning permissions for this - group to the files and directories within this service the Samba - administrator can restrict or allow sharing of these files. - - In Samba 2.0.5 and above this parameter has extended - functionality in the following way. If the group name listed here - has a '+' character prepended to it then the current user accessing - the share only has the primary group default assigned to this group - if they are already assigned as a member of that group. This allows - an administrator to decide that only users who are already in a - particular group will create files with group ownership set to that - group. This gives a finer granularity of ownership assignment. For - example, the setting force group = +sys means - that only users who are already in group sys will have their default - primary group assigned to sys when accessing this Samba share. All - other users will retain their ordinary primary group. - - If the force user - parameter is also set the group specified in - force group will override the primary group - set in force user. - - See also force - user. - - Default: no forced group - Example: force group = agroup - - - - - force security mode (S) - This parameter controls what UNIX permission - bits can be modified when a Windows NT client is manipulating - the UNIX permission on a file using the native NT security dialog - box. - - This parameter is applied as a mask (OR'ed with) to the - changed permission bits, thus forcing any bits in this mask that - the user may have modified to be on. Essentially, one bits in this - mask may be treated as a set of bits that, when modifying security - on a file, the user has always set to be 'on'. - - If not set explicitly this parameter is set to 0, - and allows a user to modify all the user/group/world permissions on a file, - with no restrictions. - - Note that users who can access - the Samba server through other means can easily bypass this restriction, - so it is primarily useful for standalone "appliance" systems. - Administrators of most normal systems will probably want to leave - this set to 0000. - - See also the - force directory security mode, - directory security - mask, - security mask parameters. - - Default: force security mode = 0 - Example: force security mode = 700 - - - - - - - - - force user (S) - This specifies a UNIX user name that will be - assigned as the default user for all users connecting to this service. - This is useful for sharing files. You should also use it carefully - as using it incorrectly can cause security problems. - - This user name only gets used once a connection is established. - Thus clients still need to connect as a valid user and supply a - valid password. Once connected, all file operations will be performed - as the "forced user", no matter what username the client connected - as. This can be very useful. - - In Samba 2.0.5 and above this parameter also causes the - primary group of the forced user to be used as the primary group - for all file activity. Prior to 2.0.5 the primary group was left - as the primary group of the connecting user (this was a bug). - - See also force group - - - Default: no forced user - Example: force user = auser - - - - - - - fstype (S) - This parameter allows the administrator to - configure the string that specifies the type of filesystem a share - is using that is reported by smbd(8) - when a client queries the filesystem type - for a share. The default type is NTFS for - compatibility with Windows NT but this can be changed to other - strings such as Samba or FAT - if required. - - Default: fstype = NTFS - Example: fstype = Samba - - - - - - getwd cache (G) - This is a tuning option. When this is enabled a - caching algorithm will be used to reduce the time taken for getwd() - calls. This can have a significant impact on performance, especially - when the wide links - parameter is set to no. - - Default: getwd cache = yes - - - - - - - group (S) - Synonym for force - group. - - - - - - guest account (S) - This is a username which will be used for access - to services which are specified as - guest ok (see below). Whatever privileges this - user has will be available to any client connecting to the guest service. - Typically this user will exist in the password file, but will not - have a valid login. The user account "ftp" is often a good choice - for this parameter. If a username is specified in a given service, - the specified username overrides this one. - - One some systems the default guest account "nobody" may not - be able to print. Use another account in this case. You should test - this by trying to log in as your guest user (perhaps by using the - su - command) and trying to print using the - system print command such as lpr(1) or - lp(1). - - This parameter does not accept % macros, because - many parts of the system require this value to be - constant for correct operation. - - Default: specified at compile time, usually - "nobody" - - Example: guest account = ftp - - - - - - guest ok (S) - If this parameter is yes for - a service, then no password is required to connect to the service. - Privileges will be those of the - guest account. - - See the section below on - security for more information about this option. - - - Default: guest ok = no - - - - - - guest only (S) - If this parameter is yes for - a service, then only guest connections to the service are permitted. - This parameter will have no effect if - guest ok is not set for the service. - - See the section below on - security for more information about this option. - - - Default: guest only = no - - - - - - hide dot files (S) - This is a boolean parameter that controls whether - files starting with a dot appear as hidden files. - - Default: hide dot files = yes - - - - - - hide files(S) - This is a list of files or directories that are not - visible but are accessible. The DOS 'hidden' attribute is applied - to any files or directories that match. - - Each entry in the list must be separated by a '/', - which allows spaces to be included in the entry. '*' - and '?' can be used to specify multiple files or directories - as in DOS wildcards. - - Each entry must be a Unix path, not a DOS path and must - not include the Unix directory separator '/'. - - Note that the case sensitivity option is applicable - in hiding files. - - Setting this parameter will affect the performance of Samba, - as it will be forced to check all files and directories for a match - as they are scanned. - - See also hide - dot files, - veto files and - case sensitive. - - Default: no file are hidden - Example: hide files = - /.*/DesktopFolderDB/TrashFor%m/resource.frk/ - - The above example is based on files that the Macintosh - SMB client (DAVE) available from - Thursby creates for internal use, and also still hides - all files beginning with a dot. - - - - - - hide local users(G) - This parameter toggles the hiding of local UNIX - users (root, wheel, floppy, etc) from remote clients. - - Default: hide local users = no - - - - - - hide unreadable (G) - This parameter prevents clients from seeing the - existance of files that cannot be read. Defaults to off. - - Default: hide unreadable = no - - - - - hide unwriteable files (G) - This parameter prevents clients from seeing - the existance of files that cannot be written to. Defaults to off. - Note that unwriteable directories are shown as usual. - - - Default: hide unwriteable = no - - - - - hide special files (G) - This parameter prevents clients from seeing - special files such as sockets, devices and fifo's in directory - listings. - - - Default: hide special files = no - - - - - homedir map (G) - Ifnis homedir - is yes, and smbd(8) is also acting - as a Win95/98 logon server then this parameter - specifies the NIS (or YP) map from which the server for the user's - home directory should be extracted. At present, only the Sun - auto.home map format is understood. The form of the map is: - - username server:/some/file/system - - and the program will extract the servername from before - the first ':'. There should probably be a better parsing system - that copes with different map formats and also Amd (another - automounter) maps. - - NOTE :A working NIS client is required on - the system for this option to work. - - See also nis homedir - , domain logons - . - - Default: homedir map = <empty string> - Example: homedir map = amd.homedir - - - - - - - - - host msdfs (G) - This boolean parameter is only available - if Samba has been configured and compiled with the - --with-msdfs option. If set to yes, - Samba will act as a Dfs server, and allow Dfs-aware clients - to browse Dfs trees hosted on the server. - - See also the - msdfs root share level parameter. For - more information on setting up a Dfs tree on Samba, - refer to msdfs_setup.html. - - - Default: host msdfs = no - - - - - hostname lookups (G) - Specifies whether samba should use (expensive) - hostname lookups or use the ip addresses instead. An example place - where hostname lookups are currently used is when checking - the hosts deny and hosts allow. - - - Default: hostname lookups = yes - - Example: hostname lookups = no - - - - - - - hosts allow (S) - A synonym for this parameter is allow - hosts. - - This parameter is a comma, space, or tab delimited - set of hosts which are permitted to access a service. - - If specified in the [global] section then it will - apply to all services, regardless of whether the individual - service has a different setting. - - You can specify the hosts by name or IP number. For - example, you could restrict access to only the hosts on a - Class C subnet with something like allow hosts = 150.203.5. - . The full syntax of the list is described in the man - page hosts_access(5). Note that this man - page may not be present on your system, so a brief description will - be given here also. - - Note that the localhost address 127.0.0.1 will always - be allowed access unless specifically denied by a hosts deny option. - - You can also specify hosts by network/netmask pairs and - by netgroup names if your system supports netgroups. The - EXCEPT keyword can also be used to limit a - wildcard list. The following examples may provide some help: - - Example 1: allow all IPs in 150.203.*.*; except one - - hosts allow = 150.203. EXCEPT 150.203.6.66 - - Example 2: allow hosts that match the given network/netmask - - hosts allow = 150.203.15.0/255.255.255.0 - - Example 3: allow a couple of hosts - - hosts allow = lapland, arvidsjaur - - Example 4: allow only hosts in NIS netgroup "foonet", but - deny access from one particular host - - hosts allow = @foonet - - hosts deny = pirate - - Note that access still requires suitable user-level passwords. - - See testparm(1) - for a way of testing your host access to see if it does - what you expect. - - Default: none (i.e., all hosts permitted access) - - - Example: allow hosts = 150.203.5. myhost.mynet.edu.au - - - - - - - - hosts deny (S) - The opposite of hosts allow - - hosts listed here are NOT permitted access to - services unless the specific services have their own lists to override - this one. Where the lists conflict, the allow - list takes precedence. - - Default: none (i.e., no hosts specifically excluded) - - - Example: hosts deny = 150.203.4. badhost.mynet.edu.au - - - - - - - hosts equiv (G) - If this global parameter is a non-null string, - it specifies the name of a file to read for the names of hosts - and users who will be allowed access without specifying a password. - - - This is not be confused with - hosts allow which is about hosts - access to services and is more useful for guest services. - hosts equiv may be useful for NT clients which will - not supply passwords to Samba. - - NOTE : The use of hosts equiv - can be a major security hole. This is because you are - trusting the PC to supply the correct username. It is very easy to - get a PC to supply a false username. I recommend that the - hosts equiv option be only used if you really - know what you are doing, or perhaps on a home network where you trust - your spouse and kids. And only if you really trust - them :-). - - Default: no host equivalences - Example: hosts equiv = /etc/hosts.equiv - - - - - - - include (G) - This allows you to include one config file - inside another. The file is included literally, as though typed - in place. - - It takes the standard substitutions, except %u - , %P and %S. - - - Default: no file included - Example: include = /usr/local/samba/lib/admin_smb.conf - - - - - - - inherit acls (S) - This parameter can be used to ensure - that if default acls exist on parent directories, - they are always honored when creating a subdirectory. - The default behavior is to use the mode specified - when creating the directory. Enabling this option - sets the mode to 0777, thus guaranteeing that - default directory acls are propagated. - - - Default: inherit acls = no - - - - - - - - inherit permissions (S) - The permissions on new files and directories - are normally governed by - create mask, - directory mask, force create mode - and force - directory mode but the boolean inherit - permissions parameter overrides this. - - New directories inherit the mode of the parent directory, - including bits such as setgid. - - New files inherit their read/write bits from the parent - directory. Their execute bits continue to be determined by - map archive - , map hidden - and map system - as usual. - - Note that the setuid bit is never set via - inheritance (the code explicitly prohibits this). - - This can be particularly useful on large systems with - many users, perhaps several thousand, to allow a single [homes] - share to be used flexibly by each user. - - See also create mask - , - directory mask, - force create mode and force directory mode - . - - Default: inherit permissions = no - - - - - - - interfaces (G) - This option allows you to override the default - network interfaces list that Samba will use for browsing, name - registration and other NBT traffic. By default Samba will query - the kernel for the list of all active interfaces and use any - interfaces except 127.0.0.1 that are broadcast capable. - - The option takes a list of interface strings. Each string - can be in any of the following forms: - - - a network interface name (such as eth0). - This may include shell-like wildcards so eth* will match - any interface starting with the substring "eth" - - an IP address. In this case the netmask is - determined from the list of interfaces obtained from the - kernel - - an IP/mask pair. - - a broadcast/mask pair. - - - The "mask" parameters can either be a bit length (such - as 24 for a C class network) or a full netmask in dotted - decimal form. - - The "IP" parameters above can either be a full dotted - decimal IP address or a hostname which will be looked up via - the OS's normal hostname resolution mechanisms. - - For example, the following line: - - interfaces = eth0 192.168.2.10/24 192.168.3.10/255.255.255.0 - - - would configure three network interfaces corresponding - to the eth0 device and IP addresses 192.168.2.10 and 192.168.3.10. - The netmasks of the latter two interfaces would be set to 255.255.255.0. - - See also bind - interfaces only. - - Default: all active interfaces except 127.0.0.1 - that are broadcast capable - - - - - - - invalid users (S) - This is a list of users that should not be allowed - to login to this service. This is really a paranoid - check to absolutely ensure an improper setting does not breach - your security. - - A name starting with a '@' is interpreted as an NIS - netgroup first (if your system supports NIS), and then as a UNIX - group if the name was not found in the NIS netgroup database. - - A name starting with '+' is interpreted only - by looking in the UNIX group database. A name starting with - '&' is interpreted only by looking in the NIS netgroup database - (this requires NIS to be working on your system). The characters - '+' and '&' may be used at the start of the name in either order - so the value +&group means check the - UNIX group database, followed by the NIS netgroup database, and - the value &+group means check the NIS - netgroup database, followed by the UNIX group database (the - same as the '@' prefix). - - The current servicename is substituted for %S. - This is useful in the [homes] section. - - See also valid users - . - - Default: no invalid users - Example: invalid users = root fred admin @wheel - - - - - - - - keepalive (G) - The value of the parameter (an integer) represents - the number of seconds between keepalive - packets. If this parameter is zero, no keepalive packets will be - sent. Keepalive packets, if sent, allow the server to tell whether - a client is still present and responding. - - Keepalives should, in general, not be needed if the socket - being used has the SO_KEEPALIVE attribute set on it (see socket options). - Basically you should only use this option if you strike difficulties. - - Default: keepalive = 300 - Example: keepalive = 600 - - - - - - - kernel oplocks (G) - For UNIXes that support kernel based oplocks - (currently only IRIX and the Linux 2.4 kernel), this parameter - allows the use of them to be turned on or off. - - Kernel oplocks support allows Samba oplocks - to be broken whenever a local UNIX process or NFS operation - accesses a file that smbd(8) - has oplocked. This allows complete data consistency between - SMB/CIFS, NFS and local file access (and is a very - cool feature :-). - - This parameter defaults to on, but is translated - to a no-op on systems that no not have the necessary kernel support. - You should never need to touch this parameter. - - See also the oplocks - and level2 oplocks - parameters. - - Default: kernel oplocks = yes - - - - - - - - lanman auth (G) - This parameter determines whether or not smbd will - attempt to authenticate users using the LANMAN password hash. - If disabled, only clients which support NT password hashes (e.g. Windows - NT/2000 clients, smbclient, etc... but not Windows 95/98 or the MS DOS - network client) will be able to connect to the Samba host. - - Default : lanman auth = yes - - - - - - - - - large readwrite (G) - This parameter determines whether or not smbd - supports the new 64k streaming read and write varient SMB requests introduced - with Windows 2000. Note that due to Windows 2000 client redirector bugs - this requires Samba to be running on a 64-bit capable operating system such - as IRIX, Solaris or a Linux 2.4 kernel. Can improve performance by 10% with - Windows 2000 clients. Defaults to on. Not as tested as some other Samba - code paths. - - - Default : large readwrite = yes - - - - - - - ldap admin dn (G) - The ldap admin dn defines the Distinguished - Name (DN) name used by Samba to contact the ldap server when retreiving - user account information. The ldap - admin dn is used in conjunction with the admin dn password - stored in the private/secrets.tdb file. See the - smbpasswd(8) man - page for more information on how to accomplish this. - - - - - - ldap delete dn (G) - This parameter specifies whether a delete - operation in the ldapsam deletes the complete entry or only the attributes - specific to Samba. - - - Default : ldap delete dn = no - - - - - - ldap del only sam attr (G) - Inverted synonym for - ldap delete dn. - - - - - - - - ldap filter (G) - This parameter specifies the RFC 2254 compliant LDAP search filter. - The default is to match the login name with the uid - attribute for all entries matching the sambaAccount - objectclass. Note that this filter should only return one entry. - - - - Default : ldap filter = (&(uid=%u)(objectclass=sambaAccount)) - - - - - - ldap port (G) - This parameter is only available if Samba has been - configure to include the --with-ldapsam option - at compile time. - - - - This option is used to control the tcp port number used to contact - the ldap server. - The default is to use the stand LDAPS port 636. - - - See Also: ldap ssl - - - Default : ldap port = 636 ; if ldap ssl = on - Default : ldap port = 389 ; if ldap ssl = off - - - - - - ldap server (G) - This parameter is only available if Samba has been - configure to include the --with-ldapsam option - at compile time. - - - - This parameter should contain the FQDN of the ldap directory - server which should be queried to locate user account information. - - - Default : ldap server = localhost - - - - - - ldap ssl (G) - This option is used to define whether or not Samba should - use SSL when connecting to the ldap server - This is NOT related to - Samba's previous SSL support which was enabled by specifying the - --with-ssl option to the configure - script. - - - - The ldap ssl can be set to one of three values: - - - Off = Never use SSL when querying the directory. - - Start_tls = Use the LDAPv3 StartTLS extended operation - (RFC2830) for communicating with the directory server. - - On = - Use SSL on the ldaps port when contacting the - ldap server. Only - available when the backwards-compatiblity - --with-ldapsam option is specified - to configure. See passdb backend - - - Default : ldap ssl = start_tls - - - - - - - - ldap suffix (G) - - Specifies where user and machine accounts are added to the tree. Can be overriden by ldap user suffix and ldap machine suffix. It also used as the base dn for all ldap searches. - - Default : none - - - - - - - ldap user suffix (G) - It specifies where users are added to the tree. - - - - - Default : none - - - - - - - ldap machine suffix (G) - It specifies where machines should be - added to the ldap tree. - - - - - Default : none - - - - - ldap passwd sync (G) - This option is used to define whether - or not Samba should sync the LDAP password with the NT - and LM hashes for normal accounts (NOT for - workstation, server or domain trusts) on a password - change via SAMBA. - - - - The ldap passwd sync can be set to one of three values: - - - Yes = Try to update the LDAP, NT and LM passwords and update the pwdLastSet time. - - No = Update NT and LM passwords and update the pwdLastSet time. - - Only = Only update the LDAP password and let the LDAP server do the rest. - - - Default : ldap passwd sync = no - - - - - ldap trust ids (G) - Normally, Samba validates each entry - in the LDAP server against getpwnam(). This allows - LDAP to be used for Samba with the unix system using - NIS (for example) and also ensures that Samba does not - present accounts that do not otherwise exist. - This option is used to disable this functionality, and - instead to rely on the presence of the appropriate - attributes in LDAP directly, which can result in a - significant performance boost in some situations. - Setting this option to yes effectivly assumes - that the local machine is running nss_ldap against the - same LDAP server. - - Default: ldap trust ids = No - - - - - level2 oplocks (S) - This parameter controls whether Samba supports - level2 (read-only) oplocks on a share. - - Level2, or read-only oplocks allow Windows NT clients - that have an oplock on a file to downgrade from a read-write oplock - to a read-only oplock once a second client opens the file (instead - of releasing all oplocks on a second open, as in traditional, - exclusive oplocks). This allows all openers of the file that - support level2 oplocks to cache the file for read-ahead only (ie. - they may not cache writes or lock requests) and increases performance - for many accesses of files that are not commonly written (such as - application .EXE files). - - Once one of the clients which have a read-only oplock - writes to the file all clients are notified (no reply is needed - or waited for) and told to break their oplocks to "none" and - delete any read-ahead caches. - - It is recommended that this parameter be turned on - to speed access to shared executables. - - For more discussions on level2 oplocks see the CIFS spec. - - Currently, if kernel - oplocks are supported then level2 oplocks are - not granted (even if this parameter is set to yes). - Note also, the oplocks - parameter must be set to yes on this share in order for - this parameter to have any effect. - - See also the oplocks - and kernel oplocks - parameters. - - Default: level2 oplocks = yes - - - - - - - - - lm announce (G) - This parameter determines if - nmbd(8) will produce Lanman announce - broadcasts that are needed by OS/2 clients in order for them to see - the Samba server in their browse list. This parameter can have three - values, yes, no, or - auto. The default is auto. - If set to no Samba will never produce these - broadcasts. If set to yes Samba will produce - Lanman announce broadcasts at a frequency set by the parameter - lm interval. If set to auto - Samba will not send Lanman announce broadcasts by default but will - listen for them. If it hears such a broadcast on the wire it will - then start sending them at a frequency set by the parameter - lm interval. - - See also lm interval - . - - Default: lm announce = auto - Example: lm announce = yes - - - - - - - lm interval (G) - If Samba is set to produce Lanman announce - broadcasts needed by OS/2 clients (see the - lm announce parameter) then this - parameter defines the frequency in seconds with which they will be - made. If this is set to zero then no Lanman announcements will be - made despite the setting of the lm announce - parameter. - - See also lm - announce. - - Default: lm interval = 60 - Example: lm interval = 120 - - - - - - - load printers (G) - A boolean variable that controls whether all - printers in the printcap will be loaded for browsing by default. - See the printers section for - more details. - - Default: load printers = yes - - - - - - - local master (G) - This option allows - nmbd(8) to try and become a local master browser - on a subnet. If set to no then - nmbd will not attempt to become a local master browser - on a subnet and will also lose in all browsing elections. By - default this value is set to yes. Setting this value to yes doesn't - mean that Samba will become the local master - browser on a subnet, just that nmbd will - participate in elections for local master browser. - - Setting this value to no will cause nmbd - never to become a local master browser. - - Default: local master = yes - - - - - - - lock dir (G) - Synonym for - lock directory. - - - - - - lock directory (G) - This option specifies the directory where lock - files will be placed. The lock files are used to implement the - max connections - option. - - Default: lock directory = ${prefix}/var/locks - Example: lock directory = /var/run/samba/locks - - - - - - - lock spin count (G) - This parameter controls the number of times - that smbd should attempt to gain a byte range lock on the - behalf of a client request. Experiments have shown that - Windows 2k servers do not reply with a failure if the lock - could not be immediately granted, but try a few more times - in case the lock could later be aquired. This behavior - is used to support PC database formats such as MS Access - and FoxPro. - - - Default: lock spin count = 2 - - - - - - - - lock spin time (G) - The time in microseconds that smbd should - pause before attempting to gain a failed lock. See - lock spin - count for more details. - - - Default: lock spin time = 10 - - - - - - - locking (S) - This controls whether or not locking will be - performed by the server in response to lock requests from the - client. - - If locking = no, all lock and unlock - requests will appear to succeed and all lock queries will report - that the file in question is available for locking. - - If locking = yes, real locking will be performed - by the server. - - This option may be useful for read-only - filesystems which may not need locking (such as - CDROM drives), although setting this parameter of no - is not really recommended even in this case. - - Be careful about disabling locking either globally or in a - specific service, as lack of locking may result in data corruption. - You should never need to set this parameter. - - Default: locking = yes - - - - - - - log file (G) - This option allows you to override the name - of the Samba log file (also known as the debug file). - - This option takes the standard substitutions, allowing - you to have separate log files for each user or machine. - - Example: log file = /usr/local/samba/var/log.%m - - - - - - - log level (G) - The value of the parameter (a astring) allows - the debug level (logging level) to be specified in the - smb.conf file. This parameter has been - extended since the 2.2.x series, now it allow to specify the debug - level for multiple debug classes. This is to give greater - flexibility in the configuration of the system. - - The default will be the log level specified on - the command line or level zero if none was specified. - - Example: log level = 3 passdb:5 auth:10 winbind:2 - - - - - - - logon drive (G) - This parameter specifies the local path to - which the home directory will be connected (see logon home) - and is only used by NT Workstations. - - Note that this option is only useful if Samba is set up as a - logon server. - - Default: logon drive = z: - Example: logon drive = h: - - - - - - - logon home (G) - This parameter specifies the home directory - location when a Win95/98 or NT Workstation logs into a Samba PDC. - It allows you to do - - C:\> NET USE H: /HOME - - - from a command prompt, for example. - - This option takes the standard substitutions, allowing - you to have separate logon scripts for each user or machine. - - This parameter can be used with Win9X workstations to ensure - that roaming profiles are stored in a subdirectory of the user's - home directory. This is done in the following way: - - logon home = \\%N\%U\profile - - This tells Samba to return the above string, with - substitutions made when a client requests the info, generally - in a NetUserGetInfo request. Win9X clients truncate the info to - \\server\share when a user does net use /home - but use the whole string when dealing with profiles. - - Note that in prior versions of Samba, the - logon path was returned rather than - logon home. This broke net use - /home but allowed profiles outside the home directory. - The current implementation is correct, and can be used for - profiles if you use the above trick. - - This option is only useful if Samba is set up as a logon - server. - - Default: logon home = "\\%N\%U" - Example: logon home = "\\remote_smb_server\%U" - - - - - - logon path (G) - This parameter specifies the home directory - where roaming profiles (NTuser.dat etc files for Windows NT) are - stored. Contrary to previous versions of these manual pages, it has - nothing to do with Win 9X roaming profiles. To find out how to - handle roaming profiles for Win 9X system, see the - logon home parameter. - - This option takes the standard substitutions, allowing you - to have separate logon scripts for each user or machine. It also - specifies the directory from which the "Application Data", - (desktop, start menu, - network neighborhood, programs - and other folders, and their contents, are loaded and displayed on - your Windows NT client. - - The share and the path must be readable by the user for - the preferences and directories to be loaded onto the Windows NT - client. The share must be writeable when the user logs in for the first - time, in order that the Windows NT client can create the NTuser.dat - and other directories. - - Thereafter, the directories and any of the contents can, - if required, be made read-only. It is not advisable that the - NTuser.dat file be made read-only - rename it to NTuser.man to - achieve the desired effect (a MANdatory - profile). - - Windows clients can sometimes maintain a connection to - the [homes] share, even though there is no user logged in. - Therefore, it is vital that the logon path does not include a - reference to the homes share (i.e. setting this parameter to - \%N\%U\profile_path will cause problems). - - This option takes the standard substitutions, allowing - you to have separate logon scripts for each user or machine. - - Note that this option is only useful if Samba is set up - as a logon server. - - Default: logon path = \\%N\%U\profile - Example: logon path = \\PROFILESERVER\PROFILE\%U - - - - - - - logon script (G) - This parameter specifies the batch file (.bat) or - NT command file (.cmd) to be downloaded and run on a machine when - a user successfully logs in. The file must contain the DOS - style CR/LF line endings. Using a DOS-style editor to create the - file is recommended. - - The script must be a relative path to the [netlogon] - service. If the [netlogon] service specifies a - path of /usr/local/samba/netlogon - , and logon script = STARTUP.BAT, then - the file that will be downloaded is: - - /usr/local/samba/netlogon/STARTUP.BAT - - The contents of the batch file are entirely your choice. A - suggested command would be to add NET TIME \\SERVER /SET - /YES, to force every machine to synchronize clocks with - the same time server. Another use would be to add NET USE - U: \\SERVER\UTILS for commonly used utilities, or - NET USE Q: \\SERVER\ISO9001_QA for example. - - Note that it is particularly important not to allow write - access to the [netlogon] share, or to grant users write permission - on the batch files in a secure environment, as this would allow - the batch files to be arbitrarily modified and security to be - breached. - - This option takes the standard substitutions, allowing you - to have separate logon scripts for each user or machine. - - This option is only useful if Samba is set up as a logon - server. - - Default: no logon script defined - Example: logon script = scripts\%U.bat - - - - - - - lppause command (S) - This parameter specifies the command to be - executed on the server host in order to stop printing or spooling - a specific print job. - - This command should be a program or script which takes - a printer name and job number to pause the print job. One way - of implementing this is by using job priorities, where jobs - having a too low priority won't be sent to the printer. - - If a %p is given then the printer name - is put in its place. A %j is replaced with - the job number (an integer). On HPUX (see printing=hpux - ), if the -p%p option is added - to the lpq command, the job will show up with the correct status, i.e. - if the job priority is lower than the set fence priority it will - have the PAUSED status, whereas if the priority is equal or higher it - will have the SPOOLED or PRINTING status. - - Note that it is good practice to include the absolute path - in the lppause command as the PATH may not be available to the server. - - See also the printing - parameter. - - Default: Currently no default value is given to - this string, unless the value of the printing - parameter is SYSV, in which case the default is : - - lp -i %p-%j -H hold - - or if the value of the printing parameter - is SOFTQ, then the default is: - - qstat -s -j%j -h - - Example for HPUX: lppause command = /usr/bin/lpalt - %p-%j -p0 - - - - - - - lpq cache time (G) - This controls how long lpq info will be cached - for to prevent the lpq command being called too - often. A separate cache is kept for each variation of the - lpq command used by the system, so if you use different - lpq commands for different users then they won't - share cache information. - - The cache files are stored in /tmp/lpq.xxxx - where xxxx is a hash of the lpq command in use. - - The default is 10 seconds, meaning that the cached results - of a previous identical lpq command will be used - if the cached data is less than 10 seconds old. A large value may - be advisable if your lpq command is very slow. - - A value of 0 will disable caching completely. - - See also the printing - parameter. - - Default: lpq cache time = 10 - Example: lpq cache time = 30 - - - - - - - lpq command (S) - This parameter specifies the command to be - executed on the server host in order to obtain lpq - -style printer status information. - - This command should be a program or script which - takes a printer name as its only parameter and outputs printer - status information. - - Currently nine styles of printer status information - are supported; BSD, AIX, LPRNG, PLP, SYSV, HPUX, QNX, CUPS, and SOFTQ. - This covers most UNIX systems. You control which type is expected - using the printing = option. - - Some clients (notably Windows for Workgroups) may not - correctly send the connection number for the printer they are - requesting status information about. To get around this, the - server reports on the first printer service connected to by the - client. This only happens if the connection number sent is invalid. - - If a %p is given then the printer name - is put in its place. Otherwise it is placed at the end of the - command. - - Note that it is good practice to include the absolute path - in the lpq command as the $PATH - may not be available to the server. When compiled with - the CUPS libraries, no lpq command is - needed because smbd will make a library call to obtain the - print queue listing. - - See also the printing - parameter. - - Default: depends on the setting of - printing - - Example: lpq command = /usr/bin/lpq -P%p - - - - - - - lpresume command (S) - This parameter specifies the command to be - executed on the server host in order to restart or continue - printing or spooling a specific print job. - - This command should be a program or script which takes - a printer name and job number to resume the print job. See - also the lppause command - parameter. - - If a %p is given then the printer name - is put in its place. A %j is replaced with - the job number (an integer). - - Note that it is good practice to include the absolute path - in the lpresume command as the PATH may not - be available to the server. - - See also the printing - parameter. - - Default: Currently no default value is given - to this string, unless the value of the printing - parameter is SYSV, in which case the default is : - - lp -i %p-%j -H resume - - or if the value of the printing parameter - is SOFTQ, then the default is: - - qstat -s -j%j -r - - Example for HPUX: lpresume command = /usr/bin/lpalt - %p-%j -p2 - - - - - - - lprm command (S) - This parameter specifies the command to be - executed on the server host in order to delete a print job. - - This command should be a program or script which takes - a printer name and job number, and deletes the print job. - - If a %p is given then the printer name - is put in its place. A %j is replaced with - the job number (an integer). - - Note that it is good practice to include the absolute - path in the lprm command as the PATH may not be - available to the server. - - See also the printing - parameter. - - Default: depends on the setting of printing - - - Example 1: lprm command = /usr/bin/lprm -P%p %j - - Example 2: lprm command = /usr/bin/cancel %p-%j - - - - - - - machine password timeout (G) - If a Samba server is a member of a Windows - NT Domain (see the security = domain) - parameter) then periodically a running - smbd(8) process will try and change the MACHINE ACCOUNT - PASSWORD stored in the TDB called private/secrets.tdb - . This parameter specifies how often this password - will be changed, in seconds. The default is one week (expressed in - seconds), the same as a Windows NT Domain member server. - - See also smbpasswd(8) - , and the - security = domain) parameter. - - Default: machine password timeout = 604800 - - - - - - magic output (S) - This parameter specifies the name of a file - which will contain output created by a magic script (see the - magic script - parameter below). - - Warning: If two clients use the same magic script - in the same directory the output file content - is undefined. - - Default: magic output = <magic script name>.out - - - Example: magic output = myfile.txt - - - - - - - magic script (S) - This parameter specifies the name of a file which, - if opened, will be executed by the server when the file is closed. - This allows a UNIX script to be sent to the Samba host and - executed on behalf of the connected user. - - Scripts executed in this way will be deleted upon - completion assuming that the user has the appropriate level - of privilege and the file permissions allow the deletion. - - If the script generates output, output will be sent to - the file specified by the - magic output parameter (see above). - - Note that some shells are unable to interpret scripts - containing CR/LF instead of CR as - the end-of-line marker. Magic scripts must be executable - as is on the host, which for some hosts and - some shells will require filtering at the DOS end. - - Magic scripts are EXPERIMENTAL and - should NOT be relied upon. - - Default: None. Magic scripts disabled. - Example: magic script = user.csh - - - - - - - mangle case (S) - See the section on - NAME MANGLING - - Default: mangle case = no - - - - - - mangled map (S) - This is for those who want to directly map UNIX - file names which cannot be represented on Windows/DOS. The mangling - of names is not always what is needed. In particular you may have - documents with file extensions that differ between DOS and UNIX. - For example, under UNIX it is common to use .html - for HTML files, whereas under Windows/DOS .htm - is more commonly used. - - So to map html to htm - you would use: - - mangled map = (*.html *.htm) - - One very useful case is to remove the annoying ;1 - off the ends of filenames on some CDROMs (only visible - under some UNIXes). To do this use a map of (*;1 *;). - - Default: no mangled map - Example: mangled map = (*;1 *;) - - - - - - mangled names (S) - This controls whether non-DOS names under UNIX - should be mapped to DOS-compatible names ("mangled") and made visible, - or whether non-DOS names should simply be ignored. - - See the section on - NAME MANGLING for details on how to control the mangling process. - - If mangling is used then the mangling algorithm is as follows: - - - The first (up to) five alphanumeric characters - before the rightmost dot of the filename are preserved, forced - to upper case, and appear as the first (up to) five characters - of the mangled name. - - A tilde "~" is appended to the first part of the mangled - name, followed by a two-character unique sequence, based on the - original root name (i.e., the original filename minus its final - extension). The final extension is included in the hash calculation - only if it contains any upper case characters or is longer than three - characters. - - Note that the character to use may be specified using - the mangling char - option, if you don't like '~'. - - The first three alphanumeric characters of the final - extension are preserved, forced to upper case and appear as the - extension of the mangled name. The final extension is defined as that - part of the original filename after the rightmost dot. If there are no - dots in the filename, the mangled name will have no extension (except - in the case of "hidden files" - see below). - - Files whose UNIX name begins with a dot will be - presented as DOS hidden files. The mangled name will be created as - for other filenames, but with the leading dot removed and "___" as - its extension regardless of actual original extension (that's three - underscores). - - - The two-digit hash value consists of upper case - alphanumeric characters. - - This algorithm can cause name collisions only if files - in a directory share the same first five alphanumeric characters. - The probability of such a clash is 1/1300. - - The name mangling (if enabled) allows a file to be - copied between UNIX directories from Windows/DOS while retaining - the long UNIX filename. UNIX files can be renamed to a new extension - from Windows/DOS and will retain the same basename. Mangled names - do not change between sessions. - - Default: mangled names = yes - - - - - mangling method (G) - controls the algorithm used for the generating - the mangled names. Can take two different values, "hash" and - "hash2". "hash" is the default and is the algorithm that has been - used in Samba for many years. "hash2" is a newer and considered - a better algorithm (generates less collisions) in the names. - However, many Win32 applications store the mangled names and so - changing to the new algorithm must not be done - lightly as these applications may break unless reinstalled. - Default: mangling method = hash2 - Example: mangling method = hash - - - - - mangle prefix (G) - controls the number of prefix - characters from the original name used when generating - the mangled names. A larger value will give a weaker - hash and therefore more name collisions. The minimum - value is 1 and the maximum value is 6. - Default: mangle prefix = 1 - Example: mangle prefix = 4 - - - - - mangled stack (G) - This parameter controls the number of mangled names - that should be cached in the Samba server - smbd(8). - - This stack is a list of recently mangled base names - (extensions are only maintained if they are longer than 3 characters - or contains upper case characters). - - The larger this value, the more likely it is that mangled - names can be successfully converted to correct long UNIX names. - However, large stack sizes will slow most directory accesses. Smaller - stacks save memory in the server (each stack element costs 256 bytes). - - - It is not possible to absolutely guarantee correct long - filenames, so be prepared for some surprises! - - Default: mangled stack = 50 - Example: mangled stack = 100 - - - - - - - - mangling char (S) - This controls what character is used as - the magic character in name mangling. The default is a '~' - but this may interfere with some software. Use this option to set - it to whatever you prefer. - - Default: mangling char = ~ - Example: mangling char = ^ - - - - - - - - - map archive (S) - This controls whether the DOS archive attribute - should be mapped to the UNIX owner execute bit. The DOS archive bit - is set when a file has been modified since its last backup. One - motivation for this option it to keep Samba/your PC from making - any file it touches from becoming executable under UNIX. This can - be quite annoying for shared source code, documents, etc... - - Note that this requires the create mask - parameter to be set such that owner execute bit is not masked out - (i.e. it must include 100). See the parameter - create mask for details. - - Default: map archive = yes - - - - - - - map hidden (S) - This controls whether DOS style hidden files - should be mapped to the UNIX world execute bit. - - Note that this requires the create mask - to be set such that the world execute bit is not masked out (i.e. - it must include 001). See the parameter - create mask for details. - - Default: map hidden = no - - - - - - map system (S) - This controls whether DOS style system files - should be mapped to the UNIX group execute bit. - - Note that this requires the create mask - to be set such that the group execute bit is not masked out (i.e. - it must include 010). See the parameter - create mask for details. - - Default: map system = no - - - - - - map to guest (G) - This parameter is only useful in - security modes other than security = share - - i.e. user, server, - and domain. - - This parameter can take three different values, which tell - smbd(8) what to do with user - login requests that don't match a valid UNIX user in some way. - - The three settings are : - - - Never - Means user login - requests with an invalid password are rejected. This is the - default. - - Bad User - Means user - logins with an invalid password are rejected, unless the username - does not exist, in which case it is treated as a guest login and - mapped into the - guest account. - - Bad Password - Means user logins - with an invalid password are treated as a guest login and mapped - into the guest account. Note that - this can cause problems as it means that any user incorrectly typing - their password will be silently logged on as "guest" - and - will not know the reason they cannot access files they think - they should - there will have been no message given to them - that they got their password wrong. Helpdesk services will - hate you if you set the map to - guest parameter this way :-). - - - Note that this parameter is needed to set up "Guest" - share services when using security modes other than - share. This is because in these modes the name of the resource being - requested is not sent to the server until after - the server has successfully authenticated the client so the server - cannot make authentication decisions at the correct time (connection - to the share) for "Guest" shares. - - For people familiar with the older Samba releases, this - parameter maps to the old compile-time setting of the - GUEST_SESSSETUP value in local.h. - - Default: map to guest = Never - Example: map to guest = Bad User - - - - - - - max connections (S) - This option allows the number of simultaneous - connections to a service to be limited. If max connections - is greater than 0 then connections will be refused if - this number of connections to the service are already open. A value - of zero mean an unlimited number of connections may be made. - - Record lock files are used to implement this feature. The - lock files will be stored in the directory specified by the lock directory - option. - - Default: max connections = 0 - Example: max connections = 10 - - - - - - - max disk size (G) - This option allows you to put an upper limit - on the apparent size of disks. If you set this option to 100 - then all shares will appear to be not larger than 100 MB in - size. - - Note that this option does not limit the amount of - data you can put on the disk. In the above case you could still - store much more than 100 MB on the disk, but if a client ever asks - for the amount of free disk space or the total disk size then the - result will be bounded by the amount specified in max - disk size. - - This option is primarily useful to work around bugs - in some pieces of software that can't handle very large disks, - particularly disks over 1GB in size. - - A max disk size of 0 means no limit. - - Default: max disk size = 0 - Example: max disk size = 1000 - - - - - - - max log size (G) - This option (an integer in kilobytes) specifies - the max size the log file should grow to. Samba periodically checks - the size and if it is exceeded it will rename the file, adding - a .old extension. - - A size of 0 means no limit. - - Default: max log size = 5000 - Example: max log size = 1000 - - - - - - - max mux (G) - This option controls the maximum number of - outstanding simultaneous SMB operations that Samba tells the client - it will allow. You should never need to set this parameter. - - Default: max mux = 50 - - - - - - - max open files (G) - This parameter limits the maximum number of - open files that one smbd(8) file - serving process may have open for a client at any one time. The - default for this parameter is set very high (10,000) as Samba uses - only one bit per unopened file. - - The limit of the number of open files is usually set - by the UNIX per-process file descriptor limit rather than - this parameter so you should never need to touch this parameter. - - Default: max open files = 10000 - - - - - - - max print jobs (S) - This parameter limits the maximum number of - jobs allowable in a Samba printer queue at any given moment. - If this number is exceeded, - smbd(8) will remote "Out of Space" to the client. - See all total - print jobs. - - - Default: max print jobs = 1000 - Example: max print jobs = 5000 - - - - - - max protocol (G) - The value of the parameter (a string) is the highest - protocol level that will be supported by the server. - - Possible values are : - - CORE: Earliest version. No - concept of user names. - - COREPLUS: Slight improvements on - CORE for efficiency. - - LANMAN1: First - modern version of the protocol. Long filename - support. - - LANMAN2: Updates to Lanman1 protocol. - - - NT1: Current up to date version of - the protocol. Used by Windows NT. Known as CIFS. - - - Normally this option should not be set as the automatic - negotiation phase in the SMB protocol takes care of choosing - the appropriate protocol. - - See also min - protocol - - Default: max protocol = NT1 - Example: max protocol = LANMAN1 - - - - - - - max smbd processes (G) - This parameter limits the maximum number of - smbd(8) - processes concurrently running on a system and is intended - as a stopgap to prevent degrading service to clients in the event - that the server has insufficient resources to handle more than this - number of connections. Remember that under normal operating - conditions, each user will have an smbd associated with him or her - to handle connections to all shares from a given host. - - - Default: max smbd processes = 0 ## no limit - Example: max smbd processes = 1000 - - - - - - - - max ttl (G) - This option tells nmbd(8) - what the default 'time to live' of NetBIOS names should be (in seconds) - when nmbd is requesting a name using either a - broadcast packet or from a WINS server. You should never need to - change this parameter. The default is 3 days. - - Default: max ttl = 259200 - - - - - - - max wins ttl (G) - This option tells nmbd(8) - when acting as a WINS server ( - wins support = yes) what the maximum - 'time to live' of NetBIOS names that nmbd - will grant will be (in seconds). You should never need to change this - parameter. The default is 6 days (518400 seconds). - - See also the min - wins ttl parameter. - - Default: max wins ttl = 518400 - - - - - - - max xmit (G) - This option controls the maximum packet size - that will be negotiated by Samba. The default is 65535, which - is the maximum. In some cases you may find you get better performance - with a smaller value. A value below 2048 is likely to cause problems. - - - Default: max xmit = 65535 - Example: max xmit = 8192 - - - - - - - message command (G) - This specifies what command to run when the - server receives a WinPopup style message. - - This would normally be a command that would - deliver the message somehow. How this is to be done is - up to your imagination. - - An example is: - - message command = csh -c 'xedit %s;rm %s' & - - - This delivers the message using xedit, then - removes it afterwards. NOTE THAT IT IS VERY IMPORTANT - THAT THIS COMMAND RETURN IMMEDIATELY. That's why I - have the '&' on the end. If it doesn't return immediately then - your PCs may freeze when sending messages (they should recover - after 30 seconds, hopefully). - - All messages are delivered as the global guest user. - The command takes the standard substitutions, although - %u won't work (%U may be better - in this case). - - Apart from the standard substitutions, some additional - ones apply. In particular: - - - %s = the filename containing - the message. - - %t = the destination that - the message was sent to (probably the server name). - - %f = who the message - is from. - - - You could make this command send mail, or whatever else - takes your fancy. Please let us know of any really interesting - ideas you have. - - - Here's a way of sending the messages as mail to root: - - message command = /bin/mail -s 'message from %f on - %m' root < %s; rm %s - - If you don't have a message command then the message - won't be delivered and Samba will tell the sender there was - an error. Unfortunately WfWg totally ignores the error code - and carries on regardless, saying that the message was delivered. - - - If you want to silently delete it then try: - - message command = rm %s - - Default: no message command - Example: message command = csh -c 'xedit %s; - rm %s' & - - - - - - - - min passwd length (G) - Synonym for - min password length. - - - - - - - min password length (G) - This option sets the minimum length in characters - of a plaintext password that smbd will accept when performing - UNIX password changing. - - See also unix - password sync, - passwd program and passwd chat debug - . - - Default: min password length = 5 - - - - - - - min print space (S) - This sets the minimum amount of free disk - space that must be available before a user will be able to spool - a print job. It is specified in kilobytes. The default is 0, which - means a user can always spool a print job. - - See also the printing - parameter. - - Default: min print space = 0 - Example: min print space = 2000 - - - - - - - - min protocol (G) - The value of the parameter (a string) is the - lowest SMB protocol dialect than Samba will support. Please refer - to the max protocol - parameter for a list of valid protocol names and a brief description - of each. You may also wish to refer to the C source code in - source/smbd/negprot.c for a listing of known protocol - dialects supported by clients. - - If you are viewing this parameter as a security measure, you should - also refer to the lanman - auth parameter. Otherwise, you should never need - to change this parameter. - - Default : min protocol = CORE - Example : min protocol = NT1 # disable DOS - clients - - - - - - - - min wins ttl (G) - This option tells nmbd(8) - when acting as a WINS server ( - wins support = yes) what the minimum 'time to live' - of NetBIOS names that nmbd will grant will be (in - seconds). You should never need to change this parameter. The default - is 6 hours (21600 seconds). - - Default: min wins ttl = 21600 - - - - - - msdfs proxy (S) - This parameter indicates that the share is a - stand-in for another CIFS share whose location is specified by - the value of the parameter. When clients attempt to connect to - this share, they are redirected to the proxied share using - the SMB-Dfs protocol. - Only Dfs roots can act as proxy shares. Take a look at the - msdfs root - and - host msdfs - options to find out how to set up a Dfs root share. - Example: msdfs proxy = \otherserver\someshare - - - - - - - - msdfs root (S) - This boolean parameter is only available if - Samba is configured and compiled with the - --with-msdfs option. If set to yes, - Samba treats the share as a Dfs root and allows clients to browse - the distributed file system tree rooted at the share directory. - Dfs links are specified in the share directory by symbolic - links of the form msdfs:serverA\shareA,serverB\shareB - and so on. For more information on setting up a Dfs tree - on Samba, refer to msdfs_setup.html - . - - See also host msdfs - - - Default: msdfs root = no - - - - - name cache timeout (G) - Specifies the number of seconds it takes before - entries in samba's hostname resolve cache time out. If - the timeout is set to 0. the caching is disabled. - - - - Default: name cache timeout = 660 - Example: name cache timeout = 0 - - - - - name resolve order (G) - This option is used by the programs in the Samba - suite to determine what naming services to use and in what order - to resolve host names to IP addresses. The option takes a space - separated string of name resolution options. - - The options are :"lmhosts", "host", "wins" and "bcast". They - cause names to be resolved as follows : - - - lmhosts : Lookup an IP - address in the Samba lmhosts file. If the line in lmhosts has - no name type attached to the NetBIOS name (see the lmhosts(5) for details) then - any name type matches for lookup. - - host : Do a standard host - name to IP address resolution, using the system /etc/hosts - , NIS, or DNS lookups. This method of name resolution - is operating system depended for instance on IRIX or Solaris this - may be controlled by the /etc/nsswitch.conf - file. Note that this method is only used if the NetBIOS name - type being queried is the 0x20 (server) name type, otherwise - it is ignored. - - wins : Query a name with - the IP address listed in the - wins server parameter. If no WINS server has - been specified this method will be ignored. - - bcast : Do a broadcast on - each of the known local interfaces listed in the interfaces - parameter. This is the least reliable of the name resolution - methods as it depends on the target host being on a locally - connected subnet. - - - Default: name resolve order = lmhosts host wins bcast - - Example: name resolve order = lmhosts bcast host - - - This will cause the local lmhosts file to be examined - first, followed by a broadcast attempt, followed by a normal - system hostname lookup. - - - - - - - - netbios aliases (G) - This is a list of NetBIOS names that nmbd(8) will advertise as additional - names by which the Samba server is known. This allows one machine - to appear in browse lists under multiple names. If a machine is - acting as a browse server or logon server none - of these names will be advertised as either browse server or logon - servers, only the primary name of the machine will be advertised - with these capabilities. - - See also netbios - name. - - Default: empty string (no additional names) - Example: netbios aliases = TEST TEST1 TEST2 - - - - - - - netbios name (G) - This sets the NetBIOS name by which a Samba - server is known. By default it is the same as the first component - of the host's DNS name. If a machine is a browse server or - logon server this name (or the first component - of the hosts DNS name) will be the name that these services are - advertised under. - - See also netbios - aliases. - - Default: machine DNS name - Example: netbios name = MYNAME - - - - - - - netbios scope (G) - This sets the NetBIOS scope that Samba will - operate under. This should not be set unless every machine - on your LAN also sets this value. - - - - - - nis homedir (G) - Get the home share server from a NIS map. For - UNIX systems that use an automounter, the user's home directory - will often be mounted on a workstation on demand from a remote - server. - - When the Samba logon server is not the actual home directory - server, but is mounting the home directories via NFS then two - network hops would be required to access the users home directory - if the logon server told the client to use itself as the SMB server - for home directories (one over SMB and one over NFS). This can - be very slow. - - This option allows Samba to return the home share as - being on a different server to the logon server and as - long as a Samba daemon is running on the home directory server, - it will be mounted on the Samba client directly from the directory - server. When Samba is returning the home share to the client, it - will consult the NIS map specified in - homedir map and return the server - listed there. - - Note that for this option to work there must be a working - NIS system and the Samba server with this option must also - be a logon server. - - Default: nis homedir = no - - - - - - - non unix account range (G) - The non unix account range parameter specifies - the range of 'user ids' that are allocated by the various 'non unix - account' passdb backends. These backends allow - the storage of passwords for users who don't exist in /etc/passwd. - This is most often used for machine account creation. - This range of ids should have no existing local or NIS users within - it as strange conflicts can occur otherwise. - - NOTE: These userids never appear on the system and Samba will never - 'become' these users. They are used only to ensure that the algorithmic - RID mapping does not conflict with normal users. - - - Default: non unix account range = <empty string> - - - Example: non unix account range = 10000-20000 - - - - - - - nt acl support (S) - This boolean parameter controls whether - smbd(8) will attempt to map - UNIX permissions into Windows NT access control lists. - This parameter was formally a global parameter in releases - prior to 2.2.2. - - Default: nt acl support = yes - - - - - - - nt pipe support (G) - This boolean parameter controls whether - smbd(8) will allow Windows NT - clients to connect to the NT SMB specific IPC$ - pipes. This is a developer debugging option and can be left - alone. - - Default: nt pipe support = yes - - - - - - - nt status support (G) - This boolean parameter controls whether smbd(8) will negotiate NT specific status - support with Windows NT/2k/XP clients. This is a developer - debugging option and should be left alone. - If this option is set to no then Samba offers - exactly the same DOS error codes that versions prior to Samba 2.2.3 - reported. - - You should not need to ever disable this parameter. - - Default: nt status support = yes - - - - - - null passwords (G) - Allow or disallow client access to accounts - that have null passwords. - - See also smbpasswd (5). - - Default: null passwords = no - - - - - - - - obey pam restrictions (G) - When Samba 2.2 is configured to enable PAM support - (i.e. --with-pam), this parameter will control whether or not Samba - should obey PAM's account and session management directives. The - default behavior is to use PAM for clear text authentication only - and to ignore any account or session management. Note that Samba - always ignores PAM for authentication in the case of encrypt passwords = yes - . The reason is that PAM modules cannot support the challenge/response - authentication mechanism needed in the presence of SMB password encryption. - - - Default: obey pam restrictions = no - - - - - - - - - only user (S) - This is a boolean option that controls whether - connections with usernames not in the user - list will be allowed. By default this option is disabled so that a - client can supply a username to be used by the server. Enabling - this parameter will force the server to only use the login - names from the user list and is only really - useful in share level - security. - - Note that this also means Samba won't try to deduce - usernames from the service name. This can be annoying for - the [homes] section. To get around this you could use user = - %S which means your user list - will be just the service name, which for home directories is the - name of the user. - - See also the user - parameter. - - Default: only user = no - - - - - - - - only guest (S) - A synonym for - guest only. - - - - - - - oplock break wait time (G) - This is a tuning parameter added due to bugs in - both Windows 9x and WinNT. If Samba responds to a client too - quickly when that client issues an SMB that can cause an oplock - break request, then the network client can fail and not respond - to the break request. This tuning parameter (which is set in milliseconds) - is the amount of time Samba will wait before sending an oplock break - request to such (broken) clients. - - DO NOT CHANGE THIS PARAMETER UNLESS YOU HAVE READ - AND UNDERSTOOD THE SAMBA OPLOCK CODE. - - Default: oplock break wait time = 0 - - - - - - oplock contention limit (S) - This is a very advanced - smbd(8) tuning option to - improve the efficiency of the granting of oplocks under multiple - client contention for the same file. - - In brief it specifies a number, which causes smbd not to - grant an oplock even when requested if the approximate number of - clients contending for an oplock on the same file goes over this - limit. This causes smbd to behave in a similar - way to Windows NT. - - DO NOT CHANGE THIS PARAMETER UNLESS YOU HAVE READ - AND UNDERSTOOD THE SAMBA OPLOCK CODE. - - Default: oplock contention limit = 2 - - - - - - - - - oplocks (S) - This boolean option tells smbd whether to - issue oplocks (opportunistic locks) to file open requests on this - share. The oplock code can dramatically (approx. 30% or more) improve - the speed of access to files on Samba servers. It allows the clients - to aggressively cache files locally and you may want to disable this - option for unreliable network environments (it is turned on by - default in Windows NT Servers). For more information see the file - Speed.txt in the Samba docs/ - directory. - - Oplocks may be selectively turned off on certain files with a - share. See the - veto oplock files parameter. On some systems - oplocks are recognized by the underlying operating system. This - allows data synchronization between all access to oplocked files, - whether it be via Samba or NFS or a local UNIX process. See the - kernel oplocks parameter for details. - - See also the kernel - oplocks and - level2 oplocks parameters. - - Default: oplocks = yes - - - - - ntlm auth (G) - This parameter determines whether or not smbd will - attempt to authenticate users using the NTLM password hash. - If disabled, only the lanman password hashes will be used. - - - Please note that at least this option or lanman auth should be enabled in order to be able to log in. - - - Default : ntlm auth = yes - - - - - os level (G) - This integer value controls what level Samba - advertises itself as for browse elections. The value of this - parameter determines whether nmbd(8) - has a chance of becoming a local master browser for the - WORKGROUP in the local broadcast area. - - Note :By default, Samba will win - a local master browsing election over all Microsoft operating - systems except a Windows NT 4.0/2000 Domain Controller. This - means that a misconfigured Samba host can effectively isolate - a subnet for browsing purposes. See BROWSING.txt - in the Samba docs/ directory - for details. - - Default: os level = 20 - Example: os level = 65 - - - - - - - os2 driver map (G) - The parameter is used to define the absolute - path to a file containing a mapping of Windows NT printer driver - names to OS/2 printer driver names. The format is: - - <nt driver name> = <os2 driver - name>.<device name> - - For example, a valid entry using the HP LaserJet 5 - printer driver would appear as HP LaserJet 5L = LASERJET.HP - LaserJet 5L. - - The need for the file is due to the printer driver namespace - problem described in the Samba - Printing HOWTO. For more details on OS/2 clients, please - refer to the OS2-Client-HOWTO - containing in the Samba documentation. - - Default: os2 driver map = <empty string> - - - - - - - pam password change (G) - With the addition of better PAM support in Samba 2.2, - this parameter, it is possible to use PAM's password change control - flag for Samba. If enabled, then PAM will be used for password - changes when requested by an SMB client instead of the program listed in - passwd program. - It should be possible to enable this without changing your - passwd chat - parameter for most setups. - - - Default: pam password change = no - - - - - - - panic action (G) - This is a Samba developer option that allows a - system command to be called when either - smbd(8) or nmbd(8) - crashes. This is usually used to draw attention to the fact that - a problem occurred. - - Default: panic action = <empty string> - Example: panic action = "/bin/sleep 90000" - - - - - paranoid server security (G) - Some version of NT 4.x allow non-guest - users with a bad passowrd. When this option is enabled, samba will not - use a broken NT 4.x server as password server, but instead complain - to the logs and exit. - - - Default: paranoid server security = yes - - - - - - passdb backend (G) - This option allows the administrator to chose which backends to retrieve and store passwords with. This allows (for example) both - smbpasswd and tdbsam to be used without a recompile. - Multiple backends can be specified, separated by spaces. The backends will be searched in the order they are specified. New users are always added to the first backend specified. - Experimental backends must still be selected - (eg --with-tdbsam) at configure time. - - - This parameter is in two parts, the backend's name, and a 'location' - string that has meaning only to that particular backed. These are separated - by a : character. - - Available backends can include: - - smbpasswd - The default smbpasswd - backend. Takes a path to the smbpasswd file as an optional argument. - - smbpasswd_nua - The smbpasswd - backend, but with support for 'not unix accounts'. - Takes a path to the smbpasswd file as an optional argument. - See also - non unix account range - - tdbsam - The TDB based password storage - backend. Takes a path to the TDB as an optional argument (defaults to passdb.tdb - in the - private dir directory. - - tdbsam_nua - The TDB based password storage - backend, with non unix account support. Takes a path to the TDB as an optional argument (defaults to passdb.tdb - in the - private dir directory. - See also - non unix account range - - ldapsam - The LDAP based passdb - backend. Takes an LDAP URL as an optional argument (defaults to - ldap://localhost) - - ldapsam_nua - The LDAP based passdb - backend, with non unix account support. Takes an LDAP URL as an optional argument (defaults to - ldap://localhost) - - Note: In this module, any account without a matching POSIX account is regarded - as 'non unix'. - - See also - non unix account - range - - LDAP connections should be secured where - possible. This may be done using either - Start-TLS (see - ldap ssl) or by - specifying ldaps:// in - the URL argument. - - - nisplussam - The NIS+ based passdb backend. Takes name NIS domain as an optional argument. Only works with sun NIS+ servers. - - plugin - Allows Samba to load an - arbitary passdb backend from the .so specified as a compulsary argument. - - - Any characters after the (optional) second : are passed to the plugin - for its own processing - - - unixsam - (EXPERIMENTAL) Allows samba to map all (other) available unix users - - This backend uses the standard unix database for retrieving users. Users included - in this pdb are NOT listed in samba user listings and users included in this pdb won't be - able to login. The use of this backend is to always be able to display the owner of a file - on the samba server - even when the user doesn't have a 'real' samba account in one of the - other passdb backends. - - - This backend should always be the last backend listed, since it contains all users in - the unix passdb and might 'override' mappings if specified earlier. It's meant to only return - accounts for users that aren't covered by the previous backends. - - - - - Default: passdb backend = smbpasswd guest - Example: passdb backend = tdbsam:/etc/samba/private/passdb.tdb smbpasswd:/etc/samba/smbpasswd - Example: passdb backend = ldapsam_nua:ldaps://ldap.example.com - Example: passdb backend = plugin:/usr/local/samba/lib/my_passdb.so:my_plugin_args tdbsam:/etc/samba/private/passdb.tdb - - - - - - passwd chat (G) - This string controls the "chat" - conversation that takes places between smbd and the local password changing - program to change the user's password. The string describes a - sequence of response-receive pairs that - smbd(8) uses to determine what to send to the - passwd program - and what to expect back. If the expected output is not - received then the password is not changed. - - This chat sequence is often quite site specific, depending - on what local methods are used for password control (such as NIS - etc). - Note that this parameter only is only used if the unix - password sync parameter is set to yes. This - sequence is then called AS ROOT when the SMB password - in the smbpasswd file is being changed, without access to the old - password cleartext. This means that root must be able to reset the user's password - without knowing the text of the previous password. In the presence of NIS/YP, - this means that the passwd program must be - executed on the NIS master. - - - - The string can contain the macro %n which is substituted - for the new password. The chat sequence can also contain the standard - macros \n, \r, - \t and \s to give line-feed, - carriage-return, tab and space. The chat sequence string can also contain - a '*' which matches any sequence of characters. - Double quotes can be used to collect strings with spaces - in them into a single string. - - If the send string in any part of the chat sequence - is a full stop ".", then no string is sent. Similarly, - if the expect string is a full stop then no string is expected. - - If the pam - password change parameter is set to yes, the chat pairs - may be matched in any order, and success is determined by the PAM result, - not any particular output. The \n macro is ignored for PAM conversions. - - - See also unix password - sync, - passwd program , - passwd chat debug and - pam password change. - - Default: passwd chat = *new*password* %n\n - *new*password* %n\n *changed* - Example: passwd chat = "*Enter OLD password*" %o\n - "*Enter NEW password*" %n\n "*Reenter NEW password*" %n\n "*Password - changed*" - - - - - - - passwd chat debug (G) - This boolean specifies if the passwd chat script - parameter is run in debug mode. In this mode the - strings passed to and received from the passwd chat are printed - in the smbd(8) log with a - debug level - of 100. This is a dangerous option as it will allow plaintext passwords - to be seen in the smbd log. It is available to help - Samba admins debug their passwd chat scripts - when calling the passwd program and should - be turned off after this has been done. This option has no effect if the - pam password change - paramter is set. This parameter is off by default. - - - See also passwd chat - , pam password change - , passwd program - . - - Default: passwd chat debug = no - - - - - - - passwd program (G) - The name of a program that can be used to set - UNIX user passwords. Any occurrences of %u - will be replaced with the user name. The user name is checked for - existence before calling the password changing program. - - Also note that many passwd programs insist in reasonable - passwords, such as a minimum length, or the inclusion - of mixed case chars and digits. This can pose a problem as some clients - (such as Windows for Workgroups) uppercase the password before sending - it. - - Note that if the unix - password sync parameter is set to yes - then this program is called AS ROOT - before the SMB password in the smbpasswd(5) - file is changed. If this UNIX password change fails, then - smbd will fail to change the SMB password also - (this is by design). - - If the unix password sync parameter - is set this parameter MUST USE ABSOLUTE PATHS - for ALL programs called, and must be examined - for security implications. Note that by default unix - password sync is set to no. - - See also unix - password sync. - - Default: passwd program = /bin/passwd - Example: passwd program = /sbin/npasswd %u - - - - - - - - password level (G) - Some client/server combinations have difficulty - with mixed-case passwords. One offending client is Windows for - Workgroups, which for some reason forces passwords to upper - case when using the LANMAN1 protocol, but leaves them alone when - using COREPLUS! Another problem child is the Windows 95/98 - family of operating systems. These clients upper case clear - text passwords even when NT LM 0.12 selected by the protocol - negotiation request/response. - - This parameter defines the maximum number of characters - that may be upper case in passwords. - - For example, say the password given was "FRED". If - password level is set to 1, the following combinations - would be tried if "FRED" failed: - - "Fred", "fred", "fRed", "frEd","freD" - - If password level was set to 2, - the following combinations would also be tried: - - "FRed", "FrEd", "FreD", "fREd", "fReD", "frED", .. - - And so on. - - The higher value this parameter is set to the more likely - it is that a mixed case password will be matched against a single - case password. However, you should be aware that use of this - parameter reduces security and increases the time taken to - process a new connection. - - A value of zero will cause only two attempts to be - made - the password as is and the password in all-lower case. - - Default: password level = 0 - Example: password level = 4 - - - - - - - password server (G) - By specifying the name of another SMB server (such - as a WinNT box) with this option, and using security = domain - or security = server you can get Samba - to do all its username/password validation via a remote server. - - This option sets the name of the password server to use. - It must be a NetBIOS name, so if the machine's NetBIOS name is - different from its Internet name then you may have to add its NetBIOS - name to the lmhosts file which is stored in the same directory - as the smb.conf file. - - The name of the password server is looked up using the - parameter name - resolve order and so may resolved - by any method and order described in that parameter. - - The password server must be a machine capable of using - the "LM1.2X002" or the "NT LM 0.12" protocol, and it must be in - user level security mode. - - NOTE: Using a password server - means your UNIX box (running Samba) is only as secure as your - password server. DO NOT CHOOSE A PASSWORD SERVER THAT - YOU DON'T COMPLETELY TRUST. - - Never point a Samba server at itself for password - serving. This will cause a loop and could lock up your Samba - server! - - The name of the password server takes the standard - substitutions, but probably the only useful one is %m - , which means the Samba server will use the incoming - client as the password server. If you use this then you better - trust your clients, and you had better restrict them with hosts allow! - - If the security parameter is set to - domain, then the list of machines in this - option must be a list of Primary or Backup Domain controllers for the - Domain or the character '*', as the Samba server is effectively - in that domain, and will use cryptographically authenticated RPC calls - to authenticate the user logging on. The advantage of using - security = domain is that if you list several hosts in the - password server option then smbd - will try each in turn till it finds one that responds. This - is useful in case your primary server goes down. - - If the password server option is set - to the character '*', then Samba will attempt to auto-locate the - Primary or Backup Domain controllers to authenticate against by - doing a query for the name WORKGROUP<1C> - and then contacting each server returned in the list of IP - addresses from the name resolution source. - - If the list of servers contains both names and the '*' - character, the list is treated as a list of preferred - domain controllers, but an auto lookup of all remaining DC's - will be added to the list as well. Samba will not attempt to optimize - this list by locating the closest DC. - - If the security parameter is - set to server, then there are different - restrictions that security = domain doesn't - suffer from: - - - You may list several password servers in - the password server parameter, however if an - smbd makes a connection to a password server, - and then the password server fails, no more users will be able - to be authenticated from this smbd. This is a - restriction of the SMB/CIFS protocol when in security = server - mode and cannot be fixed in Samba. - - If you are using a Windows NT server as your - password server then you will have to ensure that your users - are able to login from the Samba server, as when in - security = server mode the network logon will appear to - come from there rather than from the users workstation. - - - See also the security - parameter. - - Default: password server = <empty string> - - Example: password server = NT-PDC, NT-BDC1, NT-BDC2, * - - Example: password server = * - - - - - - - path (S) - This parameter specifies a directory to which - the user of the service is to be given access. In the case of - printable services, this is where print data will spool prior to - being submitted to the host for printing. - - For a printable service offering guest access, the service - should be readonly and the path should be world-writeable and - have the sticky bit set. This is not mandatory of course, but - you probably won't get the results you expect if you do - otherwise. - - Any occurrences of %u in the path - will be replaced with the UNIX username that the client is using - on this connection. Any occurrences of %m - will be replaced by the NetBIOS name of the machine they are - connecting from. These replacements are very useful for setting - up pseudo home directories for users. - - Note that this path will be based on - root dir if one was specified. - - Default: none - Example: path = /home/fred - - - - - - - - pid directory (G) - This option specifies the directory where pid - files will be placed. - - Default: pid directory = ${prefix}/var/locks - Example: pid directory = /var/run/ - - - - - - - posix locking (S) - The smbd(8) - daemon maintains an database of file locks obtained by SMB clients. - The default behavior is to map this internal database to POSIX - locks. This means that file locks obtained by SMB clients are - consistent with those seen by POSIX compliant applications accessing - the files via a non-SMB method (e.g. NFS or local file access). - You should never need to disable this parameter. - - Default: posix locking = yes - - - - - - - - postexec (S) - This option specifies a command to be run - whenever the service is disconnected. It takes the usual - substitutions. The command may be run as the root on some - systems. - - An interesting example may be to unmount server - resources: - - postexec = /etc/umount /cdrom - - See also preexec - . - - Default: none (no command executed) - - - Example: postexec = echo \"%u disconnected from %S - from %m (%I)\" >> /tmp/log - - - - - - - postscript (S) - This parameter forces a printer to interpret - the print files as PostScript. This is done by adding a %! - to the start of print output. - - This is most useful when you have lots of PCs that persist - in putting a control-D at the start of print jobs, which then - confuses your printer. - - Default: postscript = no - - - - - - - preexec (S) - This option specifies a command to be run whenever - the service is connected to. It takes the usual substitutions. - - An interesting example is to send the users a welcome - message every time they log in. Maybe a message of the day? Here - is an example: - - preexec = csh -c 'echo \"Welcome to %S!\" | - /usr/local/samba/bin/smbclient -M %m -I %I' & - - Of course, this could get annoying after a while :-) - - See also preexec close - and postexec - . - - Default: none (no command executed) - Example: preexec = echo \"%u connected to %S from %m - (%I)\" >> /tmp/log - - - - - - - preexec close (S) - This boolean option controls whether a non-zero - return code from preexec - should close the service being connected to. - - Default: preexec close = no - - - - - - preferred master (G) - This boolean parameter controls if nmbd(8) is a preferred master browser - for its workgroup. - - If this is set to yes, on startup, nmbd - will force an election, and it will have a slight advantage in - winning the election. It is recommended that this parameter is - used in conjunction with - domain master = yes, so that - nmbd can guarantee becoming a domain master. - - Use this option with caution, because if there are several - hosts (whether Samba servers, Windows 95 or NT) that are preferred - master browsers on the same subnet, they will each periodically - and continuously attempt to become the local master browser. - This will result in unnecessary broadcast traffic and reduced browsing - capabilities. - - See also os level - . - - Default: preferred master = auto - - - - - - - prefered master (G) - Synonym for - preferred master for people who cannot spell :-). - - - - - - - preload (G) - This is a list of services that you want to be - automatically added to the browse lists. This is most useful - for homes and printers services that would otherwise not be - visible. - - Note that if you just want all printers in your - printcap file loaded then the - load printers option is easier. - - Default: no preloaded services - - Example: preload = fred lp colorlp - - - - - - preserve case (S) - This controls if new filenames are created - with the case that the client passes, or if they are forced to - be the default case - . - - Default: preserve case = yes - - See the section on NAME - MANGLING for a fuller discussion. - - - - - - - print command (S) - After a print job has finished spooling to - a service, this command will be used via a system() - call to process the spool file. Typically the command specified will - submit the spool file to the host's printing subsystem, but there - is no requirement that this be the case. The server will not remove - the spool file, so whatever command you specify should remove the - spool file when it has been processed, otherwise you will need to - manually remove old spool files. - - The print command is simply a text string. It will be used - verbatim after macro substitutions have been made: - - s, %p - the path to the spool - file name - - %p - the appropriate printer - name - - %J - the job - name as transmitted by the client. - - %c - The number of printed pages - of the spooled job (if known). - - %z - the size of the spooled - print job (in bytes) - - The print command MUST contain at least - one occurrence of %s or %f - - the %p is optional. At the time - a job is submitted, if no printer name is supplied the %p - will be silently removed from the printer command. - - If specified in the [global] section, the print command given - will be used for any printable service that does not have its own - print command specified. - - If there is neither a specified print command for a - printable service nor a global print command, spool files will - be created but not processed and (most importantly) not removed. - - Note that printing may fail on some UNIXes from the - nobody account. If this happens then create - an alternative guest account that can print and set the guest account - in the [global] section. - - You can form quite complex print commands by realizing - that they are just passed to a shell. For example the following - will log a print job, print the file, then remove it. Note that - ';' is the usual separator for command in shell scripts. - - print command = echo Printing %s >> - /tmp/print.log; lpr -P %p %s; rm %s - - You may have to vary this command considerably depending - on how you normally print files on your system. The default for - the parameter varies depending on the setting of the - printing parameter. - - Default: For printing = BSD, AIX, QNX, LPRNG - or PLP : - print command = lpr -r -P%p %s - - For printing = SYSV or HPUX : - print command = lp -c -d%p %s; rm %s - - For printing = SOFTQ : - print command = lp -d%p -s %s; rm %s - - For printing = CUPS : If SAMBA is compiled against - libcups, then printcap = cups - uses the CUPS API to - submit jobs, etc. Otherwise it maps to the System V - commands with the -oraw option for printing, i.e. it - uses lp -c -d%p -oraw; rm %s. - With printing = cups, - and if SAMBA is compiled against libcups, any manually - set print command will be ignored. - - - Example: print command = /usr/local/samba/bin/myprintscript - %p %s - - - - - - - print ok (S) - Synonym for - printable. - - - - - - - - printable (S) - If this parameter is yes, then - clients may open, write to and submit spool files on the directory - specified for the service. - - Note that a printable service will ALWAYS allow writing - to the service path (user privileges permitting) via the spooling - of print data. The read only - parameter controls only non-printing access to - the resource. - - Default: printable = no - - - - - - - printcap (G) - Synonym for - printcap name. - - - - - - - - printcap name (G) - This parameter may be used to override the - compiled-in default printcap name used by the server (usually - /etc/printcap). See the discussion of the [printers] section above for reasons - why you might want to do this. - - To use the CUPS printing interface set printcap name = cups - . This should be supplemented by an addtional setting - printing = cups in the [global] - section. printcap name = cups will use the - "dummy" printcap created by CUPS, as specified in your CUPS - configuration file. - - - On System V systems that use lpstat to - list available printers you can use printcap name = lpstat - to automatically obtain lists of available printers. This - is the default for systems that define SYSV at configure time in - Samba (this includes most System V based systems). If - printcap name is set to lpstat on - these systems then Samba will launch lpstat -v and - attempt to parse the output to obtain a printer list. - - A minimal printcap file would look something like this: - - - print1|My Printer 1 - print2|My Printer 2 - print3|My Printer 3 - print4|My Printer 4 - print5|My Printer 5 - - - where the '|' separates aliases of a printer. The fact - that the second alias has a space in it gives a hint to Samba - that it's a comment. - - NOTE: Under AIX the default printcap - name is /etc/qconfig. Samba will assume the - file is in AIX qconfig format if the string - qconfig appears in the printcap filename. - - Default: printcap name = /etc/printcap - Example: printcap name = /etc/myprintcap - - - - - - - - - printer admin (S) - This is a list of users that can do anything to - printers via the remote administration interfaces offered by MS-RPC - (usually using a NT workstation). Note that the root user always - has admin rights. - - Default: printer admin = <empty string> - - Example: printer admin = admin, @staff - - - - - - - - - printer driver (S) - Note :This is a deprecated - parameter and will be removed in the next major release - following version 2.2. Please see the instructions in - the Samba 2.2. Printing - HOWTO for more information - on the new method of loading printer drivers onto a Samba server. - - - This option allows you to control the string - that clients receive when they ask the server for the printer driver - associated with a printer. If you are using Windows95 or Windows NT - then you can use this to automate the setup of printers on your - system. - - You need to set this parameter to the exact string (case - sensitive) that describes the appropriate printer driver for your - system. If you don't know the exact string to use then you should - first try with no - printer driver option set and the client will - give you a list of printer drivers. The appropriate strings are - shown in a scroll box after you have chosen the printer manufacturer. - - See also printer - driver file. - - Example: printer driver = HP LaserJet 4L - - - - - - - printer driver file (G) - Note :This is a deprecated - parameter and will be removed in the next major release - following version 2.2. Please see the instructions in - the Samba 2.2. Printing - HOWTO for more information - on the new method of loading printer drivers onto a Samba server. - - - This parameter tells Samba where the printer driver - definition file, used when serving drivers to Windows 95 clients, is - to be found. If this is not set, the default is : - - SAMBA_INSTALL_DIRECTORY - /lib/printers.def - - This file is created from Windows 95 msprint.inf - files found on the Windows 95 client system. For more - details on setting up serving of printer drivers to Windows 95 - clients, see the outdated documentation file in the docs/ - directory, PRINTER_DRIVER.txt. - - See also - printer driver location. - - Default: None (set in compile). - - Example: printer driver file = - /usr/local/samba/printers/drivers.def - - - - - - - - printer driver location (S) - Note :This is a deprecated - parameter and will be removed in the next major release - following version 2.2. Please see the instructions in - the Samba 2.2. Printing - HOWTO for more information - on the new method of loading printer drivers onto a Samba server. - - - This parameter tells clients of a particular printer - share where to find the printer driver files for the automatic - installation of drivers for Windows 95 machines. If Samba is set up - to serve printer drivers to Windows 95 machines, this should be set to - - \\MACHINE\PRINTER$ - - Where MACHINE is the NetBIOS name of your Samba server, - and PRINTER$ is a share you set up for serving printer driver - files. For more details on setting this up see the outdated documentation - file in the docs/ directory, - PRINTER_DRIVER.txt. - - See also - printer driver file. - - Default: none - Example: printer driver location = \\MACHINE\PRINTER$ - - - - - - - - printer name (S) - This parameter specifies the name of the printer - to which print jobs spooled through a printable service will be sent. - - If specified in the [global] section, the printer - name given will be used for any printable service that does - not have its own printer name specified. - - Default: none (but may be lp - on many systems) - - Example: printer name = laserwriter - - - - - - printer (S) - Synonym for - printer name. - - - - - - - printing (S) - This parameters controls how printer status - information is interpreted on your system. It also affects the - default values for the print command, - lpq command, lppause command - , lpresume command, and - lprm command if specified in the - [global] section. - - Currently nine printing styles are supported. They are - BSD, AIX, - LPRNG, PLP, - SYSV, HPUX, - QNX, SOFTQ, - and CUPS. - - To see what the defaults are for the other print - commands when using the various options use the testparm(1) program. - - This option can be set on a per printer basis - - See also the discussion in the - [printers] section. - - - - - - - - private dir (G) - This parameters defines the directory - smbd will use for storing such files as smbpasswd - and secrets.tdb. - - - Default :private dir = ${prefix}/private - - - - - - - - protocol (G) - Synonym for - max protocol. - - - - - - - public (S) - Synonym for guest - ok. - - - - - - - queuepause command (S) - This parameter specifies the command to be - executed on the server host in order to pause the printer queue. - - This command should be a program or script which takes - a printer name as its only parameter and stops the printer queue, - such that no longer jobs are submitted to the printer. - - This command is not supported by Windows for Workgroups, - but can be issued from the Printers window under Windows 95 - and NT. - - If a %p is given then the printer name - is put in its place. Otherwise it is placed at the end of the command. - - - Note that it is good practice to include the absolute - path in the command as the PATH may not be available to the - server. - - Default: depends on the setting of printing - - Example: queuepause command = disable %p - - - - - - - queueresume command (S) - This parameter specifies the command to be - executed on the server host in order to resume the printer queue. It - is the command to undo the behavior that is caused by the - previous parameter ( - queuepause command). - - This command should be a program or script which takes - a printer name as its only parameter and resumes the printer queue, - such that queued jobs are resubmitted to the printer. - - This command is not supported by Windows for Workgroups, - but can be issued from the Printers window under Windows 95 - and NT. - - If a %p is given then the printer name - is put in its place. Otherwise it is placed at the end of the - command. - - Note that it is good practice to include the absolute - path in the command as the PATH may not be available to the - server. - - Default: depends on the setting of printing - - - Example: queuepause command = enable %p - - - - - - - - read bmpx (G) - This boolean parameter controls whether smbd(8) will support the "Read - Block Multiplex" SMB. This is now rarely used and defaults to - no. You should never need to set this - parameter. - - Default: read bmpx = no - - - - - - - - read list (S) - This is a list of users that are given read-only - access to a service. If the connecting user is in this list then - they will not be given write access, no matter what the read only - option is set to. The list can include group names using the - syntax described in the - invalid users parameter. - - See also the - write list parameter and the invalid users - parameter. - - Default: read list = <empty string> - Example: read list = mary, @students - - - - - - - read only (S) - An inverted synonym is - writeable. - - If this parameter is yes, then users - of a service may not create or modify files in the service's - directory. - - Note that a printable service (printable = yes) - will ALWAYS allow writing to the directory - (user privileges permitting), but only via spooling operations. - - Default: read only = yes - - - - - - - read raw (G) - This parameter controls whether or not the server - will support the raw read SMB requests when transferring data - to clients. - - If enabled, raw reads allow reads of 65535 bytes in - one packet. This typically provides a major performance benefit. - - - However, some clients either negotiate the allowable - block size incorrectly or are incapable of supporting larger block - sizes, and for these clients you may need to disable raw reads. - - In general this parameter should be viewed as a system tuning - tool and left severely alone. See also - write raw. - - Default: read raw = yes - - - - - - read size (G) - The option read size - affects the overlap of disk reads/writes with network reads/writes. - If the amount of data being transferred in several of the SMB - commands (currently SMBwrite, SMBwriteX and SMBreadbraw) is larger - than this value then the server begins writing the data before it - has received the whole packet from the network, or in the case of - SMBreadbraw, it begins writing to the network before all the data - has been read from disk. - - This overlapping works best when the speeds of disk and - network access are similar, having very little effect when the - speed of one is much greater than the other. - - The default value is 16384, but very little experimentation - has been done yet to determine the optimal value, and it is likely - that the best value will vary greatly between systems anyway. - A value over 65536 is pointless and will cause you to allocate - memory unnecessarily. - - Default: read size = 16384 - Example: read size = 8192 - - - - - - realm (G) - - This option specifies the kerberos realm to use. The realm is - used as the ADS equivalent of the NT4domain. It - is usually set to the DNS name of the kerberos server. - - - Default: realm = - Example: realm = mysambabox.mycompany.com - - - - - remote announce (G) - This option allows you to setup nmbd(8) to periodically announce itself - to arbitrary IP addresses with an arbitrary workgroup name. - - This is useful if you want your Samba server to appear - in a remote workgroup for which the normal browse propagation - rules don't work. The remote workgroup can be anywhere that you - can send IP packets to. - - For example: - - remote announce = 192.168.2.255/SERVERS - 192.168.4.255/STAFF - - the above line would cause nmbd to announce itself - to the two given IP addresses using the given workgroup names. - If you leave out the workgroup name then the one given in - the workgroup - parameter is used instead. - - The IP addresses you choose would normally be the broadcast - addresses of the remote networks, but can also be the IP addresses - of known browse masters if your network config is that stable. - - See the documentation file BROWSING.txt - in the docs/ directory. - - Default: remote announce = <empty string> - - - - - - - - remote browse sync (G) - This option allows you to setup nmbd(8) to periodically request - synchronization of browse lists with the master browser of a Samba - server that is on a remote segment. This option will allow you to - gain browse lists for multiple workgroups across routed networks. This - is done in a manner that does not work with any non-Samba servers. - - This is useful if you want your Samba server and all local - clients to appear in a remote workgroup for which the normal browse - propagation rules don't work. The remote workgroup can be anywhere - that you can send IP packets to. - - For example: - - remote browse sync = 192.168.2.255 192.168.4.255 - - - the above line would cause nmbd to request - the master browser on the specified subnets or addresses to - synchronize their browse lists with the local server. - - The IP addresses you choose would normally be the broadcast - addresses of the remote networks, but can also be the IP addresses - of known browse masters if your network config is that stable. If - a machine IP address is given Samba makes NO attempt to validate - that the remote machine is available, is listening, nor that it - is in fact the browse master on its segment. - - Default: remote browse sync = <empty string> - - - - - - - - - restrict anonymous (G) - This is a integer parameter, and - mirrors as much as possible the functinality the - RestrictAnonymous - registry key does on NT/Win2k. - - Default: restrict anonymous = 0 - - - - - - - root (G) - Synonym for - root directory". - - - - - - - root dir (G) - Synonym for - root directory". - - - - - - root directory (G) - The server will chroot() (i.e. - Change its root directory) to this directory on startup. This is - not strictly necessary for secure operation. Even without it the - server will deny access to files not in one of the service entries. - It may also check for, and deny access to, soft links to other - parts of the filesystem, or attempts to use ".." in file names - to access other directories (depending on the setting of the wide links - parameter). - - Adding a root directory entry other - than "/" adds an extra level of security, but at a price. It - absolutely ensures that no access is given to files not in the - sub-tree specified in the root directory - option, including some files needed for - complete operation of the server. To maintain full operability - of the server you will need to mirror some system files - into the root directory tree. In particular - you will need to mirror /etc/passwd (or a - subset of it), and any binaries or configuration files needed for - printing (if required). The set of files that must be mirrored is - operating system dependent. - - Default: root directory = / - Example: root directory = /homes/smb - - - - - - - root postexec (S) - This is the same as the postexec - parameter except that the command is run as root. This - is useful for unmounting filesystems - (such as CDROMs) after a connection is closed. - - See also - postexec. - - Default: root postexec = <empty string> - - - - - - root preexec (S) - This is the same as the preexec - parameter except that the command is run as root. This - is useful for mounting filesystems (such as CDROMs) when a - connection is opened. - - See also - preexec and - preexec close. - - Default: root preexec = <empty string> - - - - - - - - root preexec close (S) - This is the same as the preexec close - parameter except that the command is run as root. - - See also - preexec and - preexec close. - - Default: root preexec close = no - - - - - - security (G) - This option affects how clients respond to - Samba and is one of the most important settings in the - smb.conf file. - - The option sets the "security mode bit" in replies to - protocol negotiations with smbd(8) - to turn share level security on or off. Clients decide - based on this bit whether (and how) to transfer user and password - information to the server. - - - The default is security = user, as this is - the most common setting needed when talking to Windows 98 and - Windows NT. - - The alternatives are security = share, - security = server or security = domain - . - - In versions of Samba prior to 2.0.0, the default was - security = share mainly because that was - the only option at one stage. - - There is a bug in WfWg that has relevance to this - setting. When in user or server level security a WfWg client - will totally ignore the password you type in the "connect - drive" dialog box. This makes it very difficult (if not impossible) - to connect to a Samba service as anyone except the user that - you are logged into WfWg as. - - If your PCs use usernames that are the same as their - usernames on the UNIX machine then you will want to use - security = user. If you mostly use usernames - that don't exist on the UNIX box then use security = - share. - - You should also use security = share if you - want to mainly setup shares without a password (guest shares). This - is commonly used for a shared printer server. It is more difficult - to setup guest shares with security = user, see - the map to guest - parameter for details. - - It is possible to use smbd in a - hybrid mode where it is offers both user and share - level security under different - NetBIOS aliases. - - The different settings will now be explained. - - - SECURITY = SHARE - - - When clients connect to a share level security server they - need not log onto the server with a valid username and password before - attempting to connect to a shared resource (although modern clients - such as Windows 95/98 and Windows NT will send a logon request with - a username but no password when talking to a security = share - server). Instead, the clients send authentication information - (passwords) on a per-share basis, at the time they attempt to connect - to that share. - - Note that smbd ALWAYS - uses a valid UNIX user to act on behalf of the client, even in - security = share level security. - - As clients are not required to send a username to the server - in share level security, smbd uses several - techniques to determine the correct UNIX user to use on behalf - of the client. - - A list of possible UNIX usernames to match with the given - client password is constructed using the following methods : - - - If the guest - only parameter is set, then all the other - stages are missed and only the - guest account username is checked. - - - Is a username is sent with the share connection - request, then this username (after mapping - see username map), - is added as a potential username. - - If the client did a previous logon - request (the SessionSetup SMB call) then the - username sent in this SMB will be added as a potential username. - - - The name of the service the client requested is - added as a potential username. - - The NetBIOS name of the client is added to - the list as a potential username. - - Any users on the - user list are added as potential usernames. - - - - If the guest only parameter is - not set, then this list is then tried with the supplied password. - The first user for whom the password matches will be used as the - UNIX user. - - If the guest only parameter is - set, or no username can be determined then if the share is marked - as available to the guest account, then this - guest user will be used, otherwise access is denied. - - Note that it can be very confusing - in share-level security as to which UNIX username will eventually - be used in granting access. - - See also the section - NOTE ABOUT USERNAME/PASSWORD VALIDATION. - - SECURITY = USER - - - This is the default security setting in Samba 2.2. - With user-level security a client must first "log-on" with a - valid username and password (which can be mapped using the username map - parameter). Encrypted passwords (see the - encrypted passwords parameter) can also - be used in this security mode. Parameters such as - user and - guest only if set are then applied and - may change the UNIX user to use on this connection, but only after - the user has been successfully authenticated. - - Note that the name of the resource being - requested is not sent to the server until after - the server has successfully authenticated the client. This is why - guest shares don't work in user level security without allowing - the server to automatically map unknown users into the guest account. - See the map to guest - parameter for details on doing this. - - See also the section - NOTE ABOUT USERNAME/PASSWORD VALIDATION. - - SECURITY = SERVER - - - In this mode Samba will try to validate the username/password - by passing it to another SMB server, such as an NT box. If this - fails it will revert to security = user, but note - that if encrypted passwords have been negotiated then Samba cannot - revert back to checking the UNIX password file, it must have a valid - smbpasswd file to check users against. See the - documentation file in the docs/ directory - ENCRYPTION.txt for details on how to set this - up. - - Note that from the client's point of - view security = server is the same as - security = user. It only affects how the server deals - with the authentication, it does not in any way affect what the - client sees. - - Note that the name of the resource being - requested is not sent to the server until after - the server has successfully authenticated the client. This is why - guest shares don't work in user level security without allowing - the server to automatically map unknown users into the guest account. - See the map to guest - parameter for details on doing this. - - See also the section - NOTE ABOUT USERNAME/PASSWORD VALIDATION. - - See also the password - server parameter and the encrypted passwords - parameter. - - SECURITY = DOMAIN - - - This mode will only work correctly if smbpasswd(8) has been used to add this - machine into a Windows NT Domain. It expects the encrypted passwords - parameter to be set to yes. In this - mode Samba will try to validate the username/password by passing - it to a Windows NT Primary or Backup Domain Controller, in exactly - the same way that a Windows NT Server would do. - - Note that a valid UNIX user must still - exist as well as the account on the Domain Controller to allow - Samba to have a valid UNIX account to map file access to. - - Note that from the client's point - of view security = domain is the same as security = user - . It only affects how the server deals with the authentication, - it does not in any way affect what the client sees. - - Note that the name of the resource being - requested is not sent to the server until after - the server has successfully authenticated the client. This is why - guest shares don't work in user level security without allowing - the server to automatically map unknown users into the guest account. - See the map to guest - parameter for details on doing this. - - BUG: There is currently a bug in the - implementation of security = domain with respect - to multi-byte character set usernames. The communication with a - Domain Controller must be done in UNICODE and Samba currently - does not widen multi-byte user names to UNICODE correctly, thus - a multi-byte username will not be recognized correctly at the - Domain Controller. This issue will be addressed in a future release. - - See also the section - NOTE ABOUT USERNAME/PASSWORD VALIDATION. - - See also the password - server parameter and the encrypted passwords - parameter. - - Default: security = USER - Example: security = DOMAIN - - - - - - - security mask (S) - This parameter controls what UNIX permission - bits can be modified when a Windows NT client is manipulating - the UNIX permission on a file using the native NT security - dialog box. - - This parameter is applied as a mask (AND'ed with) to - the changed permission bits, thus preventing any bits not in - this mask from being modified. Essentially, zero bits in this - mask may be treated as a set of bits the user is not allowed - to change. - - If not set explicitly this parameter is 0777, allowing - a user to modify all the user/group/world permissions on a file. - - - Note that users who can access the - Samba server through other means can easily bypass this - restriction, so it is primarily useful for standalone - "appliance" systems. Administrators of most normal systems will - probably want to leave it set to 0777. - - See also the - force directory security mode, - directory - security mask, - force security mode parameters. - - Default: security mask = 0777 - Example: security mask = 0770 - - - - - - server schannel (G) - - - This controls whether the server offers or even - demands the use of the netlogon schannel. - server schannel = no does not - offer the schannel, server schannel = - auto offers the schannel but does not - enforce it, and server schannel = - yes denies access if the client is not - able to speak netlogon schannel. This is only the case - for Windows NT4 before SP4. - - Please note that with this set to - no you will have to apply the - WindowsXP requireSignOrSeal-Registry patch found in - the docs/Registry subdirectory.Default: server schannel = auto - - Example: server schannel = yes/para> - - - - - server string (G) - This controls what string will show up in the - printer comment box in print manager and next to the IPC connection - in net view. It can be any string that you wish - to show to your users. - - It also sets what will appear in browse lists next - to the machine name. - - A %v will be replaced with the Samba - version number. - - A %h will be replaced with the - hostname. - - Default: server string = Samba %v - - Example: server string = University of GNUs Samba - Server - - - - - set primary group script (G) - Thanks to the Posix subsystem in NT a - Windows User has a primary group in addition to the - auxiliary groups. This script sets the primary group - in the unix userdatase when an administrator sets the - primary group from the windows user manager or when - fetching a SAM with net rpc - vampire. %u will be - replaced with the user whose primary group is to be - set. %g will be replaced with - the group to set. - - Default: No default value - - Example: set primary group script = /usr/sbin/usermod -g '%g' '%u' - - - - - - - set directory (S) - If set directory = no, then - users of the service may not use the setdir command to change - directory. - - The setdir command is only implemented - in the Digital Pathworks client. See the Pathworks documentation - for details. - - Default: set directory = no - - - - - - - share modes (S) - This enables or disables the honoring of - the share modes during a file open. These - modes are used by clients to gain exclusive read or write access - to a file. - - These open modes are not directly supported by UNIX, so - they are simulated using shared memory, or lock files if your - UNIX doesn't support shared memory (almost all do). - - The share modes that are enabled by this option are - DENY_DOS, DENY_ALL, - DENY_READ, DENY_WRITE, - DENY_NONE and DENY_FCB. - - - This option gives full share compatibility and enabled - by default. - - You should NEVER turn this parameter - off as many Windows applications will break if you do so. - - Default: share modes = yes - - - - - - - short preserve case (S) - This boolean parameter controls if new files - which conform to 8.3 syntax, that is all in upper case and of - suitable length, are created upper case, or if they are forced - to be the default case - . This option can be use with preserve case = yes - to permit long filenames to retain their case, while short - names are lowered. - - See the section on - NAME MANGLING. - - Default: short preserve case = yes - - - - - - - show add printer wizard (G) - With the introduction of MS-RPC based printing support - for Windows NT/2000 client in Samba 2.2, a "Printers..." folder will - appear on Samba hosts in the share listing. Normally this folder will - contain an icon for the MS Add Printer Wizard (APW). However, it is - possible to disable this feature regardless of the level of privilege - of the connected user. - - Under normal circumstances, the Windows NT/2000 client will - open a handle on the printer server with OpenPrinterEx() asking for - Administrator privileges. If the user does not have administrative - access on the print server (i.e is not root or a member of the - printer admin group), the OpenPrinterEx() - call fails and the client makes another open call with a request for - a lower privilege level. This should succeed, however the APW - icon will not be displayed. - - Disabling the show add printer wizard - parameter will always cause the OpenPrinterEx() on the server - to fail. Thus the APW icon will never be displayed. - Note :This does not prevent the same user from having - administrative privilege on an individual printer. - - See also addprinter - command, - deleteprinter command, printer admin - - Default :show add printer wizard = yes - - - - - - - shutdown script (G) - This parameter only exists in the HEAD cvs branch - This a full path name to a script called by - smbd(8) that - should start a shutdown procedure. - - This command will be run as the user connected to the - server. - - %m %t %r %f parameters are expanded - %m will be substituted with the - shutdown message sent to the server. - %t will be substituted with the - number of seconds to wait before effectively starting the - shutdown procedure. - %r will be substituted with the - switch -r. It means reboot after shutdown - for NT. - - %f will be substituted with the - switch -f. It means force the shutdown - even if applications do not respond for NT. - - Default: None. - Example: abort shutdown script = /usr/local/samba/sbin/shutdown %m %t %r %f - Shutdown script example: - - #!/bin/bash - - $time=0 - let "time/60" - let "time++" - - /sbin/shutdown $3 $4 +$time $1 & - - Shutdown does not return so we need to launch it in background. - - - See also abort shutdown script. - - - - - - smb passwd file (G) - This option sets the path to the encrypted - smbpasswd file. By default the path to the smbpasswd file - is compiled into Samba. - - Default: smb passwd file = ${prefix}/private/smbpasswd - - - Example: smb passwd file = /etc/samba/smbpasswd - - - - - - - smb ports (G) - Specifies which ports the server should listen on - for SMB traffic. - - - Default: smb ports = 445 139 - - - - - - socket address (G) - This option allows you to control what - address Samba will listen for connections on. This is used to - support multiple virtual interfaces on the one server, each - with a different configuration. - - By default Samba will accept connections on any - address. - - Example: socket address = 192.168.2.20 - - - - - - - - socket options (G) - This option allows you to set socket options - to be used when talking with the client. - - Socket options are controls on the networking layer - of the operating systems which allow the connection to be - tuned. - - This option will typically be used to tune your Samba - server for optimal performance for your local network. There is - no way that Samba can know what the optimal parameters are for - your net, so you must experiment and choose them yourself. We - strongly suggest you read the appropriate documentation for your - operating system first (perhaps man setsockopt - will help). - - You may find that on some systems Samba will say - "Unknown socket option" when you supply an option. This means you - either incorrectly typed it or you need to add an include file - to includes.h for your OS. If the latter is the case please - send the patch to - samba@samba.org. - - Any of the supported socket options may be combined - in any way you like, as long as your OS allows it. - - This is the list of socket options currently settable - using this option: - - - SO_KEEPALIVE - SO_REUSEADDR - SO_BROADCAST - TCP_NODELAY - IPTOS_LOWDELAY - IPTOS_THROUGHPUT - SO_SNDBUF * - SO_RCVBUF * - SO_SNDLOWAT * - SO_RCVLOWAT * - - - Those marked with a '*' take an integer - argument. The others can optionally take a 1 or 0 argument to enable - or disable the option, by default they will be enabled if you - don't specify 1 or 0. - - To specify an argument use the syntax SOME_OPTION = VALUE - for example SO_SNDBUF = 8192. Note that you must - not have any spaces before or after the = sign. - - If you are on a local network then a sensible option - might be - socket options = IPTOS_LOWDELAY - - If you have a local network then you could try: - socket options = IPTOS_LOWDELAY TCP_NODELAY - - If you are on a wide area network then perhaps try - setting IPTOS_THROUGHPUT. - - Note that several of the options may cause your Samba - server to fail completely. Use these options with caution! - - Default: socket options = TCP_NODELAY - Example: socket options = IPTOS_LOWDELAY - - - - - - - - source environment (G) - This parameter causes Samba to set environment - variables as per the content of the file named. - - If the value of this parameter starts with a "|" character - then Samba will treat that value as a pipe command to open and - will set the environment variables from the output of the pipe. - - The contents of the file or the output of the pipe should - be formatted as the output of the standard Unix env(1) - command. This is of the form : - Example environment entry: - SAMBA_NETBIOS_NAME = myhostname - - Default: No default value - Examples: source environment = |/etc/smb.conf.sh - - - Example: source environment = - /usr/local/smb_env_vars - - - -use spnego (G) - This variable controls controls whether samba will try to use Simple and Protected NEGOciation (as specified by rfc2478) with WindowsXP and Windows2000sp2 clients to agree upon an authentication mechanism. As of samba 3.0alpha it must be set to "no" for these clients to join a samba domain controller. It can be set to "yes" to allow samba to participate in an AD domain controlled by a Windows2000 domain controller. -Default: use spnego = yes - - - - - stat cache (G) - This parameter determines if smbd(8) will use a cache in order to - speed up case insensitive name mappings. You should never need - to change this parameter. - - Default: stat cache = yes - - - - - stat cache size (G) - This parameter determines the number of - entries in the stat cache. You should - never need to change this parameter. - - Default: stat cache size = 50 - - - - - - - strict allocate (S) - This is a boolean that controls the handling of - disk space allocation in the server. When this is set to yes - the server will change from UNIX behaviour of not committing real - disk storage blocks when a file is extended to the Windows behaviour - of actually forcing the disk system to allocate real storage blocks - when a file is created or extended to be a given size. In UNIX - terminology this means that Samba will stop creating sparse files. - This can be slow on some systems. - - When strict allocate is no the server does sparse - disk block allocation when a file is extended. - - Setting this to yes can help Samba return - out of quota messages on systems that are restricting the disk quota - of users. - - Default: strict allocate = no - - - - - - - strict locking (S) - This is a boolean that controls the handling of - file locking in the server. When this is set to yes - the server will check every read and write access for file locks, and - deny access if locks exist. This can be slow on some systems. - - When strict locking is no the server does file - lock checks only when the client explicitly asks for them. - - Well-behaved clients always ask for lock checks when it - is important, so in the vast majority of cases strict - locking = no is preferable. - - Default: strict locking = no - - - - - - - strict sync (S) - Many Windows applications (including the Windows - 98 explorer shell) seem to confuse flushing buffer contents to - disk with doing a sync to disk. Under UNIX, a sync call forces - the process to be suspended until the kernel has ensured that - all outstanding data in kernel disk buffers has been safely stored - onto stable storage. This is very slow and should only be done - rarely. Setting this parameter to no (the - default) means that smbd ignores the Windows applications requests for - a sync call. There is only a possibility of losing data if the - operating system itself that Samba is running on crashes, so there is - little danger in this default setting. In addition, this fixes many - performance problems that people have reported with the new Windows98 - explorer shell file copies. - - See also the sync - always> parameter. - - Default: strict sync = no - - - - - - strip dot (G) - This is a boolean that controls whether to - strip trailing dots off UNIX filenames. This helps with some - CDROMs that have filenames ending in a single dot. - - Default: strip dot = no - - - - - - - sync always (S) - This is a boolean parameter that controls - whether writes will always be written to stable storage before - the write call returns. If this is no then the server will be - guided by the client's request in each write call (clients can - set a bit indicating that a particular write should be synchronous). - If this is yes then every write will be followed by a fsync() - call to ensure the data is written to disk. Note that - the strict sync parameter must be set to - yes in order for this parameter to have - any affect. - - See also the strict - sync parameter. - - Default: sync always = no - - - - - - - syslog (G) - This parameter maps how Samba debug messages - are logged onto the system syslog logging levels. Samba debug - level zero maps onto syslog LOG_ERR, debug - level one maps onto LOG_WARNING, debug level - two maps onto LOG_NOTICE, debug level three - maps onto LOG_INFO. All higher levels are mapped to - LOG_DEBUG. - - This parameter sets the threshold for sending messages - to syslog. Only messages with debug level less than this value - will be sent to syslog. - - Default: syslog = 1 - - - - - - - syslog only (G) - If this parameter is set then Samba debug - messages are logged into the system syslog only, and not to - the debug log files. - - Default: syslog only = no - - - - - - - template homedir (G) - When filling out the user information for a Windows NT - user, the winbindd(8) daemon - uses this parameter to fill in the home directory for that user. - If the string %D is present it is substituted - with the user's Windows NT domain name. If the string %U - is present it is substituted with the user's Windows - NT user name. - - Default: template homedir = /home/%D/%U - - - - - - - template shell (G) - When filling out the user information for a Windows NT - user, the winbindd(8) daemon - uses this parameter to fill in the login shell for that user. - - Default: template shell = /bin/false - - - - - - - time offset (G) - This parameter is a setting in minutes to add - to the normal GMT to local time conversion. This is useful if - you are serving a lot of PCs that have incorrect daylight - saving time handling. - - Default: time offset = 0 - Example: time offset = 60 - - - - - - - time server (G) - This parameter determines if - nmbd(8) advertises itself as a time server to Windows - clients. - - Default: time server = no - - - - - - timestamp logs (G) - Synonym for - debug timestamp. - - - - - - - - - total print jobs (G) - This parameter accepts an integer value which defines - a limit on the maximum number of print jobs that will be accepted - system wide at any given time. If a print job is submitted - by a client which will exceed this number, then smbd will return an - error indicating that no space is available on the server. The - default value of 0 means that no such limit exists. This parameter - can be used to prevent a server from exceeding its capacity and is - designed as a printing throttle. See also - max print jobs. - - - Default: total print jobs = 0 - Example: total print jobs = 5000 - - - - - unicode (G) - Specifies whether Samba should try - to use unicode on the wire by default. Note: This does NOT - mean that samba will assume that the unix machine uses unicode! - - - Default: unicode = yes - - - - - - unix charset (G) - Specifies the charset the unix machine - Samba runs on uses. Samba needs to know this in order to be able to - convert text to the charsets other SMB clients use. - - - Default: unix charset = ASCII - Example: unix charset = UTF8 - - - - - unix extensions(G) - This boolean parameter controls whether Samba - implments the CIFS UNIX extensions, as defined by HP. - These extensions enable Samba to better serve UNIX CIFS clients - by supporting features such as symbolic links, hard links, etc... - These extensions require a similarly enabled client, and are of - no current use to Windows clients. - - Default: unix extensions = no - - - - - - - - unix password sync (G) - This boolean parameter controls whether Samba - attempts to synchronize the UNIX password with the SMB password - when the encrypted SMB password in the smbpasswd file is changed. - If this is set to yes the program specified in the passwd - programparameter is called AS ROOT - - to allow the new UNIX password to be set without access to the - old UNIX password (as the SMB password change code has no - access to the old password cleartext, only the new). - - See also passwd - program, - passwd chat. - - Default: unix password sync = no - - - - - - - update encrypted (G) - This boolean parameter allows a user logging - on with a plaintext password to have their encrypted (hashed) - password in the smbpasswd file to be updated automatically as - they log on. This option allows a site to migrate from plaintext - password authentication (users authenticate with plaintext - password over the wire, and are checked against a UNIX account - database) to encrypted password authentication (the SMB - challenge/response authentication mechanism) without forcing - all users to re-enter their passwords via smbpasswd at the time the - change is made. This is a convenience option to allow the change over - to encrypted passwords to be made over a longer period. Once all users - have encrypted representations of their passwords in the smbpasswd - file this parameter should be set to no. - - In order for this parameter to work correctly the encrypt passwords - parameter must be set to no when - this parameter is set to yes. - - Note that even when this parameter is set a user - authenticating to smbd must still enter a valid - password in order to connect correctly, and to update their hashed - (smbpasswd) passwords. - - Default: update encrypted = no - - - - - - use client driver (S) - This parameter applies only to Windows NT/2000 - clients. It has no affect on Windows 95/98/ME clients. When - serving a printer to Windows NT/2000 clients without first installing - a valid printer driver on the Samba host, the client will be required - to install a local printer driver. From this point on, the client - will treat the print as a local printer and not a network printer - connection. This is much the same behavior that will occur - when disable spoolss = yes. - - The differentiating - factor is that under normal circumstances, the NT/2000 client will - attempt to open the network printer using MS-RPC. The problem is that - because the client considers the printer to be local, it will attempt - to issue the OpenPrinterEx() call requesting access rights associated - with the logged on user. If the user possesses local administator rights - but not root privilegde on the Samba host (often the case), the OpenPrinterEx() - call will fail. The result is that the client will now display an "Access - Denied; Unable to connect" message in the printer queue window (even though - jobs may successfully be printed). - - If this parameter is enabled for a printer, then any attempt - to open the printer with the PRINTER_ACCESS_ADMINISTER right is mapped - to PRINTER_ACCESS_USE instead. Thus allowing the OpenPrinterEx() - call to succeed. This parameter MUST not be able enabled - on a print share which has valid print driver installed on the Samba - server. - - See also disable spoolss - - - Default: use client driver = no - - - - - - - use mmap (G) - This global parameter determines if the tdb internals of Samba can - depend on mmap working correctly on the running system. Samba requires a coherent - mmap/read-write system memory cache. Currently only HPUX does not have such a - coherent cache, and so this parameter is set to no by - default on HPUX. On all other systems this parameter should be left alone. This - parameter is provided to help the Samba developers track down problems with - the tdb internal code. - - - Default: use mmap = yes - - - - - - - - use rhosts (G) - If this global parameter is yes, it specifies - that the UNIX user's .rhosts file in their home directory - will be read to find the names of hosts and users who will be allowed - access without specifying a password. - - NOTE: The use of use rhosts - can be a major security hole. This is because you are - trusting the PC to supply the correct username. It is very easy to - get a PC to supply a false username. I recommend that the - use rhosts option be only used if you really know what - you are doing. - - Default: use rhosts = no - - - - - - - user (S) - Synonym for - username. - - - - - - - users (S) - Synonym for - username. - - - - - - username (S) - Multiple users may be specified in a comma-delimited - list, in which case the supplied password will be tested against - each username in turn (left to right). - - The username line is needed only when - the PC is unable to supply its own username. This is the case - for the COREPLUS protocol or where your users have different WfWg - usernames to UNIX usernames. In both these cases you may also be - better using the \\server\share%user syntax instead. - - The username line is not a great - solution in many cases as it means Samba will try to validate - the supplied password against each of the usernames in the - username line in turn. This is slow and - a bad idea for lots of users in case of duplicate passwords. - You may get timeouts or security breaches using this parameter - unwisely. - - Samba relies on the underlying UNIX security. This - parameter does not restrict who can login, it just offers hints - to the Samba server as to what usernames might correspond to the - supplied password. Users can login as whoever they please and - they will be able to do no more damage than if they started a - telnet session. The daemon runs as the user that they log in as, - so they cannot do anything that user cannot do. - - To restrict a service to a particular set of users you - can use the valid users - parameter. - - If any of the usernames begin with a '@' then the name - will be looked up first in the NIS netgroups list (if Samba - is compiled with netgroup support), followed by a lookup in - the UNIX groups database and will expand to a list of all users - in the group of that name. - - If any of the usernames begin with a '+' then the name - will be looked up only in the UNIX groups database and will - expand to a list of all users in the group of that name. - - If any of the usernames begin with a '&'then the name - will be looked up only in the NIS netgroups database (if Samba - is compiled with netgroup support) and will expand to a list - of all users in the netgroup group of that name. - - Note that searching though a groups database can take - quite some time, and some clients may time out during the - search. - - See the section NOTE ABOUT - USERNAME/PASSWORD VALIDATION for more information on how - this parameter determines access to the services. - - Default: The guest account if a guest service, - else <empty string>. - - Examples:username = fred, mary, jack, jane, - @users, @pcgroup - - - - - - - username level (G) - This option helps Samba to try and 'guess' at - the real UNIX username, as many DOS clients send an all-uppercase - username. By default Samba tries all lowercase, followed by the - username with the first letter capitalized, and fails if the - username is not found on the UNIX machine. - - If this parameter is set to non-zero the behavior changes. - This parameter is a number that specifies the number of uppercase - combinations to try while trying to determine the UNIX user name. The - higher the number the more combinations will be tried, but the slower - the discovery of usernames will be. Use this parameter when you have - strange usernames on your UNIX machine, such as AstrangeUser - . - - Default: username level = 0 - Example: username level = 5 - - - - - - - username map (G) - This option allows you to specify a file containing - a mapping of usernames from the clients to the server. This can be - used for several purposes. The most common is to map usernames - that users use on DOS or Windows machines to those that the UNIX - box uses. The other is to map multiple users to a single username - so that they can more easily share files. - - The map file is parsed line by line. Each line should - contain a single UNIX username on the left then a '=' followed - by a list of usernames on the right. The list of usernames on the - right may contain names of the form @group in which case they - will match any UNIX username in that group. The special client - name '*' is a wildcard and matches any name. Each line of the - map file may be up to 1023 characters long. - - The file is processed on each line by taking the - supplied username and comparing it with each username on the right - hand side of the '=' signs. If the supplied name matches any of - the names on the right hand side then it is replaced with the name - on the left. Processing then continues with the next line. - - If any line begins with a '#' or a ';' then it is - ignored - - If any line begins with an '!' then the processing - will stop after that line if a mapping was done by the line. - Otherwise mapping continues with every line being processed. - Using '!' is most useful when you have a wildcard mapping line - later in the file. - - For example to map from the name admin - or administrator to the UNIX name - root you would use: - - root = admin administrator - - Or to map anyone in the UNIX group system - to the UNIX name sys you would use: - - sys = @system - - You can have as many mappings as you like in a username - map file. - - - If your system supports the NIS NETGROUP option then - the netgroup database is checked before the /etc/group - database for matching groups. - - You can map Windows usernames that have spaces in them - by using double quotes around the name. For example: - - tridge = "Andrew Tridgell" - - would map the windows username "Andrew Tridgell" to the - unix username "tridge". - - The following example would map mary and fred to the - unix user sys, and map the rest to guest. Note the use of the - '!' to tell Samba to stop processing if it gets a match on - that line. - - - !sys = mary fred - guest = * - - - Note that the remapping is applied to all occurrences - of usernames. Thus if you connect to \\server\fred and - fred is remapped to mary then you - will actually be connecting to \\server\mary and will need to - supply a password suitable for mary not - fred. The only exception to this is the - username passed to the - password server (if you have one). The password - server will receive whatever username the client supplies without - modification. - - Also note that no reverse mapping is done. The main effect - this has is with printing. Users who have been mapped may have - trouble deleting print jobs as PrintManager under WfWg will think - they don't own the print job. - - Default: no username map - Example: username map = /usr/local/samba/lib/users.map - - - - - - - use sendfile (S) - If this parameter is yes, and Samba - was built with the --with-sendfile-support option, and the underlying operating - system supports sendfile system call, then some SMB read calls (mainly ReadAndX - and ReadRaw) will use the more efficient sendfile system call for files that - are exclusively oplocked. This may make more efficient use of the system CPU's - and cause Samba to be faster. This is off by default as it's effects are unknown - as yet. - - - Default: use sendfile = no - - - - - - - utmp (G) - This boolean parameter is only available if - Samba has been configured and compiled with the option - --with-utmp. If set to yes then Samba will attempt - to add utmp or utmpx records (depending on the UNIX system) whenever a - connection is made to a Samba server. Sites may use this to record the - user connecting to a Samba share. - - Due to the requirements of the utmp record, we - are required to create a unique identifier for the - incoming user. Enabling this option creates an n^2 - algorithm to find this number. This may impede - performance on large installations. - - See also the - utmp directory parameter. - - Default: utmp = no - - - - - utmp directory(G) - This parameter is only available if Samba has - been configured and compiled with the option - --with-utmp. It specifies a directory pathname that is - used to store the utmp or utmpx files (depending on the UNIX system) that - record user connections to a Samba server. See also the - utmp parameter. By default this is - not set, meaning the system will use whatever utmp file the - native system is set to use (usually - /var/run/utmp on Linux). - - Default: no utmp directory - Example: utmp directory = /var/run/utmp - - - - - wtmp directory(G) - This parameter is only available if Samba has - been configured and compiled with the option - --with-utmp. It specifies a directory pathname that is - used to store the wtmp or wtmpx files (depending on the UNIX system) that - record user connections to a Samba server. The difference with - the utmp directory is the fact that user info is kept after a user - has logged out. - - See also the - utmp parameter. By default this is - not set, meaning the system will use whatever utmp file the - native system is set to use (usually - /var/run/wtmp on Linux). - - Default: no wtmp directory - Example: wtmp directory = /var/log/wtmp - - - - - - valid users (S) - This is a list of users that should be allowed - to login to this service. Names starting with '@', '+' and '&' - are interpreted using the same rules as described in the - invalid users parameter. - - If this is empty (the default) then any user can login. - If a username is in both this list and the invalid - users list then access is denied for that user. - - The current servicename is substituted for %S - . This is useful in the [homes] section. - - See also invalid users - - - Default: No valid users list (anyone can login) - - - Example: valid users = greg, @pcusers - - - - - - - - veto files(S) - This is a list of files and directories that - are neither visible nor accessible. Each entry in the list must - be separated by a '/', which allows spaces to be included - in the entry. '*' and '?' can be used to specify multiple files - or directories as in DOS wildcards. - - Each entry must be a unix path, not a DOS path and - must not include the unix directory - separator '/'. - - Note that the case sensitive option - is applicable in vetoing files. - - One feature of the veto files parameter that it - is important to be aware of is Samba's behaviour when - trying to delete a directory. If a directory that is - to be deleted contains nothing but veto files this - deletion will fail unless you also set - the delete veto files parameter to - yes. - - Setting this parameter will affect the performance - of Samba, as it will be forced to check all files and directories - for a match as they are scanned. - - See also hide files - and - case sensitive. - - Default: No files or directories are vetoed. - - -Examples: -; Veto any files containing the word Security, -; any ending in .tmp, and any directory containing the -; word root. -veto files = /*Security*/*.tmp/*root*/ - -; Veto the Apple specific files that a NetAtalk server -; creates. -veto files = /.AppleDouble/.bin/.AppleDesktop/Network Trash Folder/ - - - - - - - veto oplock files (S) - This parameter is only valid when the oplocks - parameter is turned on for a share. It allows the Samba administrator - to selectively turn off the granting of oplocks on selected files that - match a wildcarded list, similar to the wildcarded list used in the - veto files - parameter. - - Default: No files are vetoed for oplock - grants - - You might want to do this on files that you know will - be heavily contended for by clients. A good example of this - is in the NetBench SMB benchmark program, which causes heavy - client contention for files ending in .SEM. - To cause Samba not to grant oplocks on these files you would use - the line (either in the [global] section or in the section for - the particular NetBench share : - - Example: veto oplock files = /*.SEM/ - - - - - - vfs path (S) - This parameter specifies the directory - to look in for vfs modules. The name of every vfs object - will be prepended by this directory - - - Default: vfs path = - Example: vfs path = /usr/lib/samba/vfs - - - - - - vfs object (S) - This parameter specifies a shared object files that - are used for Samba VFS I/O operations. By default, normal - disk I/O operations are used but these can be overloaded - with one or more VFS objects. - - Default : no value - - - - - - - - vfs options (S) - This parameter allows parameters to be passed - to the vfs layer at initialization time. - See also - vfs object. - - Default : no value - - - - - - - volume (S) - This allows you to override the volume label - returned for a share. Useful for CDROMs with installation programs - that insist on a particular volume label. - - Default: the name of the share - - - - - - - wide links (S) - This parameter controls whether or not links - in the UNIX file system may be followed by the server. Links - that point to areas within the directory tree exported by the - server are always allowed; this parameter controls access only - to areas that are outside the directory tree being exported. - - Note that setting this parameter can have a negative - effect on your server performance due to the extra system calls - that Samba has to do in order to perform the link checks. - - Default: wide links = yes - - - - - - - - winbind cache time (G) - This parameter specifies the number of seconds the - winbindd(8) daemon will cache - user and group information before querying a Windows NT server - again. - - Default: winbind cache type = 15 - - - - - - winbind enum users (G) - On large installations using - winbindd(8) it may be - necessary to suppress the enumeration of users through the - setpwent(), - getpwent() and - endpwent() group of system calls. If - the winbind enum users parameter is - no, calls to the getpwent system call - will not return any data. - - Warning: Turning off user - enumeration may cause some programs to behave oddly. For - example, the finger program relies on having access to the - full user list when searching for matching - usernames. - - Default: winbind enum users = yes - - - - - winbind enum groups (G) - On large installations using - winbindd(8) it may be - necessary to suppress the enumeration of groups through the - setgrent(), - getgrent() and - endgrent() group of system calls. If - the winbind enum groups parameter is - no, calls to the getgrent() system - call will not return any data. - - Warning: Turning off group - enumeration may cause some programs to behave oddly. - - - Default: winbind enum groups = yes - - - - - - winbind gid (G) - The winbind gid parameter specifies the range of group - ids that are allocated by the - winbindd(8) daemon. This range of group ids should have no - existing local or NIS groups within it as strange conflicts can - occur otherwise. - - Default: winbind gid = <empty string> - - - Example: winbind gid = 10000-20000 - - - - - - winbind separator (G) - This parameter allows an admin to define the character - used when listing a username of the form of DOMAIN - \user. This parameter - is only applicable when using the pam_winbind.so - and nss_winbind.so modules for UNIX services. - - - Please note that setting this parameter to + causes problems - with group membership at least on glibc systems, as the character + - is used as a special character for NIS in /etc/group. - - Default: winbind separator = '\' - Example: winbind separator = + - - - - - - - - winbind uid (G) - The winbind gid parameter specifies the range of group - ids that are allocated by the - winbindd(8) daemon. This range of ids should have no - existing local or NIS users within it as strange conflicts can - occur otherwise. - - Default: winbind uid = <empty string> - - - Example: winbind uid = 10000-20000 - - - - - - winbind use default domain - - winbind use default domain (G) - This parameter specifies whether the - winbindd(8) - daemon should operate on users without domain component in their username. - Users without a domain component are treated as is part of the winbindd server's - own domain. While this does not benifit Windows users, it makes SSH, FTP and e-mail - function in a way much closer to the way they would in a native unix system. - - Default: winbind use default domain = <no> - - Example: winbind use default domain = yes - - - - - - wins hook (G) - When Samba is running as a WINS server this - allows you to call an external program for all changes to the - WINS database. The primary use for this option is to allow the - dynamic update of external name resolution databases such as - dynamic DNS. - - The wins hook parameter specifies the name of a script - or executable that will be called as follows: - - wins_hook operation name nametype ttl IP_list - - - - The first argument is the operation and is one - of "add", "delete", or "refresh". In most cases the operation can - be ignored as the rest of the parameters provide sufficient - information. Note that "refresh" may sometimes be called when the - name has not previously been added, in that case it should be treated - as an add. - - The second argument is the NetBIOS name. If the - name is not a legal name then the wins hook is not called. - Legal names contain only letters, digits, hyphens, underscores - and periods. - - The third argument is the NetBIOS name - type as a 2 digit hexadecimal number. - - The fourth argument is the TTL (time to live) - for the name in seconds. - - The fifth and subsequent arguments are the IP - addresses currently registered for that name. If this list is - empty then the name should be deleted. - - - An example script that calls the BIND dynamic DNS update - program nsupdate is provided in the examples - directory of the Samba source code. - - - - - - - - - wins proxy (G) - This is a boolean that controls if nmbd(8) will respond to broadcast name - queries on behalf of other hosts. You may need to set this - to yes for some older clients. - - Default: wins proxy = no - - - - - - - - wins server (G) - This specifies the IP address (or DNS name: IP - address for preference) of the WINS server that - nmbd(8) should register with. If you have a WINS server on - your network then you should set this to the WINS server's IP. - - You should point this at your WINS server if you have a - multi-subnetted network. - - NOTE. You need to set up Samba to point - to a WINS server if you have multiple subnets and wish cross-subnet - browsing to work correctly. - - See the documentation file BROWSING.txt - in the docs/ directory of your Samba source distribution. - - Default: not enabled - Example: wins server = 192.9.200.1 - - - - - - - wins support (G) - This boolean controls if the - nmbd(8) process in Samba will act as a WINS server. You should - not set this to yes unless you have a multi-subnetted network and - you wish a particular nmbd to be your WINS server. - Note that you should NEVER set this to yes - on more than one machine in your network. - - Default: wins support = no - - - - - - - workgroup (G) - This controls what workgroup your server will - appear to be in when queried by clients. Note that this parameter - also controls the Domain name used with the security = domain - setting. - - Default: set at compile time to WORKGROUP - Example: workgroup = MYGROUP - - - - - - - - writable (S) - Synonym for - writeable for people who can't spell :-). - - - - - - - write cache size (S) - If this integer parameter is set to non-zero value, - Samba will create an in-memory cache for each oplocked file - (it does not do this for - non-oplocked files). All writes that the client does not request - to be flushed directly to disk will be stored in this cache if possible. - The cache is flushed onto disk when a write comes in whose offset - would not fit into the cache or when the file is closed by the client. - Reads for the file are also served from this cache if the data is stored - within it. - - This cache allows Samba to batch client writes into a more - efficient write size for RAID disks (i.e. writes may be tuned to - be the RAID stripe size) and can improve performance on systems - where the disk subsystem is a bottleneck but there is free - memory for userspace programs. - - The integer parameter specifies the size of this cache - (per oplocked file) in bytes. - - Default: write cache size = 0 - Example: write cache size = 262144 - - for a 256k cache size per file. - - - - - - - - - write list (S) - This is a list of users that are given read-write - access to a service. If the connecting user is in this list then - they will be given write access, no matter what the read only - option is set to. The list can include group names using the - @group syntax. - - Note that if a user is in both the read list and the - write list then they will be given write access. - - See also the read list - option. - - Default: write list = <empty string> - - - Example: write list = admin, root, @staff - - - - - - - - wins partners (G) - A space separated list of partners' IP addresses for - WINS replication. WINS partners are always defined as push/pull - partners as defining only one way WINS replication is unreliable. - WINS replication is currently experimental and unreliable between - samba servers. - - - Default: wins partners = - - Example: wins partners = 192.168.0.1 172.16.1.2 - - - - - - write ok (S) - Inverted synonym for - read only. - - - - - - - write raw (G) - This parameter controls whether or not the server - will support raw write SMB's when transferring data from clients. - You should never need to change this parameter. - - Default: write raw = yes - - - - - - - writeable (S) - Inverted synonym for - read only. - - - - - - - - - - WARNINGS - - Although the configuration file permits service names - to contain spaces, your client software may not. Spaces will - be ignored in comparisons anyway, so it shouldn't be a - problem - but be aware of the possibility. - - On a similar note, many clients - especially DOS clients - - limit service names to eight characters. smbd(8) - has no such limitation, but attempts to connect from such - clients will fail if they truncate the service names. For this reason - you should probably keep your service names down to eight characters - in length. - - Use of the [homes] and [printers] special sections make life - for an administrator easy, but the various combinations of default - attributes can be tricky. Take extreme care when designing these - sections. In particular, ensure that the permissions on spool - directories are correct. - - - - VERSION - - This man page is correct for version 3.0 of - the Samba suite. - - - - SEE ALSO - samba(7), - smbpasswd(8), - swat(8), - smbd(8), - nmbd(8), - smbclient(1), - nmblookup(1), - testparm(1), - testprns(1) - - - - - AUTHOR - - The original Samba software and related utilities - were created by Andrew Tridgell. Samba is now developed - by the Samba Team as an Open Source project similar - to the way the Linux kernel is developed. - - The original Samba man pages were written by Karl Auer. - The man page sources were converted to YODL format (another - excellent piece of Open Source software, available at - - ftp://ftp.icce.rug.nl/pub/unix/) and updated for the Samba 2.0 - release by Jeremy Allison. The conversion to DocBook for - Samba 2.2 was done by Gerald Carter - - - diff --git a/docs/docbook/manpages/smbcacls.1.sgml b/docs/docbook/manpages/smbcacls.1.sgml deleted file mode 100644 index 766d2a78b11..00000000000 --- a/docs/docbook/manpages/smbcacls.1.sgml +++ /dev/null @@ -1,255 +0,0 @@ - - - - - smbcacls - 1 - - - - - smbcacls - Set or get ACLs on an NT file or directory names - - - - - smbcacls - //server/share - filename - -U username - -A acls - -M acls - -D acls - -S acls - -C name - -G name - -n - -h - - - - - DESCRIPTION - - This tool is part of the - Samba suite. - - The smbcacls program manipulates NT Access Control - Lists (ACLs) on SMB file shares. - - - - - OPTIONS - - The following options are available to the smbcacls program. - The format of ACLs is described in the section ACL FORMAT - - - - - -A acls - Add the ACLs specified to the ACL list. Existing - access control entries are unchanged. - - - - - - -M acls - Modify the mask value (permissions) for the ACLs - specified on the command line. An error will be printed for each - ACL specified that was not already present in the ACL list - - - - - - - -D acls - Delete any ACLs specified on the command line. - An error will be printed for each ACL specified that was not - already present in the ACL list. - - - - - - -S acls - This command sets the ACLs on the file with - only the ones specified on the command line. All other ACLs are - erased. Note that the ACL specified must contain at least a revision, - type, owner and group for the call to succeed. - - - - - - -U username - Specifies a username used to connect to the - specified service. The username may be of the form "username" in - which case the user is prompted to enter in a password and the - workgroup specified in the smb.conf file is - used, or "username%password" or "DOMAIN\username%password" and the - password and workgroup names are used as provided. - - - - - - -C name - The owner of a file or directory can be changed - to the name given using the -C option. - The name can be a sid in the form S-1-x-y-z or a name resolved - against the server specified in the first argument. - - This command is a shortcut for -M OWNER:name. - - - - - - - -G name - The group owner of a file or directory can - be changed to the name given using the -G - option. The name can be a sid in the form S-1-x-y-z or a name - resolved against the server specified n the first argument. - - - This command is a shortcut for -M GROUP:name. - - - - - - -n - This option displays all ACL information in numeric - format. The default is to convert SIDs to names and ACE types - and masks to a readable string format. - - - - - - -h - Print usage information on the smbcacls - program. - - - - - - - ACL FORMAT - - The format of an ACL is one or more ACL entries separated by - either commas or newlines. An ACL entry is one of the following: - - -REVISION:<revision number> -OWNER:<sid or name> -GROUP:<sid or name> -ACL:<sid or name>:<type>/<flags>/<mask> - - - - The revision of the ACL specifies the internal Windows - NT ACL revision for the security descriptor. - If not specified it defaults to 1. Using values other than 1 may - cause strange behaviour. - - The owner and group specify the owner and group sids for the - object. If a SID in the format CWS-1-x-y-z is specified this is used, - otherwise the name specified is resolved using the server on which - the file or directory resides. - - ACLs specify permissions granted to the SID. This SID again - can be specified in CWS-1-x-y-z format or as a name in which case - it is resolved against the server on which the file or directory - resides. The type, flags and mask values determine the type of - access granted to the SID. - - The type can be either 0 or 1 corresponding to ALLOWED or - DENIED access to the SID. The flags values are generally - zero for file ACLs and either 9 or 2 for directory ACLs. Some - common flags are: - - - #define SEC_ACE_FLAG_OBJECT_INHERIT 0x1 - #define SEC_ACE_FLAG_CONTAINER_INHERIT 0x2 - #define SEC_ACE_FLAG_NO_PROPAGATE_INHERIT 0x4 - - #define SEC_ACE_FLAG_INHERIT_ONLY 0x8 - - - - At present flags can only be specified as decimal or - hexadecimal values. - - The mask is a value which expresses the access right - granted to the SID. It can be given as a decimal or hexadecimal value, - or by using one of the following text strings which map to the NT - file permissions of the same name. - - - R - Allow read access - W - Allow write access - X - Execute permission on the object - D - Delete the object - P - Change permissions - O - Take ownership - - - - The following combined permissions can be specified: - - - - READ - Equivalent to 'RX' - permissions - CHANGE - Equivalent to 'RXWD' permissions - - FULL - Equivalent to 'RWXDPO' - permissions - - - - - EXIT STATUS - - The smbcacls program sets the exit status - depending on the success or otherwise of the operations performed. - The exit status may be one of the following values. - - If the operation succeeded, smbcacls returns and exit - status of 0. If smbcacls couldn't connect to the specified server, - or there was an error getting or setting the ACLs, an exit status - of 1 is returned. If there was an error parsing any command line - arguments, an exit status of 2 is returned. - - - - VERSION - - This man page is correct for version 2.2 of - the Samba suite. - - - - AUTHOR - - The original Samba software and related utilities - were created by Andrew Tridgell. Samba is now developed - by the Samba Team as an Open Source project similar - to the way the Linux kernel is developed. - - smbcacls was written by Andrew Tridgell - and Tim Potter. - - The conversion to DocBook for Samba 2.2 was done - by Gerald Carter - - - diff --git a/docs/docbook/manpages/smbclient.1.sgml b/docs/docbook/manpages/smbclient.1.sgml deleted file mode 100644 index 43994a4529f..00000000000 --- a/docs/docbook/manpages/smbclient.1.sgml +++ /dev/null @@ -1,1088 +0,0 @@ - - - - - smbclient - 1 - - - - - smbclient - ftp-like client to access SMB/CIFS resources - on servers - - - - - smbclient - servicename - password - -b <buffer size> - -d debuglevel - -D Directory - -U username - -W workgroup - -M <netbios name> - -m maxprotocol - -A authfile - -N - -l logfile - -L <netbios name> - -I destinationIP - -E - -c <command string> - -i scope - -O <socket options> - -p port - -R <name resolve order> - -s <smb config file> - -T<c|x>IXFqgbNan - - - - - DESCRIPTION - - This tool is part of the - Samba suite. - - smbclient is a client that can - 'talk' to an SMB/CIFS server. It offers an interface - similar to that of the ftp program (see ftp(1)). - Operations include things like getting files from the server - to the local machine, putting files from the local machine to - the server, retrieving directory information from the server - and so on. - - - - - OPTIONS - - - - servicename - servicename is the name of the service - you want to use on the server. A service name takes the form - //server/service where server - is the NetBIOS name of the SMB/CIFS server - offering the desired service and service - is the name of the service offered. Thus to connect to - the service "printer" on the SMB/CIFS server "smbserver", - you would use the servicename //smbserver/printer - - - Note that the server name required is NOT necessarily - the IP (DNS) host name of the server ! The name required is - a NetBIOS server name, which may or may not be the - same as the IP hostname of the machine running the server. - - - The server name is looked up according to either - the -R parameter to smbclient or - using the name resolve order parameter in the smb.conf file, - allowing an administrator to change the order and methods - by which server names are looked up. - - - - password - The password required to access the specified - service on the specified server. If this parameter is - supplied, the -N option (suppress - password prompt) is assumed. - - There is no default password. If no password is supplied - on the command line (either by using this parameter or adding - a password to the -U option (see - below)) and the -N option is not - specified, the client will prompt for a password, even if - the desired service does not require one. (If no password is - required, simply press ENTER to provide a null password.) - - - Note: Some servers (including OS/2 and Windows for - Workgroups) insist on an uppercase password. Lowercase - or mixed case passwords may be rejected by these servers. - - - Be cautious about including passwords in scripts. - - - - - -s smb.conf - Specifies the location of the all important - smb.conf file. - - - - -O socket options - TCP socket options to set on the client - socket. See the socket options parameter in the - smb.conf (5) manpage for the list of valid - options. - - - - - -R <name resolve order> - This option is used by the programs in the Samba - suite to determine what naming services and in what order to resolve - host names to IP addresses. The option takes a space-separated - string of different name resolution options. - - The options are :"lmhosts", "host", "wins" and "bcast". They - cause names to be resolved as follows : - - - lmhosts : Lookup an IP - address in the Samba lmhosts file. If the line in lmhosts has - no name type attached to the NetBIOS name (see the lmhosts(5) for details) then - any name type matches for lookup. - - host : Do a standard host - name to IP address resolution, using the system /etc/hosts - , NIS, or DNS lookups. This method of name resolution - is operating system dependent, for instance on IRIX or Solaris this - may be controlled by the /etc/nsswitch.conf - file). Note that this method is only used if the NetBIOS name - type being queried is the 0x20 (server) name type, otherwise - it is ignored. - - wins : Query a name with - the IP address listed in the wins server - parameter. If no WINS server has - been specified this method will be ignored. - - bcast : Do a broadcast on - each of the known local interfaces listed in the - interfaces - parameter. This is the least reliable of the name resolution - methods as it depends on the target host being on a locally - connected subnet. - - - If this parameter is not set then the name resolve order - defined in the smb.conf file parameter - (name resolve order) will be used. - - The default order is lmhosts, host, wins, bcast and without - this parameter or any entry in the name resolve order - parameter of the smb.conf file the name resolution - methods will be attempted in this order. - - - - - -M NetBIOS name - This options allows you to send messages, using - the "WinPopup" protocol, to another computer. Once a connection is - established you then type your message, pressing ^D (control-D) to - end. - - If the receiving computer is running WinPopup the user will - receive the message and probably a beep. If they are not running - WinPopup the message will be lost, and no error message will - occur. - - The message is also automatically truncated if the message - is over 1600 bytes, as this is the limit of the protocol. - - - One useful trick is to cat the message through - smbclient. For example: - cat mymessage.txt | smbclient -M FRED will - send the message in the file mymessage.txt - to the machine FRED. - - You may also find the -U and - -I options useful, as they allow you to - control the FROM and TO parts of the message. - - See the message command parameter in the - smb.conf(5) for a description of how to handle incoming - WinPopup messages in Samba. - - Note: Copy WinPopup into the startup group - on your WfWg PCs if you want them to always be able to receive - messages. - - - - -i scope - This specifies a NetBIOS scope that smbclient will - use to communicate with when generating NetBIOS names. For details - on the use of NetBIOS scopes, see rfc1001.txt - and rfc1002.txt. - NetBIOS scopes are very rarely used, only set - this parameter if you are the system administrator in charge of all - the NetBIOS systems you communicate with. - - - - - -N - If specified, this parameter suppresses the normal - password prompt from the client to the user. This is useful when - accessing a service that does not require a password. - - Unless a password is specified on the command line or - this parameter is specified, the client will request a - password. - - - - - - -n NetBIOS name - By default, the client will use the local - machine's hostname (in uppercase) as its NetBIOS name. This parameter - allows you to override the host name and use whatever NetBIOS - name you wish. - - - - - -d debuglevel - debuglevel is an integer from 0 to 10, or - the letter 'A'. - - The default value if this parameter is not specified - is zero. - - The higher this value, the more detail will be logged to - the log files about the activities of the - client. At level 0, only critical errors and serious warnings will - be logged. Level 1 is a reasonable level for day to day running - - it generates a small amount of information about operations - carried out. - - Levels above 1 will generate considerable amounts of log - data, and should only be used when investigating a problem. - Levels above 3 are designed for use only by developers and - generate HUGE amounts of log data, most of which is extremely - cryptic. If debuglevel is set to the letter 'A', then all - debug messages will be printed. This setting - is for developers only (and people who really want - to know how the code works internally). - - Note that specifying this parameter here will override - the log level parameter in the smb.conf (5) - file. - - - - - -p port - This number is the TCP port number that will be used - when making connections to the server. The standard (well-known) - TCP port number for an SMB/CIFS server is 139, which is the - default. - - - - - -l logfilename - If specified, logfilename specifies a base filename - into which operational data from the running client will be - logged. - - The default base name is specified at compile time. - - The base name is used to generate actual log file names. - For example, if the name specified was "log", the debug file - would be log.client. - - The log file generated is never removed by the client. - - - - - - - -h - Print the usage message for the client. - - - - - - -I IP-address - IP address is the address of the server to connect to. - It should be specified in standard "a.b.c.d" notation. - - Normally the client would attempt to locate a named - SMB/CIFS server by looking it up via the NetBIOS name resolution - mechanism described above in the name resolve order - parameter above. Using this parameter will force the client - to assume that the server is on the machine with the specified IP - address and the NetBIOS name component of the resource being - connected to will be ignored. - - There is no default for this parameter. If not supplied, - it will be determined automatically by the client as described - above. - - - - - - -E - This parameter causes the client to write messages - to the standard error stream (stderr) rather than to the standard - output stream. - - By default, the client writes messages to standard output - - typically the user's tty. - - - - - -U username[%pass] - Sets the SMB username or username and password. - If %pass is not specified, The user will be prompted. The client - will first check the USER environment variable, then the - LOGNAME variable and if either exists, the - string is uppercased. Anything in these variables following a '%' - sign will be treated as the password. If these environment - variables are not found, the username GUEST - is used. - - If the password is not included in these environment - variables (using the %pass syntax), smbclient will look for - a PASSWD environment variable from which - to read the password. - - A third option is to use a credentials file which - contains the plaintext of the domain name, username and password. This - option is mainly provided for scripts where the admin doesn't - wish to pass the credentials on the command line or via environment - variables. If this method is used, make certain that the permissions - on the file restrict access from unwanted users. See the - -A for more details. - - Be cautious about including passwords in scripts or in - the PASSWD environment variable. Also, on - many systems the command line of a running process may be seen - via the ps command to be safe always allow - smbclient to prompt for a password and type - it in directly. - - - - - -A filenameThis option allows - you to specify a file from which to read the username, domain name, and - password used in the connection. The format of the file is - - - -username = <value> -password = <value> -domain = <value> - - - - If the domain parameter is missing the current workgroup name - is used instead. Make certain that the permissions on the file restrict - access from unwanted users. - - - - - - -L - This option allows you to look at what services - are available on a server. You use it as smbclient -L - host and a list should appear. The -I - option may be useful if your NetBIOS names don't - match your TCP/IP DNS host names or if you are trying to reach a - host on another network. - - - - - -t terminal code - This option tells smbclient how to interpret - filenames coming from the remote server. Usually Asian language - multibyte UNIX implementations use different character sets than - SMB/CIFS servers (EUC instead of - SJIS for example). Setting this parameter will let - smbclient convert between the UNIX filenames and - the SMB filenames correctly. This option has not been seriously tested - and may have some problems. - - The terminal codes include CWsjis, CWeuc, CWjis7, CWjis8, - CWjunet, CWhex, CWcap. This is not a complete list, check the Samba - source code for the complete list. - - - - - -b buffersize - This option changes the transmit/send buffer - size when getting or putting a file from/to the server. The default - is 65520 bytes. Setting this value smaller (to 1200 bytes) has been - observed to speed up file transfers to and from a Win9x server. - - - - - - - -W WORKGROUP - Override the default workgroup (domain) specified - in the workgroup parameter of the smb.conf - file for this connection. This may be needed to connect to some - servers. - - - - - -T tar options - smbclient may be used to create tar(1) - compatible backups of all the files on an SMB/CIFS - share. The secondary tar flags that can be given to this option - are : - - - c - Create a tar file on UNIX. - Must be followed by the name of a tar file, tape device - or "-" for standard output. If using standard output you must - turn the log level to its lowest value -d0 to avoid corrupting - your tar file. This flag is mutually exclusive with the - x flag. - - x - Extract (restore) a local - tar file back to a share. Unless the -D option is given, the tar - files will be restored from the top level of the share. Must be - followed by the name of the tar file, device or "-" for standard - input. Mutually exclusive with the c flag. - Restored files have their creation times (mtime) set to the - date saved in the tar file. Directories currently do not get - their creation dates restored properly. - - I - Include files and directories. - Is the default behavior when filenames are specified above. Causes - tar files to be included in an extract or create (and therefore - everything else to be excluded). See example below. Filename globbing - works in one of two ways. See r below. - - X - Exclude files and directories. - Causes tar files to be excluded from an extract or create. See - example below. Filename globbing works in one of two ways now. - See r below. - - b - Blocksize. Must be followed - by a valid (greater than zero) blocksize. Causes tar file to be - written out in blocksize*TBLOCK (usually 512 byte) blocks. - - - g - Incremental. Only back up - files that have the archive bit set. Useful only with the - c flag. - - q - Quiet. Keeps tar from printing - diagnostics as it works. This is the same as tarmode quiet. - - - r - Regular expression include - or exclude. Uses regular expression matching for - excluding or excluding files if compiled with HAVE_REGEX_H. - However this mode can be very slow. If not compiled with - HAVE_REGEX_H, does a limited wildcard match on '*' and '?'. - - - N - Newer than. Must be followed - by the name of a file whose date is compared against files found - on the share during a create. Only files newer than the file - specified are backed up to the tar file. Useful only with the - c flag. - - a - Set archive bit. Causes the - archive bit to be reset when a file is backed up. Useful with the - g and c flags. - - - - Tar Long File Names - - smbclient's tar option now supports long - file names both on backup and restore. However, the full path - name of the file must be less than 1024 bytes. Also, when - a tar archive is created, smbclient's tar option places all - files in the archive with relative names, not absolute names. - - - Tar Filenames - - All file names can be given as DOS path names (with '\' - as the component separator) or as UNIX path names (with '/' as - the component separator). - - Examples - - Restore from tar file backup.tar into myshare on mypc - (no password on share). - - smbclient //mypc/yshare "" -N -Tx backup.tar - - - Restore everything except users/docs - - - smbclient //mypc/myshare "" -N -TXx backup.tar - users/docs - - Create a tar file of the files beneath - users/docs. - - smbclient //mypc/myshare "" -N -Tc - backup.tar users/docs - - Create the same tar file as above, but now use - a DOS path name. - - smbclient //mypc/myshare "" -N -tc backup.tar - users\edocs - - Create a tar file of all the files and directories in - the share. - - smbclient //mypc/myshare "" -N -Tc backup.tar * - - - - - - - -D initial directory - Change to initial directory before starting. Probably - only of any use with the tar -T option. - - - - - - -c command string - command string is a semicolon-separated list of - commands to be executed instead of prompting from stdin. - -N is implied by -c. - - This is particularly useful in scripts and for printing stdin - to the server, e.g. -c 'print -'. - - - - - - - OPERATIONS - - Once the client is running, the user is presented with - a prompt : - - smb:\> - - The backslash ("\") indicates the current working directory - on the server, and will change if the current working directory - is changed. - - The prompt indicates that the client is ready and waiting to - carry out a user command. Each command is a single word, optionally - followed by parameters specific to that command. Command and parameters - are space-delimited unless these notes specifically - state otherwise. All commands are case-insensitive. Parameters to - commands may or may not be case sensitive, depending on the command. - - - You can specify file names which have spaces in them by quoting - the name with double quotes, for example "a long file name". - - Parameters shown in square brackets (e.g., "[parameter]") are - optional. If not given, the command will use suitable defaults. Parameters - shown in angle brackets (e.g., "<parameter>") are required. - - - - Note that all commands operating on the server are actually - performed by issuing a request to the server. Thus the behavior may - vary from server to server, depending on how the server was implemented. - - - The commands available are given here in alphabetical order. - - - - ? [command] - If command is specified, the ? command will display - a brief informative message about the specified command. If no - command is specified, a list of available commands will - be displayed. - - - - - ! [shell command] - If shell command is specified, the ! - command will execute a shell locally and run the specified shell - command. If no command is specified, a local shell will be run. - - - - - - altname file - The client will request that the server return - the "alternate" name (the 8.3 name) for a file or directory. - - - - - - cancel jobid0 [jobid1] ... [jobidN] - The client will request that the server cancel - the printjobs identified by the given numeric print job ids. - - - - - - - chmod file mode in octal - This command depends on the server supporting the CIFS - UNIX extensions and will fail if the server does not. The client requests that the server - change the UNIX permissions to the given octal mode, in standard UNIX format. - - - - - - - chown file uid gid - This command depends on the server supporting the CIFS - UNIX extensions and will fail if the server does not. The client requests that the server - change the UNIX user and group ownership to the given decimal values. Note there is - currently no way to remotely look up the UNIX uid and gid values for a given name. - This may be addressed in future versions of the CIFS UNIX extensions. - - - - - - - cd [directory name] - If "directory name" is specified, the current - working directory on the server will be changed to the directory - specified. This operation will fail if for any reason the specified - directory is inaccessible. - - If no directory name is specified, the current working - directory on the server will be reported. - - - - - del <mask> - The client will request that the server attempt - to delete all files matching mask from the current working - directory on the server. - - - - - dir <mask> - A list of the files matching mask in the current - working directory on the server will be retrieved from the server - and displayed. - - - - - exit - Terminate the connection with the server and exit - from the program. - - - - - get <remote file name> [local file name] - Copy the file called remote file name from - the server to the machine running the client. If specified, name - the local copy local file name. Note that all transfers in - smbclient are binary. See also the - lowercase command. - - - - - - help [command] - See the ? command above. - - - - - lcd [directory name] - If directory name is specified, the current - working directory on the local machine will be changed to - the directory specified. This operation will fail if for any - reason the specified directory is inaccessible. - - If no directory name is specified, the name of the - current working directory on the local machine will be reported. - - - - - - link source destination - This command depends on the server supporting the CIFS - UNIX extensions and will fail if the server does not. The client requests that the server - create a hard link between the source and destination files. The source file - must not exist. - - - - - - - lowercase - Toggle lowercasing of filenames for the get and - mget commands. - - When lowercasing is toggled ON, local filenames are converted - to lowercase when using the get and mget commands. This is - often useful when copying (say) MSDOS files from a server, because - lowercase filenames are the norm on UNIX systems. - - - - - - ls <mask> - See the dir command above. - - - - - mask <mask> - This command allows the user to set up a mask - which will be used during recursive operation of the mget and - mput commands. - - The masks specified to the mget and mput commands act as - filters for directories rather than files when recursion is - toggled ON. - - The mask specified with the mask command is necessary - to filter files within those directories. For example, if the - mask specified in an mget command is "source*" and the mask - specified with the mask command is "*.c" and recursion is - toggled ON, the mget command will retrieve all files matching - "*.c" in all directories below and including all directories - matching "source*" in the current working directory. - - Note that the value for mask defaults to blank (equivalent - to "*") and remains so until the mask command is used to change it. - It retains the most recently specified value indefinitely. To - avoid unexpected results it would be wise to change the value of - mask back to "*" after using the mget or mput commands. - - - - - md <directory name> - See the mkdir command. - - - - - mget <mask> - Copy all files matching mask from the server to - the machine running the client. - - Note that mask is interpreted differently during recursive - operation and non-recursive operation - refer to the recurse and - mask commands for more information. Note that all transfers in - smbclient are binary. See also the lowercase command. - - - - - mkdir <directory name> - Create a new directory on the server (user access - privileges permitting) with the specified name. - - - - - mput <mask> - Copy all files matching mask in the current working - directory on the local machine to the current working directory on - the server. - - Note that mask is interpreted differently during recursive - operation and non-recursive operation - refer to the recurse and mask - commands for more information. Note that all transfers in smbclient - are binary. - - - - - print <file name> - Print the specified file from the local machine - through a printable service on the server. - - See also the printmode command. - - - - - - printmode <graphics or text> - Set the print mode to suit either binary data - (such as graphical information) or text. Subsequent print - commands will use the currently set print mode. - - - - - prompt - Toggle prompting for filenames during operation - of the mget and mput commands. - - When toggled ON, the user will be prompted to confirm - the transfer of each file during these commands. When toggled - OFF, all specified files will be transferred without prompting. - - - - - - put <local file name> [remote file name] - Copy the file called local file name from the - machine running the client to the server. If specified, - name the remote copy remote file name. Note that all transfers - in smbclient are binary. See also the lowercase command. - - - - - - - queue - Displays the print queue, showing the job id, - name, size and current status. - - - - - quit - See the exit command. - - - - - rd <directory name> - See the rmdir command. - - - - - recurse - Toggle directory recursion for the commands mget - and mput. - - When toggled ON, these commands will process all directories - in the source directory (i.e., the directory they are copying - from ) and will recurse into any that match the mask specified - to the command. Only files that match the mask specified using - the mask command will be retrieved. See also the mask command. - - - When recursion is toggled OFF, only files from the current - working directory on the source machine that match the mask specified - to the mget or mput commands will be copied, and any mask specified - using the mask command will be ignored. - - - - - - rm <mask> - Remove all files matching mask from the current - working directory on the server. - - - - - rmdir <directory name> - Remove the specified directory (user access - privileges permitting) from the server. - - - - - setmode <filename> <perm=[+|\-]rsha> - A version of the DOS attrib command to set - file permissions. For example: - - setmode myfile +r - - would make myfile read only. - - - - - - symlink source destination - This command depends on the server supporting the CIFS - UNIX extensions and will fail if the server does not. The client requests that the server - create a symbolic hard link between the source and destination files. The source file - must not exist. Note that the server will not create a link to any path that lies - outside the currently connected share. This is enforced by the Samba server. - - - - - - - tar <c|x>[IXbgNa] - Performs a tar operation - see the -T - command line option above. Behavior may be affected - by the tarmode command (see below). Using g (incremental) and N - (newer) will affect tarmode settings. Note that using the "-" option - with tar x may not work - use the command line option instead. - - - - - - blocksize <blocksize> - Blocksize. Must be followed by a valid (greater - than zero) blocksize. Causes tar file to be written out in - blocksize*TBLOCK (usually 512 byte) blocks. - - - - - tarmode <full|inc|reset|noreset> - Changes tar's behavior with regard to archive - bits. In full mode, tar will back up everything regardless of the - archive bit setting (this is the default mode). In incremental mode, - tar will only back up files with the archive bit set. In reset mode, - tar will reset the archive bit on all files it backs up (implies - read/write share). - - - - - - - - NOTES - - Some servers are fussy about the case of supplied usernames, - passwords, share names (AKA service names) and machine names. - If you fail to connect try giving all parameters in uppercase. - - - It is often necessary to use the -n option when connecting - to some types of servers. For example OS/2 LanManager insists - on a valid NetBIOS name being used, so you need to supply a valid - name that would be known to the server. - - smbclient supports long file names where the server - supports the LANMAN2 protocol or above. - - - - ENVIRONMENT VARIABLES - - The variable USER may contain the - username of the person using the client. This information is - used only if the protocol level is high enough to support - session-level passwords. - - - The variable PASSWD may contain - the password of the person using the client. This information is - used only if the protocol level is high enough to support - session-level passwords. - - The variable LIBSMB_PROG may contain - the path, executed with system(), which the client should connect - to instead of connecting to a server. This functionality is primarily - intended as a development aid, and works best when using a LMHOSTS - file - - - - - INSTALLATION - - The location of the client program is a matter for - individual system administrators. The following are thus - suggestions only. - - It is recommended that the smbclient software be installed - in the /usr/local/samba/bin/ or - /usr/samba/bin/ directory, this directory readable - by all, writeable only by root. The client program itself should - be executable by all. The client should NOT be - setuid or setgid! - - The client log files should be put in a directory readable - and writeable only by the user. - - To test the client, you will need to know the name of a - running SMB/CIFS server. It is possible to run smbd(8) - as an ordinary user - running that server as a daemon - on a user-accessible port (typically any port number over 1024) - would provide a suitable test server. - - - - - DIAGNOSTICS - - Most diagnostics issued by the client are logged in a - specified log file. The log file name is specified at compile time, - but may be overridden on the command line. - - The number and nature of diagnostics available depends - on the debug level used by the client. If you have problems, - set the debug level to 3 and peruse the log files. - - - - - VERSION - - This man page is correct for version 2.2 of - the Samba suite. - - - - - AUTHOR - - The original Samba software and related utilities - were created by Andrew Tridgell. Samba is now developed - by the Samba Team as an Open Source project similar - to the way the Linux kernel is developed. - - The original Samba man pages were written by Karl Auer. - The man page sources were converted to YODL format (another - excellent piece of Open Source software, available at - - ftp://ftp.icce.rug.nl/pub/unix/) and updated for the Samba 2.0 - release by Jeremy Allison. The conversion to DocBook for - Samba 2.2 was done by Gerald Carter - - - diff --git a/docs/docbook/manpages/smbcontrol.1.sgml b/docs/docbook/manpages/smbcontrol.1.sgml deleted file mode 100644 index 166ef63e87f..00000000000 --- a/docs/docbook/manpages/smbcontrol.1.sgml +++ /dev/null @@ -1,215 +0,0 @@ - - - - - smbcontrol - 1 - - - - - smbcontrol - send messages to smbd, nmbd or winbindd processes - - - - - smbcontrol - -i - - - - smbcontrol - destination - message-type - parameter - - - - - DESCRIPTION - - This tool is part of the - Samba suite. - - smbcontrol is a very small program, which - sends messages to an smbd(8), - an nmbd(8) - or a winbindd(8) - daemon running on the system. - - - - - OPTIONS - - - - -i - Run interactively. Individual commands - of the form destination message-type parameters can be entered - on STDIN. An empty command line or a "q" will quit the - program. - - - - destination - One of nmbd - smbd or a process ID. - - The smbd destination causes the - message to "broadcast" to all smbd daemons. - - The nmbd destination causes the - message to be sent to the nmbd daemon specified in the - nmbd.pid file. - - If a single process ID is given, the message is sent - to only that process. - - - - - message-type - One of: close-share, - debug, - force-election, ping - , profile, - debuglevel, profilelevel, - or printnotify. - - The close-share message-type sends a - message to smbd which will then close the client connections to - the named share. Note that this doesn't affect client connections - to any other shares. This message-type takes an argument of the - share name for which client connections will be closed, or the - "*" character which will close all currently open shares. - This may be useful if you made changes to the access controls on the share. - This message can only be sent to smbd. - - The debug message-type allows - the debug level to be set to the value specified by the - parameter. This can be sent to any of the destinations. - - The force-election message-type can only be - sent to the nmbd destination. This message - causes the nmbd daemon to force a new browse - master election. - - The ping message-type sends the - number of "ping" messages specified by the parameter and waits - for the same number of reply "pong" messages. This can be sent to - any of the destinations. - - The profile message-type sends a - message to an smbd to change the profile settings based on the - parameter. The parameter can be "on" to turn on profile stats - collection, "off" to turn off profile stats collection, "count" - to enable only collection of count stats (time stats are - disabled), and "flush" to zero the current profile stats. This can - be sent to any smbd or nmbd destinations. - - The debuglevel message-type sends - a "request debug level" message. The current debug level setting - is returned by a "debuglevel" message. This can be - sent to any of the destinations. - - The profilelevel message-type sends - a "request profile level" message. The current profile level - setting is returned by a "profilelevel" message. This can be sent - to any smbd or nmbd destinations. - - The printnotify message-type sends a - message to smbd which in turn sends a printer notify message to - any Windows NT clients connected to a printer. This message-type - takes the following arguments: - - - - - queuepause printername - Send a queue pause change notify - message to the printer specified. - - - - queueresume printername - Send a queue resume change notify - message for the printer specified. - - - - jobpause printername unixjobid - Send a job pause change notify - message for the printer and unix jobid - specified. - - - - jobresume printername unixjobid - Send a job resume change notify - message for the printer and unix jobid - specified. - - - - jobdelete printername unixjobid - Send a job delete change notify - message for the printer and unix jobid - specified. - - - - - Note that this message only sends notification that an - event has occured. It doesn't actually cause the - event to happen. - - This message can only be sent to smbd. - - - - - - - - parameters - any parameters required for the message-type - - - - - - - - VERSION - - This man page is correct for version 2.2 of - the Samba suite. - - - - SEE ALSO - nmbd(8), - and smbd(8). - - - - - AUTHOR - - The original Samba software and related utilities - were created by Andrew Tridgell. Samba is now developed - by the Samba Team as an Open Source project similar - to the way the Linux kernel is developed. - - The original Samba man pages were written by Karl Auer. - The man page sources were converted to YODL format (another - excellent piece of Open Source software, available at - - ftp://ftp.icce.rug.nl/pub/unix/) and updated for the Samba 2.0 - release by Jeremy Allison. The conversion to DocBook for - Samba 2.2 was done by Gerald Carter - - - diff --git a/docs/docbook/manpages/smbd.8.sgml b/docs/docbook/manpages/smbd.8.sgml deleted file mode 100644 index 9fb80901be1..00000000000 --- a/docs/docbook/manpages/smbd.8.sgml +++ /dev/null @@ -1,427 +0,0 @@ - - - - - smbd - 8 - - - - - smbd - server to provide SMB/CIFS services to clients - - - - - smbd - -D - -F - -S - -i - -h - -V - -b - -d <debug level> - -l <log directory> - -p <port number> - -O <socket option> - -s <configuration file> - - - - - DESCRIPTION - This program is part of the Samba suite. - - smbd is the server daemon that - provides filesharing and printing services to Windows clients. - The server provides filespace and printer services to - clients using the SMB (or CIFS) protocol. This is compatible - with the LanManager protocol, and can service LanManager - clients. These include MSCLIENT 3.0 for DOS, Windows for - Workgroups, Windows 95/98/ME, Windows NT, Windows 2000, - OS/2, DAVE for Macintosh, and smbfs for Linux. - - An extensive description of the services that the - server can provide is given in the man page for the - configuration file controlling the attributes of those - services (see smb.conf(5) - . This man page will not describe the - services, but will concentrate on the administrative aspects - of running the server. - - Please note that there are significant security - implications to running this server, and the smb.conf(5) - manpage should be regarded as mandatory reading before - proceeding with installation. - - A session is created whenever a client requests one. - Each client gets a copy of the server for each session. This - copy then services all connections made by the client during - that session. When all connections from its client are closed, - the copy of the server for that client terminates. - - The configuration file, and any files that it includes, - are automatically reloaded every minute, if they change. You - can force a reload by sending a SIGHUP to the server. Reloading - the configuration file will not affect connections to any service - that is already established. Either the user will have to - disconnect from the service, or smbd killed and restarted. - - - - OPTIONS - - - - -D - If specified, this parameter causes - the server to operate as a daemon. That is, it detaches - itself and runs in the background, fielding requests - on the appropriate port. Operating the server as a - daemon is the recommended way of running smbd for - servers that provide more than casual use file and - print services. This switch is assumed if smbd - is executed on the command line of a shell. - - - - - -F - If specified, this parameter causes - the main smbd process to not daemonize, - i.e. double-fork and disassociate with the terminal. - Child processes are still created as normal to service - each connection request, but the main process does not - exit. This operation mode is suitable for running - smbd under process supervisors such - as supervise and svscan - from Daniel J. Bernstein's daemontools - package, or the AIX process monitor. - - - - - -S - If specified, this parameter causes - smbd to log to standard output rather - than a file. - - - - -i - If this parameter is specified it causes the - server to run "interactively", not as a daemon, even if the - server is executed on the command line of a shell. Setting this - parameter negates the implicit deamon mode when run from the - command line. smbd also logs to standard - output, as if the -S parameter had been - given. - - - - - -h - Prints the help information (usage) - for smbd. - - - - -V - Prints the version number for - smbd. - - - - -b - Prints information about how - Samba was built. - - - - -d <debug level> - debuglevel is an integer - from 0 to 10. The default value if this parameter is - not specified is zero. - - The higher this value, the more detail will be - logged to the log files about the activities of the - server. At level 0, only critical errors and serious - warnings will be logged. Level 1 is a reasonable level for - day to day running - it generates a small amount of - information about operations carried out. - - Levels above 1 will generate considerable - amounts of log data, and should only be used when - investigating a problem. Levels above 3 are designed for - use only by developers and generate HUGE amounts of log - data, most of which is extremely cryptic. - - Note that specifying this parameter here will - override the log - level parameter in the - smb.conf(5) file. - - - - - -l <log directory> - If specified, - log directory - specifies a log directory into which the "log.smbd" log - file will be created for informational and debug - messages from the running server. The log - file generated is never removed by the server although - its size may be controlled by the max log size - option in the - smb.conf(5) file. Beware: - If the directory specified does not exist, smbd - will log to the default debug log location defined at compile time. - - - The default log directory is specified at - compile time. - - - - -O <socket options> - See the socket options - parameter in the smb.conf(5) - file for details. - - - - -p <port number> - port number is a positive integer - value. The default value if this parameter is not - specified is 139. - - This number is the port number that will be - used when making connections to the server from client - software. The standard (well-known) port number for the - SMB over TCP is 139, hence the default. If you wish to - run the server as an ordinary user rather than - as root, most systems will require you to use a port - number greater than 1024 - ask your system administrator - for help if you are in this situation. - - In order for the server to be useful by most - clients, should you configure it on a port other - than 139, you will require port redirection services - on port 139, details of which are outlined in rfc1002.txt - section 4.3.5. - - This parameter is not normally specified except - in the above situation. - - - - -s <configuration file> - The file specified contains the - configuration details required by the server. The - information in this file includes server-specific - information such as what printcap file to use, as well - as descriptions of all the services that the server is - to provide. See - smb.conf(5) for more information. - The default configuration file name is determined at - compile time. - - - - - - FILES - - - - /etc/inetd.conf - If the server is to be run by the - inetd meta-daemon, this file - must contain suitable startup information for the - meta-daemon. See the UNIX_INSTALL.html - document for details. - - - - - /etc/rc - or whatever initialization script your - system uses). - - If running the server as a daemon at startup, - this file will need to contain an appropriate startup - sequence for the server. See the UNIX_INSTALL.html - document for details. - - - - /etc/services - If running the server via the - meta-daemon inetd, this file - must contain a mapping of service name (e.g., netbios-ssn) - to service port (e.g., 139) and protocol type (e.g., tcp). - See the UNIX_INSTALL.html - document for details. - - - - /usr/local/samba/lib/smb.conf - This is the default location of the - smb.conf - server configuration file. Other common places that systems - install this file are /usr/samba/lib/smb.conf - and /etc/smb.conf. - - This file describes all the services the server - is to make available to clients. See - smb.conf(5) for more information. - - - - - - - LIMITATIONS - On some systems smbd cannot change uid back - to root after a setuid() call. Such systems are called - trapdoor uid systems. If you have such a system, - you will be unable to connect from a client (such as a PC) as - two different users at once. Attempts to connect the - second user will result in access denied or - similar. - - - - ENVIRONMENT VARIABLES - - - - PRINTER - If no printer name is specified to - printable services, most systems will use the value of - this variable (or lp if this variable is - not defined) as the name of the printer to use. This - is not specific to the server, however. - - - - - - - PAM INTERACTION - Samba uses PAM for authentication (when presented with a plaintext - password), for account checking (is this account disabled?) and for - session management. The degree too which samba supports PAM is restricted - by the limitations of the SMB protocol and the - obey pam restricions - smb.conf paramater. When this is set, the following restrictions apply: - - - - Account Validation: All accesses to a - samba server are checked - against PAM to see if the account is vaild, not disabled and is permitted to - login at this time. This also applies to encrypted logins. - - - Session Management: When not using share - level secuirty, users must pass PAM's session checks before access - is granted. Note however, that this is bypassed in share level secuirty. - Note also that some older pam configuration files may need a line - added for session support. - - - - - - VERSION - - This man page is correct for version 3.0 of - the Samba suite. - - - - DIAGNOSTICS - - Most diagnostics issued by the server are logged - in a specified log file. The log file name is specified - at compile time, but may be overridden on the command line. - - The number and nature of diagnostics available depends - on the debug level used by the server. If you have problems, set - the debug level to 3 and peruse the log files. - - Most messages are reasonably self-explanatory. Unfortunately, - at the time this man page was created, there are too many diagnostics - available in the source code to warrant describing each and every - diagnostic. At this stage your best bet is still to grep the - source code and inspect the conditions that gave rise to the - diagnostics you are seeing. - - - - SIGNALS - - Sending the smbd a SIGHUP will cause it to - reload its smb.conf configuration - file within a short period of time. - - To shut down a user's smbd process it is recommended - that SIGKILL (-9) NOT - be used, except as a last resort, as this may leave the shared - memory area in an inconsistent state. The safe way to terminate - an smbd is to send it a SIGTERM (-15) signal and wait for - it to die on its own. - - The debug log level of smbd may be raised - or lowered using smbcontrol(1) - program (SIGUSR[1|2] signals are no longer used in - Samba 2.2). This is to allow transient problems to be diagnosed, - whilst still running at a normally low log level. - - Note that as the signal handlers send a debug write, - they are not re-entrant in smbd. This you should wait until - smbd is in a state of waiting for an incoming SMB before - issuing them. It is possible to make the signal handlers safe - by un-blocking the signals before the select call and re-blocking - them after, however this would affect performance. - - - - SEE ALSO - hosts_access(5), inetd(8), - nmbd(8), - smb.conf(5) - , smbclient(1) - , - testparm(1), - testprns(1), and the Internet RFC's - rfc1001.txt, rfc1002.txt. - In addition the CIFS (formerly SMB) specification is available - as a link from the Web page - http://samba.org/cifs/. - - - - AUTHOR - - The original Samba software and related utilities - were created by Andrew Tridgell. Samba is now developed - by the Samba Team as an Open Source project similar - to the way the Linux kernel is developed. - - The original Samba man pages were written by Karl Auer. - The man page sources were converted to YODL format (another - excellent piece of Open Source software, available at - - ftp://ftp.icce.rug.nl/pub/unix/) and updated for the Samba 2.0 - release by Jeremy Allison. The conversion to DocBook for - Samba 2.2 was done by Gerald Carter - - - diff --git a/docs/docbook/manpages/smbmnt.8.sgml b/docs/docbook/manpages/smbmnt.8.sgml deleted file mode 100644 index 55b66d5d25b..00000000000 --- a/docs/docbook/manpages/smbmnt.8.sgml +++ /dev/null @@ -1,113 +0,0 @@ - - - - - smbmnt - 8 - - - - - smbmnt - helper utility for mounting SMB filesystems - - - - - smbmnt - mount-point - -s <share> - -r - -u <uid> - -g <gid> - -f <mask> - -d <mask> - -o <options> - - - - - DESCRIPTION - - smbmnt is a helper application used - by the smbmount program to do the actual mounting of SMB shares. - smbmnt can be installed setuid root if you want - normal users to be able to mount their SMB shares. - - A setuid smbmnt will only allow mounts on directories owned - by the user, and that the user has write permission on. - - The smbmnt program is normally invoked - by smbmount(8) - . It should not be invoked directly by users. - - smbmount searches the normal PATH for smbmnt. You must ensure - that the smbmnt version in your path matches the smbmount used. - - - - - OPTIONS - - - - -r - mount the filesystem read-only - - - - - -u uid - specify the uid that the files will - be owned by - - - - -g gid - specify the gid that the files will be - owned by - - - - -f mask - specify the octal file mask applied - - - - - -d mask - specify the octal directory mask - applied - - - - -o options - - list of options that are passed as-is to smbfs, if this - command is run on a 2.4 or higher Linux kernel. - - - - - - - - - AUTHOR - - Volker Lendecke, Andrew Tridgell, Michael H. Warfield - and others. - - The current maintainer of smbfs and the userspace - tools smbmount, smbumount, - and smbmnt is Urban Widmark. - The SAMBA Mailing list - is the preferred place to ask questions regarding these programs. - - - The conversion of this manpage for Samba 2.2 was performed - by Gerald Carter - - - diff --git a/docs/docbook/manpages/smbmount.8.sgml b/docs/docbook/manpages/smbmount.8.sgml deleted file mode 100644 index c4b91a5572d..00000000000 --- a/docs/docbook/manpages/smbmount.8.sgml +++ /dev/null @@ -1,327 +0,0 @@ - - - - - smbmount - 8 - - - - - smbmount - mount an smbfs filesystem - - - - - smbmount - service - mount-point - -o options - - - - - DESCRIPTION - - smbmount mounts a Linux SMB filesystem. It - is usually invoked as mount.smbfs by - the mount(8) command when using the - "-t smbfs" option. This command only works in Linux, and the kernel must - support the smbfs filesystem. - - Options to smbmount are specified as a comma-separated - list of key=value pairs. It is possible to send options other - than those listed here, assuming that smbfs supports them. If - you get mount failures, check your kernel log for errors on - unknown options. - - smbmount is a daemon. After mounting it keeps running until - the mounted smbfs is umounted. It will log things that happen - when in daemon mode using the "machine name" smbmount, so - typically this output will end up in log.smbmount. The - smbmount process may also be called mount.smbfs. - - NOTE: smbmount - calls smbmnt(8) to do the actual mount. You - must make sure that smbmnt is in the path so - that it can be found. - - - - - OPTIONS - - - - username=<arg> - specifies the username to connect as. If - this is not given, then the environment variable - USER is used. This option can also take the - form "user%password" or "user/workgroup" or - "user/workgroup%password" to allow the password and workgroup - to be specified as part of the username. - - - - password=<arg> - specifies the SMB password. If this - option is not given then the environment variable - PASSWD is used. If it can find - no password smbmount will prompt - for a passeword, unless the guest option is - given. - - - Note that passwords which contain the argument delimiter - character (i.e. a comma ',') will failed to be parsed correctly - on the command line. However, the same password defined - in the PASSWD environment variable or a credentials file (see - below) will be read correctly. - - - - - - credentials=<filename> - specifies a file that contains a username - and/or password. The format of the file is: - - - - username = <value> - password = <value> - - - - This is preferred over having passwords in plaintext in a - shared file, such as /etc/fstab. Be sure to protect any - credentials file properly. - - - - - netbiosname=<arg> - sets the source NetBIOS name. It defaults - to the local hostname. - - - - uid=<arg> - sets the uid that will own all files on - the mounted filesystem. - It may be specified as either a username or a numeric uid. - - - - - - gid=<arg> - sets the gid that will own all files on - the mounted filesystem. - It may be specified as either a groupname or a numeric - gid. - - - - - port=<arg> - sets the remote SMB port number. The default - is 139. - - - - - fmask=<arg> - sets the file mask. This determines the - permissions that remote files have in the local filesystem. - The default is based on the current umask. - - - - - dmask=<arg> - sets the directory mask. This determines the - permissions that remote directories have in the local filesystem. - The default is based on the current umask. - - - - - debug=<arg> - sets the debug level. This is useful for - tracking down SMB connection problems. A suggested value to - start with is 4. If set too high there will be a lot of - output, possibly hiding the useful output. - - - - - ip=<arg> - sets the destination host or IP address. - - - - - - - workgroup=<arg> - sets the workgroup on the destination - - - - - - sockopt=<arg> - sets the TCP socket options. See the smb.conf - socket options option. - - - - - - scope=<arg> - sets the NetBIOS scope - - - - guest - don't prompt for a password - - - - - ro - mount read-only - - - - rwmount read-write - - - - iocharset=<arg> - - sets the charset used by the Linux side for codepage - to charset translations (NLS). Argument should be the - name of a charset, like iso8859-1. (Note: only kernel - 2.4.0 or later) - - - - - codepage=<arg> - - sets the codepage the server uses. See the iocharset - option. Example value cp850. (Note: only kernel 2.4.0 - or later) - - - - - ttl=<arg> - - sets how long a directory listing is cached in milliseconds - (also affects visibility of file size and date - changes). A higher value means that changes on the - server take longer to be noticed but it can give - better performance on large directories, especially - over long distances. Default is 1000ms but something - like 10000ms (10 seconds) is probably more reasonable - in many cases. - (Note: only kernel 2.4.2 or later) - - - - - - - - - - ENVIRONMENT VARIABLES - - The variable USER may contain the username of the - person using the client. This information is used only if the - protocol level is high enough to support session-level - passwords. The variable can be used to set both username and - password by using the format username%password. - - The variable PASSWD may contain the password of the - person using the client. This information is used only if the - protocol level is high enough to support session-level - passwords. - - The variable PASSWD_FILE may contain the pathname - of a file to read the password from. A single line of input is - read and used as the password. - - - - - BUGS - - Passwords and other options containing , can not be handled. - For passwords an alternative way of passing them is in a credentials - file or in the PASSWD environment. - - The credentials file does not handle usernames or passwords with - leading space. - - One smbfs bug is important enough to mention here, even if it - is a bit misplaced: - - - - Mounts sometimes stop working. This is usually - caused by smbmount terminating. Since smbfs needs smbmount to - reconnect when the server disconnects, the mount will eventually go - dead. An umount/mount normally fixes this. At least 2 ways to - trigger this bug are known. - - - - Note that the typical response to a bug report is suggestion - to try the latest version first. So please try doing that first, - and always include which versions you use of relevant software - when reporting bugs (minimum: samba, kernel, distribution) - - - - - - SEE ALSO - - Documentation/filesystems/smbfs.txt in the linux kernel - source tree may contain additional options and information. - - FreeBSD also has a smbfs, but it is not related to smbmount - - For Solaris, HP-UX and others you may want to look at - smbsh(1) or at other - solutions, such as sharity or perhaps replacing the SMB server with - a NFS server. - - - - - - AUTHOR - - Volker Lendecke, Andrew Tridgell, Michael H. Warfield - and others. - - The current maintainer of smbfs and the userspace - tools smbmount, smbumount, - and smbmnt is Urban Widmark. - The SAMBA Mailing list - is the preferred place to ask questions regarding these programs. - - - The conversion of this manpage for Samba 2.2 was performed - by Gerald Carter - - - diff --git a/docs/docbook/manpages/smbpasswd.5.sgml b/docs/docbook/manpages/smbpasswd.5.sgml deleted file mode 100644 index 5c80ac4c06c..00000000000 --- a/docs/docbook/manpages/smbpasswd.5.sgml +++ /dev/null @@ -1,204 +0,0 @@ - - - - - smbpasswd - 5 - - - - - smbpasswd - The Samba encrypted password file - - - - smbpasswd - - - - DESCRIPTION - - This tool is part of the - Samba suite. - - smbpasswd is the Samba encrypted password file. It contains - the username, Unix user id and the SMB hashed passwords of the - user, as well as account flag information and the time the - password was last changed. This file format has been evolving with - Samba and has had several different formats in the past. - - - - FILE FORMAT - - The format of the smbpasswd file used by Samba 2.2 - is very similar to the familiar Unix passwd(5) - file. It is an ASCII file containing one line for each user. Each field - ithin each line is separated from the next by a colon. Any entry - beginning with '#' is ignored. The smbpasswd file contains the - following information for each user: - - - - name - This is the user name. It must be a name that - already exists in the standard UNIX passwd file. - - - - - uid - This is the UNIX uid. It must match the uid - field for the same user entry in the standard UNIX passwd file. - If this does not match then Samba will refuse to recognize - this smbpasswd file entry as being valid for a user. - - - - - - Lanman Password Hash - This is the LANMAN hash of the user's password, - encoded as 32 hex digits. The LANMAN hash is created by DES - encrypting a well known string with the user's password as the - DES key. This is the same password used by Windows 95/98 machines. - Note that this password hash is regarded as weak as it is - vulnerable to dictionary attacks and if two users choose the - same password this entry will be identical (i.e. the password - is not "salted" as the UNIX password is). If the user has a - null password this field will contain the characters "NO PASSWORD" - as the start of the hex string. If the hex string is equal to - 32 'X' characters then the user's account is marked as - disabled and the user will not be able to - log onto the Samba server. - - WARNING !! Note that, due to - the challenge-response nature of the SMB/CIFS authentication - protocol, anyone with a knowledge of this password hash will - be able to impersonate the user on the network. For this - reason these hashes are known as plain text - equivalents and must NOT be made - available to anyone but the root user. To protect these passwords - the smbpasswd file is placed in a directory with read and - traverse access only to the root user and the smbpasswd file - itself must be set to be read/write only by root, with no - other access. - - - - - NT Password Hash - This is the Windows NT hash of the user's - password, encoded as 32 hex digits. The Windows NT hash is - created by taking the user's password as represented in - 16-bit, little-endian UNICODE and then applying the MD4 - (internet rfc1321) hashing algorithm to it. - - This password hash is considered more secure than - the LANMAN Password Hash as it preserves the case of the - password and uses a much higher quality hashing algorithm. - However, it is still the case that if two users choose the same - password this entry will be identical (i.e. the password is - not "salted" as the UNIX password is). - - WARNING !!. Note that, due to - the challenge-response nature of the SMB/CIFS authentication - protocol, anyone with a knowledge of this password hash will - be able to impersonate the user on the network. For this - reason these hashes are known as plain text - equivalents and must NOT be made - available to anyone but the root user. To protect these passwords - the smbpasswd file is placed in a directory with read and - traverse access only to the root user and the smbpasswd file - itself must be set to be read/write only by root, with no - other access. - - - - - Account Flags - This section contains flags that describe - the attributes of the users account. In the Samba 2.2 release - this field is bracketed by '[' and ']' characters and is always - 13 characters in length (including the '[' and ']' characters). - The contents of this field may be any of the characters. - - - - U - This means - this is a "User" account, i.e. an ordinary user. Only User - and Workstation Trust accounts are currently supported - in the smbpasswd file. - - N - This means the - account has no password (the passwords in the fields LANMAN - Password Hash and NT Password Hash are ignored). Note that this - will only allow users to log on with no password if the - null passwords parameter is set in the smb.conf(5) - config file. - - D - This means the account - is disabled and no SMB/CIFS logins will be allowed for - this user. - - W - This means this account - is a "Workstation Trust" account. This kind of account is used - in the Samba PDC code stream to allow Windows NT Workstations - and Servers to join a Domain hosted by a Samba PDC. - - - - Other flags may be added as the code is extended in future. - The rest of this field space is filled in with spaces. - - - - - - Last Change Time - This field consists of the time the account was - last modified. It consists of the characters 'LCT-' (standing for - "Last Change Time") followed by a numeric encoding of the UNIX time - in seconds since the epoch (1970) that the last change was made. - - - - - All other colon separated fields are ignored at this time. - - - - VERSION - - This man page is correct for version 3.0 of - the Samba suite. - - - - SEE ALSO - smbpasswd(8), - samba(7), and - the Internet RFC1321 for details on the MD4 algorithm. - - - - - AUTHOR - - The original Samba software and related utilities - were created by Andrew Tridgell. Samba is now developed - by the Samba Team as an Open Source project similar - to the way the Linux kernel is developed. - - The original Samba man pages were written by Karl Auer. - The man page sources were converted to YODL format (another - excellent piece of Open Source software, available at - - ftp://ftp.icce.rug.nl/pub/unix/) and updated for the Samba 2.0 - release by Jeremy Allison. The conversion to DocBook for - Samba 2.2 was done by Gerald Carter - - - diff --git a/docs/docbook/manpages/smbpasswd.8.sgml b/docs/docbook/manpages/smbpasswd.8.sgml deleted file mode 100644 index 8e6d925ae03..00000000000 --- a/docs/docbook/manpages/smbpasswd.8.sgml +++ /dev/null @@ -1,401 +0,0 @@ - - - - - smbpasswd - 8 - - - - - smbpasswd - change a user's SMB password - - - - - smbpasswd - -a - -x - -d - -e - -D debuglevel - -n - -r <remote machine> - -R <name resolve order> - -m - -U username[%password] - -h - -s - -w pass - -i - -L - username - - - - - DESCRIPTION - - This tool is part of the - Samba suite. - - The smbpasswd program has several different - functions, depending on whether it is run by the root - user or not. When run as a normal user it allows the user to change - the password used for their SMB sessions on any machines that store - SMB passwords. - - By default (when run with no arguments) it will attempt to - change the current user's SMB password on the local machine. This is - similar to the way the passwd(1) program works. - smbpasswd differs from how the passwd program works - however in that it is not setuid root but works in - a client-server mode and communicates with a locally running - smbd(8). As a consequence in order for this to - succeed the smbd daemon must be running on the local machine. On a - UNIX machine the encrypted SMB passwords are usually stored in - the smbpasswd(5) file. - - When run by an ordinary user with no options, smbpasswd - will prompt them for their old SMB password and then ask them - for their new password twice, to ensure that the new password - was typed correctly. No passwords will be echoed on the screen - whilst being typed. If you have a blank SMB password (specified by - the string "NO PASSWORD" in the smbpasswd file) then just press - the <Enter> key when asked for your old password. - - smbpasswd can also be used by a normal user to change their - SMB password on remote machines, such as Windows NT Primary Domain - Controllers. See the (-r) and -U options below. - - When run by root, smbpasswd allows new users to be added - and deleted in the smbpasswd file, as well as allows changes to - the attributes of the user in this file to be made. When run by root, - smbpasswd accesses the local smbpasswd file - directly, thus enabling changes to be made even if smbd is not - running. - - - - OPTIONS - - - -a - This option specifies that the username - following should be added to the local smbpasswd file, with the - new password typed (type <Enter> for the old password). This - option is ignored if the username following already exists in - the smbpasswd file and it is treated like a regular change - password command. Note that the default passdb backends require - the user to already exist in the system password file (usually - /etc/passwd), else the request to add the - user will fail. - - This option is only available when running smbpasswd - as root. - - - - - - -x - This option specifies that the username - following should be deleted from the local smbpasswd file. - - - This option is only available when running smbpasswd as - root. - - - - - - -d - This option specifies that the username following - should be disabled in the local smbpasswd - file. This is done by writing a 'D' flag - into the account control space in the smbpasswd file. Once this - is done all attempts to authenticate via SMB using this username - will fail. - - If the smbpasswd file is in the 'old' format (pre-Samba 2.0 - format) there is no space in the user's password entry to write - this information and the command will FAIL. See smbpasswd(5) - for details on the 'old' and new password file formats. - - - This option is only available when running smbpasswd as - root. - - - - - -e - This option specifies that the username following - should be enabled in the local smbpasswd file, - if the account was previously disabled. If the account was not - disabled this option has no effect. Once the account is enabled then - the user will be able to authenticate via SMB once again. - - If the smbpasswd file is in the 'old' format, then - smbpasswd will FAIL to enable the account. - See smbpasswd (5) for - details on the 'old' and new password file formats. - - This option is only available when running smbpasswd as root. - - - - - - - -D debuglevel - debuglevel is an integer - from 0 to 10. The default value if this parameter is not specified - is zero. - - The higher this value, the more detail will be logged to the - log files about the activities of smbpasswd. At level 0, only - critical errors and serious warnings will be logged. - - Levels above 1 will generate considerable amounts of log - data, and should only be used when investigating a problem. Levels - above 3 are designed for use only by developers and generate - HUGE amounts of log data, most of which is extremely cryptic. - - - - - - - -n - This option specifies that the username following - should have their password set to null (i.e. a blank password) in - the local smbpasswd file. This is done by writing the string "NO - PASSWORD" as the first part of the first password stored in the - smbpasswd file. - - Note that to allow users to logon to a Samba server once - the password has been set to "NO PASSWORD" in the smbpasswd - file the administrator must set the following parameter in the [global] - section of the smb.conf file : - - null passwords = yes - - This option is only available when running smbpasswd as - root. - - - - - - -r remote machine name - This option allows a user to specify what machine - they wish to change their password on. Without this parameter - smbpasswd defaults to the local host. The remote - machine name is the NetBIOS name of the SMB/CIFS - server to contact to attempt the password change. This name is - resolved into an IP address using the standard name resolution - mechanism in all programs of the Samba suite. See the -R - name resolve order parameter for details on changing - this resolving mechanism. - - The username whose password is changed is that of the - current UNIX logged on user. See the -U username - parameter for details on changing the password for a different - username. - - Note that if changing a Windows NT Domain password the - remote machine specified must be the Primary Domain Controller for - the domain (Backup Domain Controllers only have a read-only - copy of the user account database and will not allow the password - change). - - Note that Windows 95/98 do not have - a real password database so it is not possible to change passwords - specifying a Win95/98 machine as remote machine target. - - - - - - -R name resolve order - This option allows the user of smbpasswd to determine - what name resolution services to use when looking up the NetBIOS - name of the host being connected to. - - The options are :"lmhosts", "host", "wins" and "bcast". They - cause names to be resolved as follows : - - lmhosts : Lookup an IP - address in the Samba lmhosts file. If the line in lmhosts has - no name type attached to the NetBIOS name (see the lmhosts(5) for details) then - any name type matches for lookup. - - host : Do a standard host - name to IP address resolution, using the system /etc/hosts - , NIS, or DNS lookups. This method of name resolution - is operating system depended for instance on IRIX or Solaris this - may be controlled by the /etc/nsswitch.conf - file). Note that this method is only used if the NetBIOS name - type being queried is the 0x20 (server) name type, otherwise - it is ignored. - - wins : Query a name with - the IP address listed in the wins server - parameter. If no WINS server has been specified this method - will be ignored. - - bcast : Do a broadcast on - each of the known local interfaces listed in the - interfaces parameter. This is the least - reliable of the name resolution methods as it depends on the - target host being on a locally connected subnet. - - - The default order is lmhosts, host, wins, bcast - and without this parameter or any entry in the - smb.conf file the name resolution methods will - be attempted in this order. - - - - - -m - This option tells smbpasswd that the account - being changed is a MACHINE account. Currently this is used - when Samba is being used as an NT Primary Domain Controller. - - This option is only available when running smbpasswd as root. - - - - - - -U username - This option may only be used in conjunction - with the -r option. When changing - a password on a remote machine it allows the user to specify - the user name on that machine whose password will be changed. It - is present to allow users who have different user names on - different systems to change these passwords. - - - - - -h - This option prints the help string for - smbpasswd, selecting the correct one for running as root - or as an ordinary user. - - - - - - -s - This option causes smbpasswd to be silent (i.e. - not issue prompts) and to read its old and new passwords from - standard input, rather than from /dev/tty - (like the passwd(1) program does). This option - is to aid people writing scripts to drive smbpasswd - - - - - - -w password - This parameter is only available if Samba - has been configured to use the experimental - --with-ldapsam option. The -w - switch is used to specify the password to be used with the - ldap admin - dn. Note that the password is stored in - the private/secrets.tdb and is keyed off - of the admin's DN. This means that if the value of ldap - admin dn ever changes, the password will need to be - manually updated as well. - - - - - - -i - This option tells smbpasswd that the account - being changed is an interdomain trust account. Currently this is used - when Samba is being used as an NT Primary Domain Controller. - The account contains the info about another trusted domain. - - This option is only available when running smbpasswd as root. - - - - - -L - Run in local mode. - - - - username - This specifies the username for all of the - root only options to operate on. Only root - can specify this parameter as only root has the permission needed - to modify attributes directly in the local smbpasswd file. - - - - - - - - NOTES - - Since smbpasswd works in client-server - mode communicating with a local smbd for a non-root user then - the smbd daemon must be running for this to work. A common problem - is to add a restriction to the hosts that may access the - smbd running on the local machine by specifying a - allow hosts or deny hosts - entry in the smb.conf file and neglecting to - allow "localhost" access to the smbd. - - In addition, the smbpasswd command is only useful if Samba - has been set up to use encrypted passwords. See the file - ENCRYPTION.txt in the docs directory for details - on how to do this. - - - - - VERSION - - This man page is correct for version 3.0 of - the Samba suite. - - - - SEE ALSO - smbpasswd(5), - samba(7) - - - - - AUTHOR - - The original Samba software and related utilities - were created by Andrew Tridgell. Samba is now developed - by the Samba Team as an Open Source project similar - to the way the Linux kernel is developed. - - The original Samba man pages were written by Karl Auer. - The man page sources were converted to YODL format (another - excellent piece of Open Source software, available at - - ftp://ftp.icce.rug.nl/pub/unix/) and updated for the Samba 2.0 - release by Jeremy Allison. The conversion to DocBook for - Samba 2.2 was done by Gerald Carter - - - diff --git a/docs/docbook/manpages/smbsh.1.sgml b/docs/docbook/manpages/smbsh.1.sgml deleted file mode 100644 index c40609be4fd..00000000000 --- a/docs/docbook/manpages/smbsh.1.sgml +++ /dev/null @@ -1,235 +0,0 @@ - - - - - smbsh - 1 - - - - - smbsh - Allows access to Windows NT filesystem - using UNIX commands - - - - - smbsh - -W workgroup - -U username - -P prefix - -R <name resolve order> - -d <debug level> - -l logfile - -L libdir - - - - - DESCRIPTION - - This tool is part of the - Samba suite. - - smbsh allows you to access an NT filesystem - using UNIX commands such as ls, - egrep, and rcp. You must use a - shell that is dynamically linked in order for smbsh - to work correctly. - - - - OPTIONS - - - - -W WORKGROUP - Override the default workgroup specified in the - workgroup parameter of the smb.conf file - for this session. This may be needed to connect to some - servers. - - - - -U username[%pass] - Sets the SMB username or username and password. - If this option is not specified, the user will be prompted for - both the username and the password. If %pass is not specified, - the user will be prompted for the password. - - - - - -P prefixThis option allows - the user to set the directory prefix for SMB access. The - default value if this option is not specified is - smb. - - - - - -R <name resolve order> - This option is used to determine what naming - services and in what order to resolve - host names to IP addresses. The option takes a space-separated - string of different name resolution options. - - The options are :"lmhosts", "host", "wins" and "bcast". - They cause names to be resolved as follows : - - - lmhosts : - Lookup an IP address in the Samba lmhosts file. If the - line in lmhosts has no name type attached to the - NetBIOS name - (see the lmhosts(5) - for details) then any name type matches for lookup. - - - host : - Do a standard host name to IP address resolution, using - the system /etc/hosts, NIS, or DNS - lookups. This method of name resolution is operating - system dependent, for instance on IRIX or Solaris this - may be controlled by the /etc/nsswitch.conf - file). Note that this method is only used - if the NetBIOS name type being queried is the 0x20 - (server) name type, otherwise it is ignored. - - - wins : - Query a name with the IP address listed in the - wins server parameter. If no - WINS server has been specified this method will be - ignored. - - - bcast : - Do a broadcast on each of the known local interfaces - listed in the interfaces - parameter. This is the least reliable of the name - resolution methods as it depends on the target host - being on a locally connected subnet. - - - - If this parameter is not set then the name resolve order - defined in the smb.conf file parameter - (name resolve order) will be used. - - The default order is lmhosts, host, wins, bcast. Without - this parameter or any entry in the name resolve order - parameter of the smb.conf - file, the name resolution methods will be attempted in this - order. - - - - -d <debug level> - debug level is an integer from 0 to 10. - - The default value if this parameter is not specified - is zero. - - The higher this value, the more detail will be logged - about the activities of nmblookup. At level - 0, only critical errors and serious warnings will be logged. - - - - - -l logfilename - If specified causes all debug messages to be - written to the file specified by logfilename - . If not specified then all messages will be - written tostderr. - - - - - -L libdir - This parameter specifies the location of the - shared libraries used by smbsh. The default - value is specified at compile time. - - - - - - - - EXAMPLES - - To use the smbsh command, execute - smbsh from the prompt and enter the username and password - that authenticates you to the machine running the Windows NT - operating system. - - - system% smbsh - Username: user - Password: XXXXXXX - - - - Any dynamically linked command you execute from - this shell will access the /smb directory - using the smb protocol. For example, the command ls /smb - will show a list of workgroups. The command - ls /smb/MYGROUP will show all the machines in - the workgroup MYGROUP. The command - ls /smb/MYGROUP/<machine-name> will show the share - names for that machine. You could then, for example, use the - cd command to change directories, vi to - edit files, and rcp to copy files. - - - - VERSION - - This man page is correct for version 3.0 of - the Samba suite. - - - - BUGS - - smbsh works by intercepting the standard - libc calls with the dynamically loaded versions in - smbwrapper.o. Not all calls have been "wrapped", so - some programs may not function correctly under smbsh - . - - Programs which are not dynamically linked cannot make - use of smbsh's functionality. Most versions - of UNIX have a file command that will - describe how a program was linked. - - - - - SEE ALSO - smbd(8), - smb.conf(5) - - - - - AUTHOR - - The original Samba software and related utilities - were created by Andrew Tridgell. Samba is now developed - by the Samba Team as an Open Source project similar - to the way the Linux kernel is developed. - - The original Samba man pages were written by Karl Auer. - The man page sources were converted to YODL format (another - excellent piece of Open Source software, available at - - ftp://ftp.icce.rug.nl/pub/unix/) and updated for the Samba 2.0 - release by Jeremy Allison. The conversion to DocBook for - Samba 2.2 was done by Gerald Carter - - - diff --git a/docs/docbook/manpages/smbspool.8.sgml b/docs/docbook/manpages/smbspool.8.sgml deleted file mode 100644 index d164cb0864e..00000000000 --- a/docs/docbook/manpages/smbspool.8.sgml +++ /dev/null @@ -1,131 +0,0 @@ - - - - - smbspool - 8 - - - - - smbspool - send a print file to an SMB printer - - - - - smbspool - job - user - title - copies - options - filename - - - - - DESCRIPTION - - This tool is part of the - Samba suite. - - smbspool is a very small print spooling program that - sends a print file to an SMB printer. The command-line arguments - are position-dependent for compatibility with the Common UNIX - Printing System, but you can use smbspool with any printing system - or from a program or script. - - DEVICE URI - - smbspool specifies the destination using a Uniform Resource - Identifier ("URI") with a method of "smb". This string can take - a number of forms: - - - smb://server/printer - smb://workgroup/server/printer - smb://username:password@server/printer - - smb://username:password@workgroup/server/printer - - - - smbspool tries to get the URI from argv[0]. If argv[0] - contains the name of the program then it looks in the - DEVICE_URI environment variable. - - Programs using the exec(2) functions can - pass the URI in argv[0], while shell scripts must set the - DEVICE_URI environment variable prior to - running smbspool. - - - - OPTIONS - - - The job argument (argv[1]) contains the - job ID number and is presently not used by smbspool. - - - The user argument (argv[2]) contains the - print user's name and is presently not used by smbspool. - - - The title argument (argv[3]) contains the - job title string and is passed as the remote file name - when sending the print job. - - The copies argument (argv[4]) contains - the number of copies to be printed of the named file. If - no filename is provided then this argument is not used by - smbspool. - - The options argument (argv[5]) contains - the print options in a single string and is currently - not used by smbspool. - - The filename argument (argv[6]) contains the - name of the file to print. If this argument is not specified - then the print file is read from the standard input. - - - - - - - VERSION - - This man page is correct for version 2.2 of - the Samba suite. - - - - SEE ALSO - smbd(8), - and samba(7). - - - - - AUTHOR - - smbspool was written by Michael Sweet - at Easy Software Products. - - The original Samba software and related utilities - were created by Andrew Tridgell. Samba is now developed - by the Samba Team as an Open Source project similar - to the way the Linux kernel is developed. - - The original Samba man pages were written by Karl Auer. - The man page sources were converted to YODL format (another - excellent piece of Open Source software, available at - - ftp://ftp.icce.rug.nl/pub/unix/) and updated for the Samba 2.0 - release by Jeremy Allison. The conversion to DocBook for - Samba 2.2 was done by Gerald Carter - - - diff --git a/docs/docbook/manpages/smbstatus.1.sgml b/docs/docbook/manpages/smbstatus.1.sgml deleted file mode 100644 index 99963a4bec6..00000000000 --- a/docs/docbook/manpages/smbstatus.1.sgml +++ /dev/null @@ -1,152 +0,0 @@ - - - - - smbstatus - 1 - - - - - smbstatus - report on current Samba connections - - - - - smbstatus - -P - -b - -d <debug level> - -v - -L - -B - -p - -S - -s <configuration file> - -u <username> - - - - - DESCRIPTION - - This tool is part of the - Samba suite. - - smbstatus is a very simple program to - list the current Samba connections. - - - - OPTIONS - - - - -P|--profile - If samba has been compiled with the - profiling option, print only the contents of the profiling - shared memory area. - - - - -b|--brief - gives brief output. - - - - - -d|--debug=<debuglevel> - sets debugging to specified level - - - - - - -v|--verbose - gives verbose output. - - - - - -L|--locks - causes smbstatus to only list locks. - - - - - - -B|--byterange - causes smbstatus to include byte range locks. - - - - - - -p|--processes - print a list of - smbd(8) processes and exit. - Useful for scripting. - - - - - -S|--shares - causes smbstatus to only list shares. - - - - - - - -s|--conf=<configuration file> - The default configuration file name is - determined at compile time. The file specified contains the - configuration details required by the server. See smb.conf(5) - for more information. - - - - - - -u|--user=<username> - selects information relevant to - username only. - - - - - - - - VERSION - - This man page is correct for version 3.0 of - the Samba suite. - - - - SEE ALSO - smbd(8) and - smb.conf(5). - - - - AUTHOR - - The original Samba software and related utilities - were created by Andrew Tridgell. Samba is now developed - by the Samba Team as an Open Source project similar - to the way the Linux kernel is developed. - - The original Samba man pages were written by Karl Auer. - The man page sources were converted to YODL format (another - excellent piece of Open Source software, available at - - ftp://ftp.icce.rug.nl/pub/unix/) and updated for the Samba 2.0 - release by Jeremy Allison. The conversion to DocBook for - Samba 2.2 was done by Gerald Carter - - - diff --git a/docs/docbook/manpages/smbtar.1.sgml b/docs/docbook/manpages/smbtar.1.sgml deleted file mode 100644 index bd70493b6bf..00000000000 --- a/docs/docbook/manpages/smbtar.1.sgml +++ /dev/null @@ -1,226 +0,0 @@ - - - - - smbtar - 1 - - - - - smbtar - shell script for backing up SMB/CIFS shares - directly to UNIX tape drives - - - - - smbtar - -s server - -p password - -x services - -X - -d directory - -u user - -t tape - -t tape - -b blocksize - -N filename - -i - -r - -l loglevel - -v - filenames - - - - - DESCRIPTION - - This tool is part of the - Samba suite. - - smbtar is a very small shell script on top - of smbclient(1) - which dumps SMB shares directly to tape. - - - - OPTIONS - - - - -s server - The SMB/CIFS server that the share resides - upon. - - - - - -x service - The share name on the server to connect to. - The default is "backup". - - - - - -X - Exclude mode. Exclude filenames... from tar - create or restore. - - - - - - -d directory - Change to initial directory - before restoring / backing up files. - - - - - - -v - Verbose mode. - - - - - - -p password - The password to use to access a share. - Default: none - - - - - -u user - The user id to connect as. Default: - UNIX login name. - - - - - - -t tape - Tape device. May be regular file or tape - device. Default: $TAPE environmental - variable; if not set, a file called tar.out - . - - - - - -b blocksize - Blocking factor. Defaults to 20. See - tar(1) for a fuller explanation. - - - - - -N filename - Backup only files newer than filename. Could - be used (for example) on a log file to implement incremental - backups. - - - - - -i - Incremental mode; tar files are only backed - up if they have the archive bit set. The archive bit is reset - after each file is read. - - - - - -r - Restore. Files are restored to the share - from the tar file. - - - - - - -l log level - Log (debug) level. Corresponds to the - -d flag of smbclient(1) - . - - - - - - - ENVIRONMENT VARIABLES - - The $TAPE variable specifies the - default tape device to write to. May be overridden - with the -t option. - - - - - BUGS - - The smbtar script has different - options from ordinary tar and from smbclient's tar command. - - - - - CAVEATS - - Sites that are more careful about security may not like - the way the script handles PC passwords. Backup and restore work - on entire shares; should work on file lists. smbtar works best - with GNU tar and may not work well with other versions. - - - - - DIAGNOSTICS - - See the DIAGNOSTICS section for the - smbclient(1) - command. - - - - - VERSION - - This man page is correct for version 3.0 of - the Samba suite. - - - - SEE ALSO - smbd(8), - smbclient(1), - smb.conf(5), - - - - - AUTHOR - - The original Samba software and related utilities - were created by Andrew Tridgell. Samba is now developed - by the Samba Team as an Open Source project similar - to the way the Linux kernel is developed. - - Ricky Poulten - wrote the tar extension and this man page. The smbtar - script was heavily rewritten and improved by Martin Kraemer. Many - thanks to everyone who suggested extensions, improvements, bug - fixes, etc. The man page sources were converted to YODL format (another - excellent piece of Open Source software, available at - - ftp://ftp.icce.rug.nl/pub/unix/) and updated for the Samba 2.0 - release by Jeremy Allison. The conversion to DocBook for - Samba 2.2 was done by Gerald Carter. - - - diff --git a/docs/docbook/manpages/smbumount.8.sgml b/docs/docbook/manpages/smbumount.8.sgml deleted file mode 100644 index d6a1b65b578..00000000000 --- a/docs/docbook/manpages/smbumount.8.sgml +++ /dev/null @@ -1,73 +0,0 @@ - - - - - smbumount - 8 - - - - - smbumount - smbfs umount for normal users - - - - - smbumount - mount-point - - - - - DESCRIPTION - - With this program, normal users can unmount smb-filesystems, - provided that it is suid root. smbumount has - been written to give normal Linux users more control over their - resources. It is safe to install this program suid root, because only - the user who has mounted a filesystem is allowed to unmount it again. - For root it is not necessary to use smbumount. The normal umount - program works perfectly well, but it would certainly be problematic - to make umount setuid root. - - - - OPTIONS - - - - mount-point - The directory to unmount. - - - - - - - SEE ALSO - - smbmount(8) - - - - - - AUTHOR - - Volker Lendecke, Andrew Tridgell, Michael H. Warfield - and others. - - The current maintainer of smbfs and the userspace - tools smbmount, smbumount, - and smbmnt is Urban Widmark. - The SAMBA Mailing list - is the preferred place to ask questions regarding these programs. - - - The conversion of this manpage for Samba 2.2 was performed - by Gerald Carter - - - diff --git a/docs/docbook/manpages/swat.8.sgml b/docs/docbook/manpages/swat.8.sgml deleted file mode 100644 index c0052f3d53d..00000000000 --- a/docs/docbook/manpages/swat.8.sgml +++ /dev/null @@ -1,209 +0,0 @@ - - - - - swat - 8 - - - - - swat - Samba Web Administration Tool - - - - - swat - -s <smb config file> - -a - - - - - DESCRIPTION - - This tool is part of the - Samba suite. - - - swat allows a Samba administrator to - configure the complex - smb.conf(5) file via a Web browser. In addition, - a swat configuration page has help links - to all the configurable options in the smb.conf file allowing an - administrator to easily look up the effects of any change. - - swat is run from inetd - - - - - OPTIONS - - - - -s smb configuration file - The default configuration file path is - determined at compile time. The file specified contains - the configuration details required by the smbd - server. This is the file that swat will modify. - The information in this file includes server-specific - information such as what printcap file to use, as well as - descriptions of all the services that the server is to provide. - See smb.conf for more information. - - - - - - -a - This option disables authentication and puts - swat in demo mode. In that mode anyone will be able to modify - the smb.conf file. - - WARNING: Do NOT enable this option on a production - server. - - - - - - - - INSTALLATION - - After you compile SWAT you need to run make install - to install the swat binary - and the various help files and images. A default install would put - these in: - - - /usr/local/samba/bin/swat - /usr/local/samba/swat/images/* - /usr/local/samba/swat/help/* - - - - Inetd Installation - - You need to edit your /etc/inetd.conf - and /etc/services - to enable SWAT to be launched via inetd. - - In /etc/services you need to - add a line like this: - - swat 901/tcp - - Note for NIS/YP users - you may need to rebuild the - NIS service maps rather than alter your local - /etc/services file. - - the choice of port number isn't really important - except that it should be less than 1024 and not currently - used (using a number above 1024 presents an obscure security - hole depending on the implementation details of your - inetd daemon). - - In /etc/inetd.conf you should - add a line like this: - - swat stream tcp nowait.400 root - /usr/local/samba/bin/swat swat - - One you have edited /etc/services - and /etc/inetd.conf you need to send a - HUP signal to inetd. To do this use kill -1 PID - where PID is the process ID of the inetd daemon. - - - - - - Launching - - To launch SWAT just run your favorite web browser and - point it at "http://localhost:901/". - - Note that you can attach to SWAT from any IP connected - machine but connecting from a remote machine leaves your - connection open to password sniffing as passwords will be sent - in the clear over the wire. - - - - - FILES - - - - /etc/inetd.conf - This file must contain suitable startup - information for the meta-daemon. - - - - /etc/services - This file must contain a mapping of service name - (e.g., swat) to service port (e.g., 901) and protocol type - (e.g., tcp). - - - - /usr/local/samba/lib/smb.conf - This is the default location of the smb.conf(5) - server configuration file that swat edits. Other - common places that systems install this file are - /usr/samba/lib/smb.conf and /etc/smb.conf - . This file describes all the services the server - is to make available to clients. - - - - - - - WARNINGS - - swat will rewrite your smb.conf - file. It will rearrange the entries and delete all - comments, include= and copy= - options. If you have a carefully crafted - smb.conf then back it up or don't use swat! - - - - - VERSION - - This man page is correct for version 2.2 of - the Samba suite. - - - - SEE ALSO - inetd(5), - smbd(8), - smb.conf(5) - - - - - AUTHOR - - The original Samba software and related utilities - were created by Andrew Tridgell. Samba is now developed - by the Samba Team as an Open Source project similar - to the way the Linux kernel is developed. - - The original Samba man pages were written by Karl Auer. - The man page sources were converted to YODL format (another - excellent piece of Open Source software, available at - - ftp://ftp.icce.rug.nl/pub/unix/) and updated for the Samba 2.0 - release by Jeremy Allison. The conversion to DocBook for - Samba 2.2 was done by Gerald Carter - - - diff --git a/docs/docbook/manpages/tdbbackup.8.sgml b/docs/docbook/manpages/tdbbackup.8.sgml deleted file mode 100644 index 9b885e0af78..00000000000 --- a/docs/docbook/manpages/tdbbackup.8.sgml +++ /dev/null @@ -1,133 +0,0 @@ - %globalentities; -]> - - - - tdbbackup - 8 - - - - - tdbbackup - tool for backing up and for validating the integrity of samba .tdb files - - - - - tdbbackup - -s suffix - -v - -h - - - - - DESCRIPTION - - This tool is part of the Samba - 1 suite. - - tdbbackup is a tool that may be used to backup samba .tdb - files. This tool may also be used to verify the integrity of the .tdb files prior - to samba startup, in which case, if it find file damage and it finds a prior backup - it will restore the backup file. - - - - - - OPTIONS - - - - - -h - - Get help information. - - - - - -s suffix - - The -s option allows the adminisistrator to specify a file - backup extension. This way it is possible to keep a history of tdb backup - files by using a new suffix for each backup. - - - - - -v - - The -v will check the database for damages (currupt data) - which if detected causes the backup to be restored. - - - - - - - - - COMMANDS - - GENERAL INFORMATION - - - The tdbbackup utility should be run as soon as samba has shut down. - Do NOT run this command on a live database. Typical usage for the command will be: - - - tdbbackup [-s suffix] *.tdb - - - Before restarting samba the following command may be run to validate .tdb files: - - - tdbbackup -v [-s suffix] *.tdb - - - Samba .tdb files are stored in various locations, be sure to run backup all - .tdb file on the system. Imporatant files includes: - - - - - secrets.tdb - usual location is in the /usr/local/samba/private - directory, or on some systems in /etc/samba. - - - - passdb.tdb - usual location is in the /usr/local/samba/private - directory, or on some systems in /etc/samba. - - - - *.tdb located in the /usr/local/samba/var directory or on some - systems in the /var/cache or /var/lib/samba directories. - - - - - - - VERSION - - This man page is correct for version 3.0 of the Samba suite. - - - - AUTHOR - - - The original Samba software and related utilities were created by Andrew Tridgell. - Samba is now developed by the Samba Team as an Open Source project similar to the way - the Linux kernel is developed. - - - The tdbbackup man page was written by John H Terpstra. - - - diff --git a/docs/docbook/manpages/testparm.1.sgml b/docs/docbook/manpages/testparm.1.sgml deleted file mode 100644 index f34528a43d2..00000000000 --- a/docs/docbook/manpages/testparm.1.sgml +++ /dev/null @@ -1,183 +0,0 @@ - - - - - testparm - 1 - - - - - testparm - check an smb.conf configuration file for - internal correctness - - - - - testparm - -s - -h - -v - -L <servername> - -t <encoding> - config filename - hostname hostIP - - - - - DESCRIPTION - - This tool is part of the - Samba suite. - - testparm is a very simple test program - to check an smbd configuration file for - internal correctness. If this program reports no problems, you - can use the configuration file with confidence that smbd - will successfully load the configuration file. - - - Note that this is NOT a guarantee that - the services specified in the configuration file will be - available or will operate as expected. - - If the optional host name and host IP address are - specified on the command line, this test program will run through - the service entries reporting whether the specified host - has access to each service. - - If testparm finds an error in the - smb.conf file it returns an exit code of 1 to the calling - program, else it returns an exit code of 0. This allows shell scripts - to test the output from testparm. - - - - OPTIONS - - - - -s - Without this option, testparm - will prompt for a carriage return after printing the service - names and before dumping the service definitions. - - - - - -h - Print usage message - - - - - -L servername - Sets the value of the %L macro to servername. - This is useful for testing include files specified with the - %L macro. - - - - -v - If this option is specified, testparm - will also output all options that were not used in - smb.conf and are thus set to - their defaults. - - - - -t encoding - - Output data in specified encoding. - - - - - configfilename - This is the name of the configuration file - to check. If this parameter is not present then the - default smb.conf file will be checked. - - - - - - hostname - If this parameter and the following are - specified, then testparm will examine the hosts - allow and hosts deny - parameters in the smb.conf file to - determine if the hostname with this IP address would be - allowed access to the smbd server. If - this parameter is supplied, the hostIP parameter must also - be supplied. - - - - - hostIP - This is the IP address of the host specified - in the previous parameter. This address must be supplied - if the hostname parameter is supplied. - - - - - - FILES - - - - smb.conf - This is usually the name of the configuration - file used by smbd. - - - - - - - DIAGNOSTICS - - The program will issue a message saying whether the - configuration file loaded OK or not. This message may be preceded by - errors and warnings if the file did not load. If the file was - loaded OK, the program then dumps all known service details - to stdout. - - - - - VERSION - - This man page is correct for version 3.0 of - the Samba suite. - - - - SEE ALSO - smb.conf(5), - smbd(8) - - - - - AUTHOR - - The original Samba software and related utilities - were created by Andrew Tridgell. Samba is now developed - by the Samba Team as an Open Source project similar - to the way the Linux kernel is developed. - - The original Samba man pages were written by Karl Auer. - The man page sources were converted to YODL format (another - excellent piece of Open Source software, available at - - ftp://ftp.icce.rug.nl/pub/unix/) and updated for the Samba 2.0 - release by Jeremy Allison. The conversion to DocBook for - Samba 2.2 was done by Gerald Carter - - - diff --git a/docs/docbook/manpages/testprns.1.sgml b/docs/docbook/manpages/testprns.1.sgml deleted file mode 100644 index cd99494a9af..00000000000 --- a/docs/docbook/manpages/testprns.1.sgml +++ /dev/null @@ -1,143 +0,0 @@ - - - - - testprns - 1 - - - - - testprns - check printer name for validity with smbd - - - - - testprns - printername - printcapname - - - - - DESCRIPTION - - This tool is part of the - Samba suite. - - testprns is a very simple test program - to determine whether a given printer name is valid for use in - a service to be provided by - smbd(8). - - "Valid" in this context means "can be found in the - printcap specified". This program is very stupid - so stupid in - fact that it would be wisest to always specify the printcap file - to use. - - - - - - OPTIONS - - - - printername - The printer name to validate. - - Printer names are taken from the first field in each - record in the printcap file, single printer names and sets - of aliases separated by vertical bars ("|") are recognized. - Note that no validation or checking of the printcap syntax is - done beyond that required to extract the printer name. It may - be that the print spooling system is more forgiving or less - forgiving than testprns. However, if - testprns finds the printer then - smbd should do so as well. - - - - printcapname - This is the name of the printcap file within - which to search for the given printer name. - - If no printcap name is specified testprns - will attempt to scan the printcap file name - specified at compile time. - - - - - - - FILES - - - - /etc/printcap - This is usually the default printcap - file to scan. See printcap (5). - - - - - - - - DIAGNOSTICS - - If a printer is found to be valid, the message - "Printer name <printername> is valid" will be - displayed. - - If a printer is found to be invalid, the message - "Printer name <printername> is not valid" will be - displayed. - - All messages that would normally be logged during - operation of the Samba daemons are logged by this program to the - file test.log in the current directory. The - program runs at debuglevel 3, so quite extensive logging - information is written. The log should be checked carefully - for errors and warnings. - - Other messages are self-explanatory. - - - - - VERSION - - This man page is correct for version 2.2 of - the Samba suite. - - - - SEE ALSO - printcap(5), - smbd(8), - smbclient(1) - - - - - AUTHOR - - The original Samba software and related utilities - were created by Andrew Tridgell. Samba is now developed - by the Samba Team as an Open Source project similar - to the way the Linux kernel is developed. - - The original Samba man pages were written by Karl Auer. - The man page sources were converted to YODL format (another - excellent piece of Open Source software, available at - - ftp://ftp.icce.rug.nl/pub/unix/) and updated for the Samba 2.0 - release by Jeremy Allison. The conversion to DocBook for - Samba 2.2 was done by Gerald Carter - - - - diff --git a/docs/docbook/manpages/vfstest.1.sgml b/docs/docbook/manpages/vfstest.1.sgml deleted file mode 100644 index d6c7e5f142c..00000000000 --- a/docs/docbook/manpages/vfstest.1.sgml +++ /dev/null @@ -1,150 +0,0 @@ - %globalentities; -]> - - - - - vfstest - 1 - - - - - vfstest - tool for testing samba VFS modules - - - - - vfstest - -d debuglevel - -c command - -l logfile - -h - - - - - DESCRIPTION - - This tool is part of the - Samba suite. - - vfstest is a small command line - utility that has the ability to test dso samba VFS modules. It gives the - user the ability to call the various VFS functions manually and - supports cascaded VFS modules. - - - - - - OPTIONS - - - - - -c|--command=command - Execute the specified (colon-separated) commands. - See below for the commands that are available. - - - - &stdarg.debuglevel; - &stdarg.help; - - - -l|--logfile=logbasename - File name for log/debug files. The extension - '.client' will be appended. The log file is never removed - by the client. - - - - - - - - - COMMANDS - - VFS COMMANDS - - load <module.so> - Load specified VFS module - - populate <char> <size> - Populate a data buffer with the specified data - - - showdata [<offset> <len>] - Show data currently in data buffer - - - connect - VFS connect() - disconnect - VFS disconnect() - disk_free - VFS disk_free() - opendir - VFS opendir() - readdir - VFS readdir() - mkdir - VFS mkdir() - rmdir - VFS rmdir() - closedir - VFS closedir() - open - VFS open() - close - VFS close() - read - VFS read() - write - VFS write() - lseek - VFS lseek() - rename - VFS rename() - fsync - VFS fsync() - stat - VFS stat() - fstat - VFS fstat() - lstat - VFS lstat() - unlink - VFS unlink() - chmod - VFS chmod() - fchmod - VFS fchmod() - chown - VFS chown() - fchown - VFS fchown() - chdir - VFS chdir() - getwd - VFS getwd() - utime - VFS utime() - ftruncate - VFS ftruncate() - lock - VFS lock() - symlink - VFS symlink() - readlink - VFS readlink() - link - VFS link() - mknod - VFS mknod() - realpath - VFS realpath() - - - GENERAL COMMANDS - - conf <smb.conf> - Load a different configuration file - - help [<command>] - Get list of commands or info about specified command - - debuglevel <level> - Set debug level - - freemem - Free memory currently in use - - exit - Exit vfstest - - - - - - VERSION - - This man page is correct for version 3.0 of the Samba - suite. - - - - AUTHOR - - The original Samba software and related utilities - were created by Andrew Tridgell. Samba is now developed - by the Samba Team as an Open Source project similar - to the way the Linux kernel is developed. - - The vfstest man page was written by Jelmer Vernooij. - - - diff --git a/docs/docbook/manpages/wbinfo.1.sgml b/docs/docbook/manpages/wbinfo.1.sgml deleted file mode 100644 index a6ca2442437..00000000000 --- a/docs/docbook/manpages/wbinfo.1.sgml +++ /dev/null @@ -1,238 +0,0 @@ - - - - - wbinfo - 1 - - - - - wbinfo - Query information from winbind daemon - - - - - wbinfo - -u - -g - -i ip - -N netbios-name - -n name - -s sid - -U uid - -G gid - -S sid - -Y sid - -t - -m - -r user - -a user%password - -A user%password - -p - - - - - DESCRIPTION - - This tool is part of the - Samba suite. - - The wbinfo program queries and returns information - created and used by the - winbindd(8) daemon. - - The winbindd(8) daemon must be configured - and running for the wbinfo program to be able - to return information. - - - - OPTIONS - - - - -u - This option will list all users available - in the Windows NT domain for which the winbindd(8) - daemon is operating in. Users in all trusted domains - will also be listed. Note that this operation does not assign - user ids to any users that have not already been seen by - winbindd(8). - - - - -g - This option will list all groups available - in the Windows NT domain for which the winbindd(8) - daemon is operating in. Groups in all trusted domains - will also be listed. Note that this operation does not assign - group ids to any groups that have not already been seen by - winbindd(8). - - - - -N name - The -N option - queries winbindd(8) to query the WINS - server for the IP address associated with the NetBIOS name - specified by the name parameter. - - - - - - -I ip - The -I option - queries winbindd(8) to send a node status - request to get the NetBIOS name associated with the IP address - specified by the ip parameter. - - - - - - -n name - The -n option - queries winbindd(8) for the SID - associated with the name specified. Domain names can be specified - before the user name by using the winbind separator character. - For example CWDOM1/Administrator refers to the Administrator - user in the domain CWDOM1. If no domain is specified then the - domain used is the one specified in the smb.conf - workgroup parameter. - - - - - -s sid - Use -s to resolve - a SID to a name. This is the inverse of the -n - option above. SIDs must be specified as ASCII strings - in the traditional Microsoft format. For example, - S-1-5-21-1455342024-3071081365-2475485837-500. - - - - - -U uid - Try to convert a UNIX user id to a Windows NT - SID. If the uid specified does not refer to one within - the winbind uid range then the operation will fail. - - - - - -G gid - Try to convert a UNIX group id to a Windows - NT SID. If the gid specified does not refer to one within - the winbind gid range then the operation will fail. - - - - - -S sid - Convert a SID to a UNIX user id. If the SID - does not correspond to a UNIX user mapped by - winbindd(8) then the operation will fail. - - - - - -Y sid - Convert a SID to a UNIX group id. If the SID - does not correspond to a UNIX group mapped by - winbindd(8) then the operation will fail. - - - - - - -t - Verify that the workstation trust account - created when the Samba server is added to the Windows NT - domain is working. - - - - - -m - Produce a list of domains trusted by the - Windows NT server winbindd(8) contacts - when resolving names. This list does not include the Windows - NT domain the server is a Primary Domain Controller for. - - - - - - -r username - Try to obtain the list of UNIX group ids - to which the user belongs. This only works for users - defined on a Domain Controller. - - - - - - -a username%password - Attempt to authenticate a user via winbindd. - This checks both authenticaion methods and reports its results. - - - - - - -A username%password - Store username and password used by winbindd - during session setup to a domain controller. This enables - winbindd to operate in a Windows 2000 domain with Restrict - Anonymous turned on (a.k.a. Permissions compatiable with - Windows 2000 servers only). - - - - - - - - EXIT STATUS - - The wbinfo program returns 0 if the operation - succeeded, or 1 if the operation failed. If the winbindd(8) - daemon is not working wbinfo will always return - failure. - - - - - VERSION - - This man page is correct for version 3.0 of - the Samba suite. - - - - SEE ALSO - winbindd(8) - - - - - AUTHOR - - The original Samba software and related utilities - were created by Andrew Tridgell. Samba is now developed - by the Samba Team as an Open Source project similar - to the way the Linux kernel is developed. - - wbinfo and winbindd - were written by Tim Potter. - - The conversion to DocBook for Samba 2.2 was done - by Gerald Carter - - - diff --git a/docs/docbook/manpages/winbindd.8.sgml b/docs/docbook/manpages/winbindd.8.sgml deleted file mode 100644 index ccef2fa6231..00000000000 --- a/docs/docbook/manpages/winbindd.8.sgml +++ /dev/null @@ -1,455 +0,0 @@ - - - - - winbindd - 8 - - - - - winbindd - Name Service Switch daemon for resolving names - from NT servers - - - - - winbindd - -F - -S - -i - -B - -d <debug level> - -s <smb config file> - -n - - - - - DESCRIPTION - - This program is part of the - Samba suite. - - winbindd is a daemon that provides - a service for the Name Service Switch capability that is present - in most modern C libraries. The Name Service Switch allows user - and system information to be obtained from different databases - services such as NIS or DNS. The exact behaviour can be configured - throught the /etc/nsswitch.conf file. - Users and groups are allocated as they are resolved to a range - of user and group ids specified by the administrator of the - Samba system. - - The service provided by winbindd is called `winbind' and - can be used to resolve user and group information from a - Windows NT server. The service can also provide authentication - services via an associated PAM module. - - - The pam_winbind module in the 2.2.2 release only - supports the auth and account - module-types. The latter simply - performs a getpwnam() to verify that the system can obtain a uid for the - user. If the libnss_winbind library has been correctly - installed, this should always succeed. - - - The following nsswitch databases are implemented by - the winbindd service: - - - - hosts - User information traditionally stored in - the hosts(5) file and used by - gethostbyname(3) functions. Names are - resolved through the WINS server or by broadcast. - - - - - passwd - User information traditionally stored in - the passwd(5) file and used by - getpwent(3) functions. - - - - group - Group information traditionally stored in - the group(5) file and used by - getgrent(3) functions. - - - - For example, the following simple configuration in the - /etc/nsswitch.conf file can be used to initially - resolve user and group information from /etc/passwd - and /etc/group and then from the - Windows NT server. - - -passwd: files winbind -group: files winbind - - - The following simple configuration in the - /etc/nsswitch.conf file can be used to initially - resolve hostnames from /etc/hosts and then from the - WINS server. - - - - - - OPTIONS - - - - -F - If specified, this parameter causes - the main winbindd process to not daemonize, - i.e. double-fork and disassociate with the terminal. - Child processes are still created as normal to service - each connection request, but the main process does not - exit. This operation mode is suitable for running - winbindd under process supervisors such - as supervise and svscan - from Daniel J. Bernstein's daemontools - package, or the AIX process monitor. - - - - - -S - If specified, this parameter causes - winbindd to log to standard output rather - than a file. - - - - -d debuglevel - Sets the debuglevel to an integer between - 0 and 100. 0 is for no debugging and 100 is for reams and - reams. To submit a bug report to the Samba Team, use debug - level 100 (see BUGS.txt). - - - - -i - Tells winbindd to not - become a daemon and detach from the current terminal. This - option is used by developers when interactive debugging - of winbindd is required. - winbindd also logs to standard output, - as if the -S parameter had been given. - - - - - -n - Disable caching. This means winbindd will - always have to wait for a response from the domain controller - before it can respond to a client and this thus makes things - slower. The results will however be more accurate, since - results from the cache might not be up-to-date. This - might also temporarily hang winbindd if the DC doesn't respond. - - - - - -B - Dual daemon mode. This means winbindd will run - as 2 threads. The first will answer all requests from the cache, - thus making responses to clients faster. The other will - update the cache for the query that the first has just responded. - Advantage of this is that responses are accurate and fast. - - - - - -s|--conf=smb.conf - Specifies the location of the all-important - smb.conf file. - - - - - - - NAME AND ID RESOLUTION - - Users and groups on a Windows NT server are assigned - a relative id (rid) which is unique for the domain when the - user or group is created. To convert the Windows NT user or group - into a unix user or group, a mapping between rids and unix user - and group ids is required. This is one of the jobs that - winbindd performs. - - As winbindd users and groups are resolved from a server, user - and group ids are allocated from a specified range. This - is done on a first come, first served basis, although all existing - users and groups will be mapped as soon as a client performs a user - or group enumeration command. The allocated unix ids are stored - in a database file under the Samba lock directory and will be - remembered. - - WARNING: The rid to unix id database is the only location - where the user and group mappings are stored by winbindd. If this - file is deleted or corrupted, there is no way for winbindd to - determine which user and group ids correspond to Windows NT user - and group rids. - - - - - CONFIGURATION - - Configuration of the winbindd daemon - is done through configuration parameters in the smb.conf(5) - file. All parameters should be specified in the - [global] section of smb.conf. - - - - winbind separator - - winbind uid - - winbind gid - - winbind cache time - - winbind enum users - - winbind enum groups - - template homedir - - template shell - - winbind use default domain - - - - - - EXAMPLE SETUP - - To setup winbindd for user and group lookups plus - authentication from a domain controller use something like the - following setup. This was tested on a RedHat 6.2 Linux box. - - In /etc/nsswitch.conf put the - following: - - -passwd: files winbind -group: files winbind - - - In /etc/pam.d/* replace the - auth lines with something like this: - - - -auth required /lib/security/pam_securetty.so -auth required /lib/security/pam_nologin.so -auth sufficient /lib/security/pam_winbind.so -auth required /lib/security/pam_pwdb.so use_first_pass shadow nullok - - - - Note in particular the use of the sufficient - keyword and the use_first_pass keyword. - - Now replace the account lines with this: - - account required /lib/security/pam_winbind.so - - - The next step is to join the domain. To do that use the - smbpasswd program like this: - - smbpasswd -j DOMAIN -r PDC -U - Administrator - - The username after the -U can be any - Domain user that has administrator privileges on the machine. - Substitute your domain name for "DOMAIN" and the name of your PDC - for "PDC". - - Next copy libnss_winbind.so to - /lib and pam_winbind.so - to /lib/security. A symbolic link needs to be - made from /lib/libnss_winbind.so to - /lib/libnss_winbind.so.2. If you are using an - older version of glibc then the target of the link should be - /lib/libnss_winbind.so.1. - - Finally, setup a smb.conf containing directives like the - following: - - -[global] - winbind separator = + - winbind cache time = 10 - template shell = /bin/bash - template homedir = /home/%D/%U - winbind uid = 10000-20000 - winbind gid = 10000-20000 - workgroup = DOMAIN - security = domain - password server = * - - - - Now start winbindd and you should find that your user and - group database is expanded to include your NT users and groups, - and that you can login to your unix box as a domain user, using - the DOMAIN+user syntax for the username. You may wish to use the - commands getent passwd and getent group - to confirm the correct operation of winbindd. - - - - - NOTES - - The following notes are useful when configuring and - running winbindd: - - nmbd must be running on the local machine - for winbindd to work. winbindd - queries the list of trusted domains for the Windows NT server - on startup and when a SIGHUP is received. Thus, for a running - winbindd to become aware of new trust relationships between - servers, it must be sent a SIGHUP signal. - - Client processes resolving names through the winbindd - nsswitch module read an environment variable named - $WINBINDD_DOMAIN. If this variable contains a comma separated - list of Windows NT domain names, then winbindd will only resolve users - and groups within those Windows NT domains. - - PAM is really easy to misconfigure. Make sure you know what - you are doing when modifying PAM configuration files. It is possible - to set up PAM such that you can no longer log into your system. - - If more than one UNIX machine is running winbindd, - then in general the user and groups ids allocated by winbindd will not - be the same. The user and group ids will only be valid for the local - machine. - - If the the Windows NT RID to UNIX user and group id mapping - file is damaged or destroyed then the mappings will be lost. - - - - - SIGNALS - - The following signals can be used to manipulate the - winbindd daemon. - - - - SIGHUP - Reload the smb.conf(5) - file and apply any parameter changes to the running - version of winbindd. This signal also clears any cached - user and group information. The list of other domains trusted - by winbindd is also reloaded. - - - - SIGUSR1 - The SIGUSR1 signal will cause - winbindd to write status information to the winbind - log file including information about the number of user and - group ids allocated by winbindd. - - Log files are stored in the filename specified by the - log file parameter. - - - - - - FILES - - - - /etc/nsswitch.conf(5) - Name service switch configuration file. - - - - - /tmp/.winbindd/pipe - The UNIX pipe over which clients communicate with - the winbindd program. For security reasons, the - winbind client will only attempt to connect to the winbindd daemon - if both the /tmp/.winbindd directory - and /tmp/.winbindd/pipe file are owned by - root. - - - - /lib/libnss_winbind.so.X - Implementation of name service switch library. - - - - - $LOCKDIR/winbindd_idmap.tdb - Storage for the Windows NT rid to UNIX user/group - id mapping. The lock directory is specified when Samba is initially - compiled using the --with-lockdir option. - This directory is by default /usr/local/samba/var/locks - . - - - - $LOCKDIR/winbindd_cache.tdb - Storage for cached user and group information. - - - - - - - - VERSION - - This man page is correct for version 3.0 of - the Samba suite. - - - - SEE ALSO - - nsswitch.conf(5), - samba(7), - wbinfo(1), - smb.conf(5) - - - - AUTHOR - - The original Samba software and related utilities - were created by Andrew Tridgell. Samba is now developed - by the Samba Team as an Open Source project similar - to the way the Linux kernel is developed. - - wbinfo and winbindd - were written by Tim Potter. - - The conversion to DocBook for Samba 2.2 was done - by Gerald Carter - - - -- 2.34.1