mirror of
https://github.com/samba-team/samba.git
synced 2025-01-27 14:04:05 +03:00
This commit was manufactured by cvs2svn to create branch 'SAMBA_3_0'.
This commit is contained in:
commit
35510176fd
49
docs/docbook/smbdotconf/filename/vetofiles.xml
Normal file
49
docs/docbook/smbdotconf/filename/vetofiles.xml
Normal file
@ -0,0 +1,49 @@
|
||||
<samba:parameter name="veto files"
|
||||
context="S"
|
||||
xmlns:samba="http://samba.org/common">
|
||||
<listitem>
|
||||
<para>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.</para>
|
||||
|
||||
<para>Each entry must be a unix path, not a DOS path and
|
||||
must <emphasis>not</emphasis> include the unix directory
|
||||
separator '/'.</para>
|
||||
|
||||
<para>Note that the <parameter moreinfo="none">case sensitive</parameter> option
|
||||
is applicable in vetoing files.</para>
|
||||
|
||||
<para>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 <emphasis>fail</emphasis> unless you also set
|
||||
the <parameter moreinfo="none">delete veto files</parameter> parameter to
|
||||
<parameter moreinfo="none">yes</parameter>.</para>
|
||||
|
||||
<para>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.</para>
|
||||
|
||||
<para>See also <link linkend="HIDEFILES"><parameter moreinfo="none">hide files
|
||||
</parameter></link> and <link linkend="CASESENSITIVE"><parameter moreinfo="none">
|
||||
case sensitive</parameter></link>.</para>
|
||||
|
||||
<para>Default: <emphasis>No files or directories are vetoed.
|
||||
</emphasis></para>
|
||||
|
||||
<para>Examples:
|
||||
<programlisting format="linespecific">
|
||||
; 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/
|
||||
</programlisting></para>
|
||||
</listitem>
|
||||
</samba:parameter>
|
55
docs/docbook/smbdotconf/generate-context.xsl
Normal file
55
docs/docbook/smbdotconf/generate-context.xsl
Normal file
@ -0,0 +1,55 @@
|
||||
<?xml version='1.0'?>
|
||||
<!-- vim:set sts=2 shiftwidth=2 syntax=xml: -->
|
||||
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
|
||||
xmlns:exsl="http://exslt.org/common"
|
||||
xmlns:samba="http://samba.org/common"
|
||||
version="1.1"
|
||||
extension-element-prefixes="exsl">
|
||||
|
||||
<xsl:output method="xml" omit-xml-declaration="yes"/>
|
||||
|
||||
<xsl:param name="smb.context" select="'G'"/>
|
||||
|
||||
<!-- This is needed to copy content unchanged -->
|
||||
<xsl:template match="@*|node()">
|
||||
<xsl:copy>
|
||||
<xsl:apply-templates select="@*|node()"/>
|
||||
</xsl:copy>
|
||||
</xsl:template>
|
||||
|
||||
<xsl:template match="variablelist">
|
||||
<xsl:element name="itemizedlist">
|
||||
<xsl:apply-templates/>
|
||||
</xsl:element>
|
||||
</xsl:template>
|
||||
|
||||
<xsl:template match="//samba:parameter">
|
||||
<xsl:message>
|
||||
<xsl:text>Processing samba:parameter (</xsl:text>
|
||||
<xsl:value-of select="@name"/>
|
||||
<xsl:text>)</xsl:text>
|
||||
</xsl:message>
|
||||
|
||||
<xsl:variable name="name"><xsl:value-of select="translate(translate(string(@name),' ',''),
|
||||
'abcdefghijklmnopqrstuvwxyz','ABCDEFGHIJKLMNOPQRSTUVWXYZ')"/>
|
||||
</xsl:variable>
|
||||
|
||||
<xsl:if test="contains(@context,$smb.context)">
|
||||
<xsl:element name="listitem">
|
||||
<xsl:element name="para">
|
||||
<xsl:element name="link">
|
||||
<xsl:attribute name="linkend">
|
||||
<xsl:value-of select="$name"/>
|
||||
</xsl:attribute>
|
||||
<xsl:element name="parameter">
|
||||
<xsl:attribute name="moreinfo"><xsl:text>none</xsl:text></xsl:attribute>
|
||||
<xsl:value-of select="@name"/>
|
||||
</xsl:element>
|
||||
</xsl:element>
|
||||
</xsl:element>
|
||||
</xsl:element>
|
||||
<xsl:text> </xsl:text>
|
||||
</xsl:if>
|
||||
</xsl:template>
|
||||
|
||||
</xsl:stylesheet>
|
63
docs/docbook/smbdotconf/misc/addsharecommand.xml
Normal file
63
docs/docbook/smbdotconf/misc/addsharecommand.xml
Normal file
@ -0,0 +1,63 @@
|
||||
<samba:parameter name="add share command"
|
||||
context="G"
|
||||
advanced="1" developer="1"
|
||||
xmlns:samba="http://samba.org/common">
|
||||
<listitem>
|
||||
<para>Samba 2.2.0 introduced the ability to dynamically
|
||||
add and delete shares via the Windows NT 4.0 Server Manager. The
|
||||
<parameter moreinfo="none">add share command</parameter> is used to define an
|
||||
external program or script which will add a new service definition
|
||||
to <filename moreinfo="none">smb.conf</filename>. In order to successfully
|
||||
execute the <parameter moreinfo="none">add share command</parameter>, <command moreinfo="none">smbd</command>
|
||||
requires that the administrator be connected using a root account (i.e.
|
||||
uid == 0).
|
||||
</para>
|
||||
|
||||
<para>
|
||||
When executed, <command moreinfo="none">smbd</command> will automatically invoke the
|
||||
<parameter moreinfo="none">add share command</parameter> with four parameters.
|
||||
</para>
|
||||
|
||||
<itemizedlist>
|
||||
<listitem>
|
||||
<para><parameter moreinfo="none">configFile</parameter> - the location
|
||||
of the global <filename moreinfo="none">smb.conf</filename> file.
|
||||
</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para><parameter moreinfo="none">shareName</parameter> - the name of the new
|
||||
share.
|
||||
</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para><parameter moreinfo="none">pathName</parameter> - path to an **existing**
|
||||
directory on disk.
|
||||
</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para><parameter moreinfo="none">comment</parameter> - comment string to associate
|
||||
with the new share.
|
||||
</para>
|
||||
</listitem>
|
||||
</itemizedlist>
|
||||
|
||||
<para>
|
||||
This parameter is only used for add file shares. To add printer shares,
|
||||
see the <link linkend="ADDPRINTERCOMMAND"><parameter moreinfo="none">addprinter
|
||||
command</parameter></link>.
|
||||
</para>
|
||||
|
||||
<para>
|
||||
See also <link linkend="CHANGESHARECOMMAND"><parameter moreinfo="none">change share
|
||||
command</parameter></link>, <link linkend="DELETESHARECOMMAND"><parameter moreinfo="none">delete share
|
||||
command</parameter></link>.
|
||||
</para>
|
||||
|
||||
<para>Default: <emphasis>none</emphasis></para>
|
||||
|
||||
<para>Example: <command moreinfo="none">add share command = /usr/local/bin/addshare</command></para>
|
||||
</listitem>
|
||||
</samba:parameter>
|
9
docs/docbook/smbdotconf/misc/autoservices.xml
Normal file
9
docs/docbook/smbdotconf/misc/autoservices.xml
Normal file
@ -0,0 +1,9 @@
|
||||
<samba:parameter name="auto services"
|
||||
context="G"
|
||||
advanced="1" developer="1"
|
||||
xmlns:samba="http://samba.org/common">
|
||||
<listitem>
|
||||
<para>This is a synonym for the <link linkend="PRELOAD">
|
||||
<parameter moreinfo="none">preload</parameter></link>.</para>
|
||||
</listitem>
|
||||
</samba:parameter>
|
13
docs/docbook/smbdotconf/misc/available.xml
Normal file
13
docs/docbook/smbdotconf/misc/available.xml
Normal file
@ -0,0 +1,13 @@
|
||||
<samba:parameter name="available"
|
||||
context="S"
|
||||
basic="1" advanced="1" print="1"
|
||||
xmlns:samba="http://samba.org/common">
|
||||
<listitem>
|
||||
<para>This parameter lets you "turn off" a service. If
|
||||
<parameter moreinfo="none">available = no</parameter>, then <emphasis>ALL</emphasis>
|
||||
attempts to connect to the service will fail. Such failures are
|
||||
logged.</para>
|
||||
|
||||
<para>Default: <command moreinfo="none">available = yes</command></para>
|
||||
</listitem>
|
||||
</samba:parameter>
|
62
docs/docbook/smbdotconf/misc/changesharecommand.xml
Normal file
62
docs/docbook/smbdotconf/misc/changesharecommand.xml
Normal file
@ -0,0 +1,62 @@
|
||||
<samba:parameter name="change share command"
|
||||
context="G"
|
||||
advanced="1" developer="1"
|
||||
xmlns:samba="http://samba.org/common">
|
||||
<listitem>
|
||||
<para>Samba 2.2.0 introduced the ability to dynamically
|
||||
add and delete shares via the Windows NT 4.0 Server Manager. The
|
||||
<parameter moreinfo="none">change share command</parameter> is used to define an
|
||||
external program or script which will modify an existing service definition
|
||||
in <filename moreinfo="none">smb.conf</filename>. In order to successfully
|
||||
execute the <parameter moreinfo="none">change share command</parameter>, <command moreinfo="none">smbd</command>
|
||||
requires that the administrator be connected using a root account (i.e.
|
||||
uid == 0).
|
||||
</para>
|
||||
|
||||
<para>
|
||||
When executed, <command moreinfo="none">smbd</command> will automatically invoke the
|
||||
<parameter moreinfo="none">change share command</parameter> with four parameters.
|
||||
</para>
|
||||
|
||||
<itemizedlist>
|
||||
<listitem>
|
||||
<para><parameter moreinfo="none">configFile</parameter> - the location
|
||||
of the global <filename moreinfo="none">smb.conf</filename> file.
|
||||
</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para><parameter moreinfo="none">shareName</parameter> - the name of the new
|
||||
share.
|
||||
</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para><parameter moreinfo="none">pathName</parameter> - path to an **existing**
|
||||
directory on disk.
|
||||
</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para><parameter moreinfo="none">comment</parameter> - comment string to associate
|
||||
with the new share.
|
||||
</para>
|
||||
</listitem>
|
||||
</itemizedlist>
|
||||
|
||||
<para>
|
||||
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.
|
||||
</para>
|
||||
|
||||
<para>
|
||||
See also <link linkend="ADDSHARECOMMAND"><parameter moreinfo="none">add share
|
||||
command</parameter></link>, <link linkend="DELETESHARECOMMAND"><parameter moreinfo="none">delete
|
||||
share command</parameter></link>.
|
||||
</para>
|
||||
|
||||
<para>Default: <emphasis>none</emphasis></para>
|
||||
|
||||
<para>Example: <command moreinfo="none">change share command = /usr/local/bin/addshare</command></para>
|
||||
</listitem>
|
||||
</samba:parameter>
|
24
docs/docbook/smbdotconf/misc/configfile.xml
Normal file
24
docs/docbook/smbdotconf/misc/configfile.xml
Normal file
@ -0,0 +1,24 @@
|
||||
<samba:parameter name="config file"
|
||||
context="G"
|
||||
hide="1"
|
||||
xmlns:samba="http://samba.org/common">
|
||||
<listitem>
|
||||
<para>This allows you to override the config file
|
||||
to use, instead of the default (usually <filename moreinfo="none">smb.conf</filename>).
|
||||
There is a chicken and egg problem here as this option is set
|
||||
in the config file!</para>
|
||||
|
||||
<para>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.</para>
|
||||
|
||||
<para>This option takes the usual substitutions, which can
|
||||
be very useful.</para>
|
||||
|
||||
<para>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).</para>
|
||||
|
||||
<para>Example: <command moreinfo="none">config file = /usr/local/samba/lib/smb.conf.%m</command></para>
|
||||
</listitem>
|
||||
</samba:parameter>
|
20
docs/docbook/smbdotconf/misc/copy.xml
Normal file
20
docs/docbook/smbdotconf/misc/copy.xml
Normal file
@ -0,0 +1,20 @@
|
||||
<samba:parameter name="copy"
|
||||
context="S"
|
||||
hide="1"
|
||||
xmlns:samba="http://samba.org/common">
|
||||
<listitem>
|
||||
<para>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.</para>
|
||||
|
||||
<para>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.</para>
|
||||
|
||||
<para>Default: <emphasis>no value</emphasis></para>
|
||||
|
||||
<para>Example: <command moreinfo="none">copy = otherservice</command></para>
|
||||
</listitem>
|
||||
</samba:parameter>
|
9
docs/docbook/smbdotconf/misc/default.xml
Normal file
9
docs/docbook/smbdotconf/misc/default.xml
Normal file
@ -0,0 +1,9 @@
|
||||
<samba:parameter name="default"
|
||||
context="G"
|
||||
developer="1"
|
||||
xmlns:samba="http://samba.org/common">
|
||||
<listitem>
|
||||
<para>A synonym for <link linkend="DEFAULTSERVICE"><parameter moreinfo="none">
|
||||
default service</parameter></link>.</para>
|
||||
</listitem>
|
||||
</samba:parameter>
|
38
docs/docbook/smbdotconf/misc/defaultservice.xml
Normal file
38
docs/docbook/smbdotconf/misc/defaultservice.xml
Normal file
@ -0,0 +1,38 @@
|
||||
<samba:parameter name="default service"
|
||||
context="G"
|
||||
advanced="1" developer="1"
|
||||
xmlns:samba="http://samba.org/common">
|
||||
<listitem>
|
||||
<para>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 <emphasis>NOT</emphasis>
|
||||
given in the parameter value (see example below).</para>
|
||||
|
||||
<para>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.</para>
|
||||
|
||||
<para>Typically the default service would be a <link linkend="GUESTOK">
|
||||
<parameter moreinfo="none">guest ok</parameter></link>, <link linkend="READONLY">
|
||||
<parameter moreinfo="none">read-only</parameter></link> service.</para>
|
||||
|
||||
<para>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 <parameter moreinfo="none">%S</parameter> to make
|
||||
a wildcard service.</para>
|
||||
|
||||
<para>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.</para>
|
||||
|
||||
<para>Example:</para>
|
||||
|
||||
<para><programlisting format="linespecific">
|
||||
[global]
|
||||
default service = pub
|
||||
|
||||
[pub]
|
||||
path = /%S
|
||||
</programlisting></para>
|
||||
</listitem>
|
||||
</samba:parameter>
|
14
docs/docbook/smbdotconf/misc/deletereadonly.xml
Normal file
14
docs/docbook/smbdotconf/misc/deletereadonly.xml
Normal file
@ -0,0 +1,14 @@
|
||||
<samba:parameter name="delete readonly"
|
||||
context="S"
|
||||
xmlns:samba="http://samba.org/common">
|
||||
<listitem>
|
||||
<para>This parameter allows readonly files to be deleted.
|
||||
This is not normal DOS semantics, but is allowed by UNIX.</para>
|
||||
|
||||
<para>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.</para>
|
||||
|
||||
<para>Default: <command moreinfo="none">delete readonly = no</command></para>
|
||||
</listitem>
|
||||
</samba:parameter>
|
51
docs/docbook/smbdotconf/misc/deletesharecommand.xml
Normal file
51
docs/docbook/smbdotconf/misc/deletesharecommand.xml
Normal file
@ -0,0 +1,51 @@
|
||||
<samba:parameter name="delete share command"
|
||||
context="G"
|
||||
advanced="1" developer="1"
|
||||
xmlns:samba="http://samba.org/common">
|
||||
<listitem>
|
||||
<para>Samba 2.2.0 introduced the ability to dynamically
|
||||
add and delete shares via the Windows NT 4.0 Server Manager. The
|
||||
<parameter moreinfo="none">delete share command</parameter> is used to define an
|
||||
external program or script which will remove an existing service
|
||||
definition from <filename moreinfo="none">smb.conf</filename>. In order to successfully
|
||||
execute the <parameter moreinfo="none">delete share command</parameter>, <command moreinfo="none">smbd</command>
|
||||
requires that the administrator be connected using a root account (i.e.
|
||||
uid == 0).
|
||||
</para>
|
||||
|
||||
<para>
|
||||
When executed, <command moreinfo="none">smbd</command> will automatically invoke the
|
||||
<parameter moreinfo="none">delete share command</parameter> with two parameters.
|
||||
</para>
|
||||
|
||||
<itemizedlist>
|
||||
<listitem>
|
||||
<para><parameter moreinfo="none">configFile</parameter> - the location
|
||||
of the global <filename moreinfo="none">smb.conf</filename> file.
|
||||
</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para><parameter moreinfo="none">shareName</parameter> - the name of
|
||||
the existing service.
|
||||
</para>
|
||||
</listitem>
|
||||
</itemizedlist>
|
||||
|
||||
<para>
|
||||
This parameter is only used to remove file shares. To delete printer shares,
|
||||
see the <link linkend="DELETEPRINTERCOMMAND"><parameter moreinfo="none">deleteprinter
|
||||
command</parameter></link>.
|
||||
</para>
|
||||
|
||||
<para>
|
||||
See also <link linkend="ADDSHARECOMMAND"><parameter moreinfo="none">add share
|
||||
command</parameter></link>, <link linkend="CHANGESHARECOMMAND"><parameter moreinfo="none">change
|
||||
share command</parameter></link>.
|
||||
</para>
|
||||
|
||||
<para>Default: <emphasis>none</emphasis></para>
|
||||
|
||||
<para>Example: <command moreinfo="none">delete share command = /usr/local/bin/delshare</command></para>
|
||||
</listitem>
|
||||
</samba:parameter>
|
52
docs/docbook/smbdotconf/misc/dfreecommand.xml
Normal file
52
docs/docbook/smbdotconf/misc/dfreecommand.xml
Normal file
@ -0,0 +1,52 @@
|
||||
<samba:parameter name="dfree command"
|
||||
context="G"
|
||||
advanced="1" developer="1"
|
||||
xmlns:samba="http://samba.org/common">
|
||||
<listitem>
|
||||
|
||||
<para>The <parameter moreinfo="none">dfree command</parameter> 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.</para>
|
||||
|
||||
<para>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.</para>
|
||||
|
||||
<para>The external program will be passed a single parameter indicating
|
||||
a directory in the filesystem being queried. This will typically consist
|
||||
of the string <filename moreinfo="none">./</filename>. 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.</para>
|
||||
|
||||
<para>Note: Your script should <emphasis>NOT</emphasis> be setuid or
|
||||
setgid and should be owned by (and writeable only by) root!</para>
|
||||
|
||||
<para>Default: <emphasis>By default internal routines for
|
||||
determining the disk capacity and remaining space will be used.
|
||||
</emphasis></para>
|
||||
|
||||
<para>Example: <command moreinfo="none">dfree command = /usr/local/samba/bin/dfree</command></para>
|
||||
|
||||
<para>Where the script dfree (which must be made executable) could be:</para>
|
||||
|
||||
<para><programlisting format="linespecific">
|
||||
#!/bin/sh
|
||||
df $1 | tail -1 | awk '{print $2" "$4}'
|
||||
</programlisting></para>
|
||||
|
||||
<para>or perhaps (on Sys V based systems):</para>
|
||||
|
||||
<para><programlisting format="linespecific">
|
||||
#!/bin/sh
|
||||
/usr/bin/df -k $1 | tail -1 | awk '{print $3" "$5}'
|
||||
</programlisting></para>
|
||||
|
||||
<para>Note that you may have to replace the command names with full path names on some systems.</para>
|
||||
</listitem>
|
||||
</samba:parameter>
|
21
docs/docbook/smbdotconf/misc/dontdescend.xml
Normal file
21
docs/docbook/smbdotconf/misc/dontdescend.xml
Normal file
@ -0,0 +1,21 @@
|
||||
<samba:parameter name="dont descend"
|
||||
context="S"
|
||||
xmlns:samba="http://samba.org/common">
|
||||
<listitem>
|
||||
<para>There are certain directories on some systems
|
||||
(e.g., the <filename moreinfo="none">/proc</filename> 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.</para>
|
||||
|
||||
<para>Note that Samba can be very fussy about the exact format
|
||||
of the "dont descend" entries. For example you may need <filename moreinfo="none">
|
||||
./proc</filename> instead of just <filename moreinfo="none">/proc</filename>.
|
||||
Experimentation is the best policy :-) </para>
|
||||
|
||||
<para>Default: <emphasis>none (i.e., all directories are OK
|
||||
to descend)</emphasis></para>
|
||||
|
||||
<para>Example: <command moreinfo="none">dont descend = /proc,/dev</command></para>
|
||||
</listitem>
|
||||
</samba:parameter>
|
18
docs/docbook/smbdotconf/misc/dosfilemode.xml
Normal file
18
docs/docbook/smbdotconf/misc/dosfilemode.xml
Normal file
@ -0,0 +1,18 @@
|
||||
<samba:parameter name="dos filemode"
|
||||
context="S"
|
||||
xmlns:samba="http://samba.org/common">
|
||||
<listitem>
|
||||
<para> 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.</para>
|
||||
|
||||
<para>Default: <command moreinfo="none">dos filemode = no</command></para>
|
||||
</listitem>
|
||||
</samba:parameter>
|
25
docs/docbook/smbdotconf/misc/dosfiletimeresolution.xml
Normal file
25
docs/docbook/smbdotconf/misc/dosfiletimeresolution.xml
Normal file
@ -0,0 +1,25 @@
|
||||
<samba:parameter name="dos filetime resolution"
|
||||
context="S"
|
||||
xmlns:samba="http://samba.org/common">
|
||||
<listitem>
|
||||
<para>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 <citerefentry><refentrytitle>smbd</refentrytitle>
|
||||
<manvolnum>8</manvolnum></citerefentry>.</para>
|
||||
|
||||
<para>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.</para>
|
||||
|
||||
<para>Default: <command moreinfo="none">dos filetime resolution = no</command></para>
|
||||
</listitem>
|
||||
</samba:parameter>
|
17
docs/docbook/smbdotconf/misc/dosfiletimes.xml
Normal file
17
docs/docbook/smbdotconf/misc/dosfiletimes.xml
Normal file
@ -0,0 +1,17 @@
|
||||
<samba:parameter name="dos filetimes"
|
||||
context="S"
|
||||
xmlns:samba="http://samba.org/common">
|
||||
<listitem>
|
||||
<para>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 <command moreinfo="none">smbd</command> is acting
|
||||
on behalf of is not the file owner. Setting this option to <constant>
|
||||
yes</constant> allows DOS semantics and <citerefentry><refentrytitle>smbd</refentrytitle>
|
||||
<manvolnum>8</manvolnum></citerefentry> will change the file
|
||||
timestamp as DOS requires.</para>
|
||||
|
||||
<para>Default: <command moreinfo="none">dos filetimes = no</command></para>
|
||||
</listitem>
|
||||
</samba:parameter>
|
9
docs/docbook/smbdotconf/misc/exec.xml
Normal file
9
docs/docbook/smbdotconf/misc/exec.xml
Normal file
@ -0,0 +1,9 @@
|
||||
<samba:parameter name="exec"
|
||||
context="S"
|
||||
advanced="1" developer="1"
|
||||
xmlns:samba="http://samba.org/common">
|
||||
<listitem>
|
||||
<para>This is a synonym for <link linkend="PREEXEC">
|
||||
<parameter moreinfo="none">preexec</parameter></link>.</para>
|
||||
</listitem>
|
||||
</samba:parameter>
|
33
docs/docbook/smbdotconf/misc/fakedirectorycreatetimes.xml
Normal file
33
docs/docbook/smbdotconf/misc/fakedirectorycreatetimes.xml
Normal file
@ -0,0 +1,33 @@
|
||||
<samba:parameter name="fake directory create times"
|
||||
context="S"
|
||||
xmlns:samba="http://samba.org/common">
|
||||
<listitem>
|
||||
<para>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.</para>
|
||||
|
||||
<para>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.</para>
|
||||
|
||||
<para>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.</para>
|
||||
|
||||
<para>Default: <command moreinfo="none">fake directory create times = no</command></para>
|
||||
</listitem>
|
||||
</samba:parameter>
|
21
docs/docbook/smbdotconf/misc/followsymlinks.xml
Normal file
21
docs/docbook/smbdotconf/misc/followsymlinks.xml
Normal file
@ -0,0 +1,21 @@
|
||||
<samba:parameter name="follow symlinks"
|
||||
context="S"
|
||||
xmlns:samba="http://samba.org/common">
|
||||
<listitem>
|
||||
<para>This parameter allows the Samba administrator
|
||||
to stop <citerefentry><refentrytitle>smbd</refentrytitle>
|
||||
<manvolnum>8</manvolnum></citerefentry> from following symbolic
|
||||
links in a particular share. Setting this
|
||||
parameter to <constant>no</constant> 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 <filename moreinfo="none">/etc/passwd</filename> in their home
|
||||
directory for instance. However it will slow filename lookups
|
||||
down slightly.</para>
|
||||
|
||||
<para>This option is enabled (i.e. <command moreinfo="none">smbd</command> will
|
||||
follow symbolic links) by default.</para>
|
||||
|
||||
<para>Default: <command moreinfo="none">follow symlinks = yes</command></para>
|
||||
</listitem>
|
||||
</samba:parameter>
|
18
docs/docbook/smbdotconf/misc/fstype.xml
Normal file
18
docs/docbook/smbdotconf/misc/fstype.xml
Normal file
@ -0,0 +1,18 @@
|
||||
<samba:parameter name="fstype"
|
||||
context="S"
|
||||
xmlns:samba="http://samba.org/common">
|
||||
<listitem>
|
||||
<para>This parameter allows the administrator to
|
||||
configure the string that specifies the type of filesystem a share
|
||||
is using that is reported by <citerefentry><refentrytitle>smbd</refentrytitle>
|
||||
<manvolnum>8</manvolnum></citerefentry> when a client queries the filesystem type
|
||||
for a share. The default type is <constant>NTFS</constant> for
|
||||
compatibility with Windows NT but this can be changed to other
|
||||
strings such as <constant>Samba</constant> or <constant>FAT
|
||||
</constant> if required.</para>
|
||||
|
||||
<para>Default: <command moreinfo="none">fstype = NTFS</command></para>
|
||||
|
||||
<para>Example: <command moreinfo="none">fstype = Samba</command></para>
|
||||
</listitem>
|
||||
</samba:parameter>
|
11
docs/docbook/smbdotconf/misc/hidelocalusers.xml
Normal file
11
docs/docbook/smbdotconf/misc/hidelocalusers.xml
Normal file
@ -0,0 +1,11 @@
|
||||
<samba:parameter name="hide local users"
|
||||
context="G"
|
||||
advanced="1" developer="1"
|
||||
xmlns:samba="http://samba.org/common">
|
||||
<listitem>
|
||||
<para>This parameter toggles the hiding of local UNIX
|
||||
users (root, wheel, floppy, etc) from remote clients.</para>
|
||||
|
||||
<para>Default: <command moreinfo="none">hide local users = no</command></para>
|
||||
</listitem>
|
||||
</samba:parameter>
|
32
docs/docbook/smbdotconf/misc/homedirmap.xml
Normal file
32
docs/docbook/smbdotconf/misc/homedirmap.xml
Normal file
@ -0,0 +1,32 @@
|
||||
<samba:parameter name="homedir map"
|
||||
context="G"
|
||||
advanced="1" developer="1"
|
||||
xmlns:samba="http://samba.org/common">
|
||||
<listitem>
|
||||
<para>If<link linkend="NISHOMEDIR"><parameter moreinfo="none">nis homedir
|
||||
</parameter></link> is <constant>yes</constant>, and <citerefentry><refentrytitle>smbd</refentrytitle>
|
||||
<manvolnum>8</manvolnum></citerefentry> is also acting
|
||||
as a Win95/98 <parameter moreinfo="none">logon server</parameter> 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:</para>
|
||||
|
||||
<para><command moreinfo="none">username server:/some/file/system</command></para>
|
||||
|
||||
<para>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.</para>
|
||||
|
||||
<note><para>A working NIS client is required on
|
||||
the system for this option to work.</para></note>
|
||||
|
||||
<para>See also <link linkend="NISHOMEDIR"><parameter moreinfo="none">nis homedir</parameter>
|
||||
</link>, <link linkend="DOMAINLOGONS"><parameter moreinfo="none">domain logons</parameter>
|
||||
</link>.</para>
|
||||
|
||||
<para>Default: <command moreinfo="none">homedir map = <empty string></command></para>
|
||||
|
||||
<para>Example: <command moreinfo="none">homedir map = amd.homedir</command></para>
|
||||
</listitem>
|
||||
</samba:parameter>
|
18
docs/docbook/smbdotconf/misc/include.xml
Normal file
18
docs/docbook/smbdotconf/misc/include.xml
Normal file
@ -0,0 +1,18 @@
|
||||
<samba:parameter name="include"
|
||||
context="G"
|
||||
hide="1"
|
||||
xmlns:samba="http://samba.org/common">
|
||||
<listitem>
|
||||
<para>This allows you to include one config file
|
||||
inside another. The file is included literally, as though typed
|
||||
in place.</para>
|
||||
|
||||
<para>It takes the standard substitutions, except <parameter moreinfo="none">%u
|
||||
</parameter>, <parameter moreinfo="none">%P</parameter> and <parameter moreinfo="none">%S</parameter>.
|
||||
</para>
|
||||
|
||||
<para>Default: <emphasis>no file included</emphasis></para>
|
||||
|
||||
<para>Example: <command moreinfo="none">include = /usr/local/samba/lib/admin_smb.conf</command></para>
|
||||
</listitem>
|
||||
</samba:parameter>
|
9
docs/docbook/smbdotconf/misc/lockdir.xml
Normal file
9
docs/docbook/smbdotconf/misc/lockdir.xml
Normal file
@ -0,0 +1,9 @@
|
||||
<samba:parameter name="lock dir"
|
||||
context="G"
|
||||
hide="1"
|
||||
xmlns:samba="http://samba.org/common">
|
||||
<listitem>
|
||||
<para>Synonym for <link linkend="LOCKDIRECTORY"><parameter moreinfo="none">
|
||||
lock directory</parameter></link>.
|
||||
</para></listitem>
|
||||
</samba:parameter>
|
15
docs/docbook/smbdotconf/misc/lockdirectory.xml
Normal file
15
docs/docbook/smbdotconf/misc/lockdirectory.xml
Normal file
@ -0,0 +1,15 @@
|
||||
<samba:parameter name="lock directory"
|
||||
context="G"
|
||||
advanced="1" developer="1"
|
||||
xmlns:samba="http://samba.org/common">
|
||||
<listitem>
|
||||
<para>This option specifies the directory where lock
|
||||
files will be placed. The lock files are used to implement the
|
||||
<link linkend="MAXCONNECTIONS"><parameter moreinfo="none">max connections</parameter>
|
||||
</link> option.</para>
|
||||
|
||||
<para>Default: <command moreinfo="none">lock directory = ${prefix}/var/locks</command></para>
|
||||
|
||||
<para>Example: <command moreinfo="none">lock directory = /var/run/samba/locks</command></para>
|
||||
</listitem>
|
||||
</samba:parameter>
|
18
docs/docbook/smbdotconf/misc/magicoutput.xml
Normal file
18
docs/docbook/smbdotconf/misc/magicoutput.xml
Normal file
@ -0,0 +1,18 @@
|
||||
<samba:parameter name="magic output"
|
||||
context="S"
|
||||
xmlns:samba="http://samba.org/common">
|
||||
<listitem>
|
||||
<para>This parameter specifies the name of a file
|
||||
which will contain output created by a magic script (see the
|
||||
<link linkend="MAGICSCRIPT"><parameter moreinfo="none">magic script</parameter></link>
|
||||
parameter below).</para>
|
||||
|
||||
<para>Warning: If two clients use the same <parameter moreinfo="none">magic script
|
||||
</parameter> in the same directory the output file content
|
||||
is undefined.</para>
|
||||
|
||||
<para>Default: <command moreinfo="none">magic output = <magic script name>.out</command></para>
|
||||
|
||||
<para>Example: <command moreinfo="none">magic output = myfile.txt</command></para>
|
||||
</listitem>
|
||||
</samba:parameter>
|
31
docs/docbook/smbdotconf/misc/magicscript.xml
Normal file
31
docs/docbook/smbdotconf/misc/magicscript.xml
Normal file
@ -0,0 +1,31 @@
|
||||
<samba:parameter name="magic script"
|
||||
context="S"
|
||||
xmlns:samba="http://samba.org/common">
|
||||
<listitem>
|
||||
<para>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.</para>
|
||||
|
||||
<para>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.</para>
|
||||
|
||||
<para>If the script generates output, output will be sent to
|
||||
the file specified by the <link linkend="MAGICOUTPUT"><parameter moreinfo="none">
|
||||
magic output</parameter></link> parameter (see above).</para>
|
||||
|
||||
<para>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
|
||||
<emphasis>as is</emphasis> on the host, which for some hosts and
|
||||
some shells will require filtering at the DOS end.</para>
|
||||
|
||||
<para>Magic scripts are <emphasis>EXPERIMENTAL</emphasis> and
|
||||
should <emphasis>NOT</emphasis> be relied upon.</para>
|
||||
|
||||
<para>Default: <emphasis>None. Magic scripts disabled.</emphasis></para>
|
||||
|
||||
<para>Example: <command moreinfo="none">magic script = user.csh</command></para>
|
||||
</listitem>
|
||||
</samba:parameter>
|
73
docs/docbook/smbdotconf/misc/messagecommand.xml
Normal file
73
docs/docbook/smbdotconf/misc/messagecommand.xml
Normal file
@ -0,0 +1,73 @@
|
||||
<samba:parameter name="message command"
|
||||
context="G"
|
||||
advanced="1" developer="1"
|
||||
xmlns:samba="http://samba.org/common">
|
||||
<listitem>
|
||||
<para>This specifies what command to run when the
|
||||
server receives a WinPopup style message.</para>
|
||||
|
||||
<para>This would normally be a command that would
|
||||
deliver the message somehow. How this is to be done is
|
||||
up to your imagination.</para>
|
||||
|
||||
<para>An example is:</para>
|
||||
|
||||
<para><command moreinfo="none">message command = csh -c 'xedit %s;rm %s' &</command>
|
||||
</para>
|
||||
|
||||
<para>This delivers the message using <command moreinfo="none">xedit</command>, then
|
||||
removes it afterwards. <emphasis>NOTE THAT IT IS VERY IMPORTANT
|
||||
THAT THIS COMMAND RETURN IMMEDIATELY</emphasis>. 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).</para>
|
||||
|
||||
<para>All messages are delivered as the global guest user.
|
||||
The command takes the standard substitutions, although <parameter moreinfo="none">
|
||||
%u</parameter> won't work (<parameter moreinfo="none">%U</parameter> may be better
|
||||
in this case).</para>
|
||||
|
||||
<para>Apart from the standard substitutions, some additional
|
||||
ones apply. In particular:</para>
|
||||
|
||||
<itemizedlist>
|
||||
<listitem>
|
||||
<para><parameter moreinfo="none">%s</parameter> = the filename containing
|
||||
the message.</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para><parameter moreinfo="none">%t</parameter> = the destination that
|
||||
the message was sent to (probably the server name).</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para><parameter moreinfo="none">%f</parameter> = who the message
|
||||
is from.</para>
|
||||
</listitem>
|
||||
</itemizedlist>
|
||||
|
||||
<para>You could make this command send mail, or whatever else
|
||||
takes your fancy. Please let us know of any really interesting
|
||||
ideas you have.</para>
|
||||
|
||||
<para>Here's a way of sending the messages as mail to root:</para>
|
||||
|
||||
<para><command moreinfo="none">message command = /bin/mail -s 'message from %f on
|
||||
%m' root < %s; rm %s</command></para>
|
||||
|
||||
<para>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.
|
||||
</para>
|
||||
|
||||
<para>If you want to silently delete it then try:</para>
|
||||
|
||||
<para><command moreinfo="none">message command = rm %s</command></para>
|
||||
|
||||
<para>Default: <emphasis>no message command</emphasis></para>
|
||||
|
||||
<para>Example: <command moreinfo="none">message command = csh -c 'xedit %s; rm %s' &</command></para>
|
||||
</listitem>
|
||||
</samba:parameter>
|
33
docs/docbook/smbdotconf/misc/nishomedir.xml
Normal file
33
docs/docbook/smbdotconf/misc/nishomedir.xml
Normal file
@ -0,0 +1,33 @@
|
||||
<samba:parameter name="nis homedir"
|
||||
context="G"
|
||||
advanced="1" developer="1"
|
||||
xmlns:samba="http://samba.org/common">
|
||||
<listitem>
|
||||
<para>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. </para>
|
||||
|
||||
<para>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.</para>
|
||||
|
||||
<para>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 <link linkend="HOMEDIRMAP">
|
||||
<parameter moreinfo="none">homedir map</parameter></link> and return the server
|
||||
listed there.</para>
|
||||
|
||||
<para>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.</para>
|
||||
|
||||
<para>Default: <command moreinfo="none">nis homedir = no</command></para>
|
||||
</listitem>
|
||||
</samba:parameter>
|
16
docs/docbook/smbdotconf/misc/panicaction.xml
Normal file
16
docs/docbook/smbdotconf/misc/panicaction.xml
Normal file
@ -0,0 +1,16 @@
|
||||
<samba:parameter name="panic action"
|
||||
context="G"
|
||||
advanced="1" developer="1"
|
||||
xmlns:samba="http://samba.org/common">
|
||||
<listitem>
|
||||
<para>This is a Samba developer option that allows a
|
||||
system command to be called when either <citerefentry><refentrytitle>smbd</refentrytitle>
|
||||
<manvolnum>8</manvolnum></citerefentry> or <citerefentry><refentrytitle>smbd</refentrytitle>
|
||||
<manvolnum>8</manvolnum></citerefentry> crashes. This is usually used to
|
||||
draw attention to the fact that a problem occurred.</para>
|
||||
|
||||
<para>Default: <command moreinfo="none">panic action = <empty string></command></para>
|
||||
|
||||
<para>Example: <command moreinfo="none">panic action = "/bin/sleep 90000"</command></para>
|
||||
</listitem>
|
||||
</samba:parameter>
|
13
docs/docbook/smbdotconf/misc/piddirectory.xml
Normal file
13
docs/docbook/smbdotconf/misc/piddirectory.xml
Normal file
@ -0,0 +1,13 @@
|
||||
<samba:parameter name="pid directory"
|
||||
context="G"
|
||||
advanced="1" developer="1"
|
||||
xmlns:samba="http://samba.org/common">
|
||||
<listitem>
|
||||
<para>This option specifies the directory where pid
|
||||
files will be placed. </para>
|
||||
|
||||
<para>Default: <command moreinfo="none">pid directory = ${prefix}/var/locks</command></para>
|
||||
|
||||
<para>Example: <command moreinfo="none">pid directory = /var/run/</command></para>
|
||||
</listitem>
|
||||
</samba:parameter>
|
22
docs/docbook/smbdotconf/misc/postexec.xml
Normal file
22
docs/docbook/smbdotconf/misc/postexec.xml
Normal file
@ -0,0 +1,22 @@
|
||||
<samba:parameter name="postexec"
|
||||
context="S"
|
||||
advanced="1" developer="1"
|
||||
xmlns:samba="http://samba.org/common">
|
||||
<listitem>
|
||||
<para>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.</para>
|
||||
|
||||
<para>An interesting example may be to unmount server
|
||||
resources:</para>
|
||||
|
||||
<para><command moreinfo="none">postexec = /etc/umount /cdrom</command></para>
|
||||
|
||||
<para>See also <link linkend="PREEXEC"><parameter moreinfo="none">preexec</parameter></link>.</para>
|
||||
|
||||
<para>Default: <emphasis>none (no command executed)</emphasis></para>
|
||||
|
||||
<para>Example: <command moreinfo="none">postexec = echo \"%u disconnected from %S from %m (%I)\" >> /tmp/log</command></para>
|
||||
</listitem>
|
||||
</samba:parameter>
|
25
docs/docbook/smbdotconf/misc/preexec.xml
Normal file
25
docs/docbook/smbdotconf/misc/preexec.xml
Normal file
@ -0,0 +1,25 @@
|
||||
<samba:parameter name="preexec"
|
||||
context="S"
|
||||
advanced="1" developer="1"
|
||||
xmlns:samba="http://samba.org/common">
|
||||
<listitem>
|
||||
<para>This option specifies a command to be run whenever
|
||||
the service is connected to. It takes the usual substitutions.</para>
|
||||
|
||||
<para>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:</para>
|
||||
|
||||
<para><command moreinfo="none">preexec = csh -c 'echo \"Welcome to %S!\" | /usr/local/samba/bin/smbclient -M %m -I %I' & </command></para>
|
||||
|
||||
<para>Of course, this could get annoying after a while :-)</para>
|
||||
|
||||
<para>See also <link linkend="PREEXECCLOSE"><parameter moreinfo="none">preexec close</parameter></link> and <link
|
||||
linkend="POSTEXEC"><parameter moreinfo="none">postexec
|
||||
</parameter></link>.</para>
|
||||
|
||||
<para>Default: <emphasis>none (no command executed)</emphasis></para>
|
||||
|
||||
<para>Example: <command moreinfo="none">preexec = echo \"%u connected to %S from %m (%I)\" >> /tmp/log</command></para>
|
||||
</listitem>
|
||||
</samba:parameter>
|
12
docs/docbook/smbdotconf/misc/preexecclose.xml
Normal file
12
docs/docbook/smbdotconf/misc/preexecclose.xml
Normal file
@ -0,0 +1,12 @@
|
||||
<samba:parameter name="preexec close"
|
||||
context="S"
|
||||
advanced="1" developer="1"
|
||||
xmlns:samba="http://samba.org/common">
|
||||
<listitem>
|
||||
<para>This boolean option controls whether a non-zero
|
||||
return code from <link linkend="PREEXEC"><parameter moreinfo="none">preexec
|
||||
</parameter></link> should close the service being connected to.</para>
|
||||
|
||||
<para>Default: <command moreinfo="none">preexec close = no</command></para>
|
||||
</listitem>
|
||||
</samba:parameter>
|
19
docs/docbook/smbdotconf/misc/preload.xml
Normal file
19
docs/docbook/smbdotconf/misc/preload.xml
Normal file
@ -0,0 +1,19 @@
|
||||
<samba:parameter name="preload"
|
||||
context="G"
|
||||
advanced="1" developer="1"
|
||||
xmlns:samba="http://samba.org/common">
|
||||
<listitem>
|
||||
<para>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.</para>
|
||||
|
||||
<para>Note that if you just want all printers in your
|
||||
printcap file loaded then the <link linkend="LOADPRINTERS">
|
||||
<parameter moreinfo="none">load printers</parameter></link> option is easier.</para>
|
||||
|
||||
<para>Default: <emphasis>no preloaded services</emphasis></para>
|
||||
|
||||
<para>Example: <command moreinfo="none">preload = fred lp colorlp</command></para>
|
||||
</listitem>
|
||||
</samba:parameter>
|
35
docs/docbook/smbdotconf/misc/remoteannounce.xml
Normal file
35
docs/docbook/smbdotconf/misc/remoteannounce.xml
Normal file
@ -0,0 +1,35 @@
|
||||
<samba:parameter name="remote announce"
|
||||
context="G"
|
||||
advanced="1" developer="1"
|
||||
xmlns:samba="http://samba.org/common">
|
||||
<listitem>
|
||||
<para>This option allows you to setup <citerefentry><refentrytitle>nmbd</refentrytitle>
|
||||
<manvolnum>8</manvolnum></citerefentry>to periodically announce itself
|
||||
to arbitrary IP addresses with an arbitrary workgroup name.</para>
|
||||
|
||||
<para>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.</para>
|
||||
|
||||
<para>For example:</para>
|
||||
|
||||
<para><command moreinfo="none">remote announce = 192.168.2.255/SERVERS
|
||||
192.168.4.255/STAFF</command></para>
|
||||
|
||||
<para>the above line would cause <command moreinfo="none">nmbd</command> 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 <link linkend="WORKGROUP"><parameter moreinfo="none">workgroup</parameter></link>
|
||||
parameter is used instead.</para>
|
||||
|
||||
<para>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.</para>
|
||||
|
||||
<para>See the documentation file <ulink url="improved-browsing.html">BROWSING</ulink>
|
||||
in the <filename moreinfo="none">docs/</filename> directory.</para>
|
||||
|
||||
<para>Default: <command moreinfo="none">remote announce = <empty string></command></para>
|
||||
</listitem>
|
||||
</samba:parameter>
|
35
docs/docbook/smbdotconf/misc/remotebrowsesync.xml
Normal file
35
docs/docbook/smbdotconf/misc/remotebrowsesync.xml
Normal file
@ -0,0 +1,35 @@
|
||||
<samba:parameter name="remote browse sync"
|
||||
context="G"
|
||||
advanced="1" developer="1"
|
||||
xmlns:samba="http://samba.org/common">
|
||||
<listitem>
|
||||
<para>This option allows you to setup <citerefentry><refentrytitle>nmbd</refentrytitle>
|
||||
<manvolnum>8</manvolnum></citerefentry> 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.</para>
|
||||
|
||||
<para>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.</para>
|
||||
|
||||
<para>For example:</para>
|
||||
|
||||
<para><command moreinfo="none">remote browse sync = 192.168.2.255 192.168.4.255</command></para>
|
||||
|
||||
<para>the above line would cause <command moreinfo="none">nmbd</command> to request
|
||||
the master browser on the specified subnets or addresses to
|
||||
synchronize their browse lists with the local server.</para>
|
||||
|
||||
<para>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.</para>
|
||||
|
||||
<para>Default: <command moreinfo="none">remote browse sync = <empty string></command></para>
|
||||
</listitem>
|
||||
</samba:parameter>
|
16
docs/docbook/smbdotconf/misc/rootpostexec.xml
Normal file
16
docs/docbook/smbdotconf/misc/rootpostexec.xml
Normal file
@ -0,0 +1,16 @@
|
||||
<samba:parameter name="root postexec"
|
||||
context="S"
|
||||
advanced="1" developer="1"
|
||||
xmlns:samba="http://samba.org/common">
|
||||
<listitem>
|
||||
<para>This is the same as the <parameter moreinfo="none">postexec</parameter>
|
||||
parameter except that the command is run as root. This
|
||||
is useful for unmounting filesystems
|
||||
(such as CDROMs) after a connection is closed.</para>
|
||||
|
||||
<para>See also <link linkend="POSTEXEC"><parameter moreinfo="none">
|
||||
postexec</parameter></link>.</para>
|
||||
|
||||
<para>Default: <command moreinfo="none">root postexec = <empty string></command></para>
|
||||
</listitem>
|
||||
</samba:parameter>
|
17
docs/docbook/smbdotconf/misc/rootpreexec.xml
Normal file
17
docs/docbook/smbdotconf/misc/rootpreexec.xml
Normal file
@ -0,0 +1,17 @@
|
||||
<samba:parameter name="root preexec"
|
||||
context="S"
|
||||
advanced="1" wizard="1" developer="1"
|
||||
xmlns:samba="http://samba.org/common">
|
||||
<listitem>
|
||||
<para>This is the same as the <parameter moreinfo="none">preexec</parameter>
|
||||
parameter except that the command is run as root. This
|
||||
is useful for mounting filesystems (such as CDROMs) when a
|
||||
connection is opened.</para>
|
||||
|
||||
<para>See also <link linkend="PREEXEC"><parameter moreinfo="none">
|
||||
preexec</parameter></link> and <link linkend="PREEXECCLOSE">
|
||||
<parameter moreinfo="none">preexec close</parameter></link>.</para>
|
||||
|
||||
<para>Default: <command moreinfo="none">root preexec = <empty string></command></para>
|
||||
</listitem>
|
||||
</samba:parameter>
|
15
docs/docbook/smbdotconf/misc/rootpreexecclose.xml
Normal file
15
docs/docbook/smbdotconf/misc/rootpreexecclose.xml
Normal file
@ -0,0 +1,15 @@
|
||||
<samba:parameter name="root preexec close"
|
||||
context="S"
|
||||
advanced="1" developer="1"
|
||||
xmlns:samba="http://samba.org/common">
|
||||
<listitem>
|
||||
<para>This is the same as the <parameter moreinfo="none">preexec close
|
||||
</parameter> parameter except that the command is run as root.</para>
|
||||
|
||||
<para>See also <link linkend="PREEXEC"><parameter moreinfo="none">
|
||||
preexec</parameter></link> and <link linkend="PREEXECCLOSE">
|
||||
<parameter moreinfo="none">preexec close</parameter></link>.</para>
|
||||
|
||||
<para>Default: <command moreinfo="none">root preexec close = no</command></para>
|
||||
</listitem>
|
||||
</samba:parameter>
|
15
docs/docbook/smbdotconf/misc/setdirectory.xml
Normal file
15
docs/docbook/smbdotconf/misc/setdirectory.xml
Normal file
@ -0,0 +1,15 @@
|
||||
<samba:parameter name="set directory"
|
||||
context="S"
|
||||
xmlns:samba="http://samba.org/common">
|
||||
<listitem>
|
||||
<para>If <command moreinfo="none">set directory = no</command>, then
|
||||
users of the service may not use the setdir command to change
|
||||
directory.</para>
|
||||
|
||||
<para>The <command moreinfo="none">setdir</command> command is only implemented
|
||||
in the Digital Pathworks client. See the Pathworks documentation
|
||||
for details.</para>
|
||||
|
||||
<para>Default: <command moreinfo="none">set directory = no</command></para>
|
||||
</listitem>
|
||||
</samba:parameter>
|
16
docs/docbook/smbdotconf/misc/socketaddress.xml
Normal file
16
docs/docbook/smbdotconf/misc/socketaddress.xml
Normal file
@ -0,0 +1,16 @@
|
||||
<samba:parameter name="socket address"
|
||||
context="G"
|
||||
developer="1"
|
||||
xmlns:samba="http://samba.org/common">
|
||||
<listitem>
|
||||
<para>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.</para>
|
||||
|
||||
<para>By default Samba will accept connections on any
|
||||
address.</para>
|
||||
|
||||
<para>Example: <command moreinfo="none">socket address = 192.168.2.20</command></para>
|
||||
</listitem>
|
||||
</samba:parameter>
|
27
docs/docbook/smbdotconf/misc/sourceenvironment.xml
Normal file
27
docs/docbook/smbdotconf/misc/sourceenvironment.xml
Normal file
@ -0,0 +1,27 @@
|
||||
<samba:parameter name="source environment"
|
||||
context="G"
|
||||
advanced="1" developer="1"
|
||||
xmlns:samba="http://samba.org/common">
|
||||
<listitem>
|
||||
<para>This parameter causes Samba to set environment
|
||||
variables as per the content of the file named.</para>
|
||||
|
||||
<para>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.</para>
|
||||
|
||||
<para>The contents of the file or the output of the pipe should
|
||||
be formatted as the output of the standard Unix <command moreinfo="none">env(1)</command> command. This is of the form:</para>
|
||||
|
||||
<para>Example environment entry:</para>
|
||||
|
||||
<para><command moreinfo="none">SAMBA_NETBIOS_NAME = myhostname</command></para>
|
||||
|
||||
<para>Default: <emphasis>No default value</emphasis></para>
|
||||
|
||||
<para>Examples: <command moreinfo="none">source environment = |/etc/smb.conf.sh</command></para>
|
||||
|
||||
<para>Example: <command moreinfo="none">source environment =
|
||||
/usr/local/smb_env_vars</command></para>
|
||||
</listitem>
|
||||
</samba:parameter>
|
15
docs/docbook/smbdotconf/misc/timeoffset.xml
Normal file
15
docs/docbook/smbdotconf/misc/timeoffset.xml
Normal file
@ -0,0 +1,15 @@
|
||||
<samba:parameter name="time offset"
|
||||
context="G"
|
||||
advanced="1" developer="1"
|
||||
xmlns:samba="http://samba.org/common">
|
||||
<listitem>
|
||||
<para>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.</para>
|
||||
|
||||
<para>Default: <command moreinfo="none">time offset = 0</command></para>
|
||||
|
||||
<para>Example: <command moreinfo="none">time offset = 60</command></para>
|
||||
</listitem>
|
||||
</samba:parameter>
|
24
docs/docbook/smbdotconf/misc/utmp.xml
Normal file
24
docs/docbook/smbdotconf/misc/utmp.xml
Normal file
@ -0,0 +1,24 @@
|
||||
<samba:parameter name="utmp"
|
||||
context="G"
|
||||
developer="1"
|
||||
xmlns:samba="http://samba.org/common">
|
||||
<listitem>
|
||||
<para>This boolean parameter is only available if
|
||||
Samba has been configured and compiled with the option <command moreinfo="none">
|
||||
--with-utmp</command>. If set to <constant>yes</constant> 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.</para>
|
||||
|
||||
<para>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. </para>
|
||||
|
||||
<para>See also the <link linkend="UTMPDIRECTORY"><parameter moreinfo="none">
|
||||
utmp directory</parameter></link> parameter.</para>
|
||||
|
||||
<para>Default: <command moreinfo="none">utmp = no</command></para>
|
||||
</listitem>
|
||||
</samba:parameter>
|
20
docs/docbook/smbdotconf/misc/utmpdirectory.xml
Normal file
20
docs/docbook/smbdotconf/misc/utmpdirectory.xml
Normal file
@ -0,0 +1,20 @@
|
||||
<samba:parameter name="utmp directory"
|
||||
context="G"
|
||||
advanced="1" developer="1"
|
||||
xmlns:samba="http://samba.org/common">
|
||||
<listitem>
|
||||
<para>This parameter is only available if Samba has
|
||||
been configured and compiled with the option <command moreinfo="none">
|
||||
--with-utmp</command>. 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 <link linkend="UTMP">
|
||||
<parameter moreinfo="none">utmp</parameter></link> parameter. By default this is
|
||||
not set, meaning the system will use whatever utmp file the
|
||||
native system is set to use (usually
|
||||
<filename moreinfo="none">/var/run/utmp</filename> on Linux).</para>
|
||||
|
||||
<para>Default: <emphasis>no utmp directory</emphasis></para>
|
||||
|
||||
<para>Example: <command moreinfo="none">utmp directory = /var/run/utmp</command></para>
|
||||
</listitem>
|
||||
</samba:parameter>
|
11
docs/docbook/smbdotconf/misc/volume.xml
Normal file
11
docs/docbook/smbdotconf/misc/volume.xml
Normal file
@ -0,0 +1,11 @@
|
||||
<samba:parameter name="volume"
|
||||
context="S"
|
||||
xmlns:samba="http://samba.org/common">
|
||||
<listitem>
|
||||
<para> 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.</para>
|
||||
|
||||
<para>Default: <emphasis>the name of the share</emphasis></para>
|
||||
</listitem>
|
||||
</samba:parameter>
|
17
docs/docbook/smbdotconf/misc/widelinks.xml
Normal file
17
docs/docbook/smbdotconf/misc/widelinks.xml
Normal file
@ -0,0 +1,17 @@
|
||||
<samba:parameter name="wide links"
|
||||
context="S"
|
||||
xmlns:samba="http://samba.org/common">
|
||||
<listitem>
|
||||
<para>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.</para>
|
||||
|
||||
<para>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.</para>
|
||||
|
||||
<para>Default: <command moreinfo="none">wide links = yes</command></para>
|
||||
</listitem>
|
||||
</samba:parameter>
|
24
docs/docbook/smbdotconf/misc/wtmpdirectory.xml
Normal file
24
docs/docbook/smbdotconf/misc/wtmpdirectory.xml
Normal file
@ -0,0 +1,24 @@
|
||||
<samba:parameter name="wtmp directory"
|
||||
context="G"
|
||||
advanced="1" developer="1"
|
||||
xmlns:samba="http://samba.org/common">
|
||||
<listitem>
|
||||
<para>This parameter is only available if Samba has
|
||||
been configured and compiled with the option <command moreinfo="none">
|
||||
--with-utmp</command>. 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.</para>
|
||||
|
||||
<para>See also the <link linkend="UTMP">
|
||||
<parameter moreinfo="none">utmp</parameter></link> parameter. By default this is
|
||||
not set, meaning the system will use whatever utmp file the
|
||||
native system is set to use (usually
|
||||
<filename moreinfo="none">/var/run/wtmp</filename> on Linux).</para>
|
||||
|
||||
<para>Default: <emphasis>no wtmp directory</emphasis></para>
|
||||
|
||||
<para>Example: <command moreinfo="none">wtmp directory = /var/log/wtmp</command></para>
|
||||
</listitem>
|
||||
</samba:parameter>
|
29
docs/docbook/smbdotconf/printing/lpqcachetime.xml
Normal file
29
docs/docbook/smbdotconf/printing/lpqcachetime.xml
Normal file
@ -0,0 +1,29 @@
|
||||
<samba:parameter name="lpq cache time"
|
||||
context="G"
|
||||
developer="1"
|
||||
xmlns:samba="http://samba.org/common">
|
||||
<listitem>
|
||||
<para>This controls how long lpq info will be cached
|
||||
for to prevent the <command moreinfo="none">lpq</command> command being called too
|
||||
often. A separate cache is kept for each variation of the <command moreinfo="none">
|
||||
lpq</command> command used by the system, so if you use different
|
||||
<command moreinfo="none">lpq</command> commands for different users then they won't
|
||||
share cache information.</para>
|
||||
|
||||
<para>The cache files are stored in <filename moreinfo="none">/tmp/lpq.xxxx</filename>
|
||||
where xxxx is a hash of the <command moreinfo="none">lpq</command> command in use.</para>
|
||||
|
||||
<para>The default is 10 seconds, meaning that the cached results
|
||||
of a previous identical <command moreinfo="none">lpq</command> command will be used
|
||||
if the cached data is less than 10 seconds old. A large value may
|
||||
be advisable if your <command moreinfo="none">lpq</command> command is very slow.</para>
|
||||
|
||||
<para>A value of 0 will disable caching completely.</para>
|
||||
|
||||
<para>See also the <link linkend="PRINTING"><parameter moreinfo="none">printing</parameter></link> parameter.</para>
|
||||
|
||||
<para>Default: <command moreinfo="none">lpq cache time = 10</command></para>
|
||||
|
||||
<para>Example: <command moreinfo="none">lpq cache time = 30</command></para>
|
||||
</listitem>
|
||||
</samba:parameter>
|
52
docs/docbook/smbdotconf/printing/printcapname.xml
Normal file
52
docs/docbook/smbdotconf/printing/printcapname.xml
Normal file
@ -0,0 +1,52 @@
|
||||
<samba:parameter name="printcap name"
|
||||
context="S"
|
||||
print="1" developer="1"
|
||||
xmlns:samba="http://samba.org/common">
|
||||
<listitem>
|
||||
<para>This parameter may be used to override the
|
||||
compiled-in default printcap name used by the server (usually <filename moreinfo="none">
|
||||
/etc/printcap</filename>). See the discussion of the <link
|
||||
linkend="PRINTERSSECT">[printers]</link> section above for reasons
|
||||
why you might want to do this.</para>
|
||||
|
||||
<para>To use the CUPS printing interface set <command moreinfo="none">printcap name = cups
|
||||
</command>. This should be supplemented by an addtional setting
|
||||
<link linkend="PRINTING">printing = cups</link> in the [global]
|
||||
section. <command moreinfo="none">printcap name = cups</command> will use the
|
||||
"dummy" printcap created by CUPS, as specified in your CUPS
|
||||
configuration file.
|
||||
</para>
|
||||
|
||||
<para>On System V systems that use <command moreinfo="none">lpstat</command> to
|
||||
list available printers you can use <command moreinfo="none">printcap name = lpstat
|
||||
</command> 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 <parameter moreinfo="none">
|
||||
printcap name</parameter> is set to <command moreinfo="none">lpstat</command> on
|
||||
these systems then Samba will launch <command moreinfo="none">lpstat -v</command> and
|
||||
attempt to parse the output to obtain a printer list.</para>
|
||||
|
||||
<para>A minimal printcap file would look something like this:</para>
|
||||
|
||||
<para><programlisting format="linespecific">
|
||||
print1|My Printer 1
|
||||
print2|My Printer 2
|
||||
print3|My Printer 3
|
||||
print4|My Printer 4
|
||||
print5|My Printer 5
|
||||
</programlisting></para>
|
||||
|
||||
<para>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.</para>
|
||||
|
||||
<note><para>Under AIX the default printcap
|
||||
name is <filename moreinfo="none">/etc/qconfig</filename>. Samba will assume the
|
||||
file is in AIX <filename moreinfo="none">qconfig</filename> format if the string
|
||||
<filename moreinfo="none">qconfig</filename> appears in the printcap filename.</para></note>
|
||||
|
||||
<para>Default: <command moreinfo="none">printcap name = /etc/printcap</command></para>
|
||||
|
||||
<para>Example: <command moreinfo="none">printcap name = /etc/myprintcap</command></para>
|
||||
</listitem>
|
||||
</samba:parameter>
|
40
docs/docbook/smbdotconf/printing/useclientdriver.xml
Normal file
40
docs/docbook/smbdotconf/printing/useclientdriver.xml
Normal file
@ -0,0 +1,40 @@
|
||||
<samba:parameter name="use client driver"
|
||||
context="S"
|
||||
print="1"
|
||||
xmlns:samba="http://samba.org/common">
|
||||
<listitem>
|
||||
<para>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 <command moreinfo="none">disable spoolss = yes</command>.
|
||||
</para>
|
||||
|
||||
<para>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). </para>
|
||||
|
||||
<para>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. <emphasis>This parameter MUST not be able enabled
|
||||
on a print share which has valid print driver installed on the Samba
|
||||
server.</emphasis></para>
|
||||
|
||||
<para>See also <link linkend="DISABLESPOOLSS"><parameter
|
||||
moreinfo="none">disable spoolss</parameter></link></para>
|
||||
|
||||
<para>Default: <command moreinfo="none">use client driver = no</command></para>
|
||||
</listitem>
|
||||
</samba:parameter>
|
45
docs/docbook/smbdotconf/security/createmask.xml
Normal file
45
docs/docbook/smbdotconf/security/createmask.xml
Normal file
@ -0,0 +1,45 @@
|
||||
<samba:parameter name="create mask"
|
||||
context="S"
|
||||
xmlns:samba="http://samba.org/common">
|
||||
<listitem>
|
||||
<para>A synonym for this parameter is
|
||||
<link linkend="CREATEMODE"><parameter moreinfo="none">create mode</parameter>
|
||||
</link>.</para>
|
||||
|
||||
<para>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 <emphasis>not</emphasis>
|
||||
set here will be removed from the modes set on a file when it is
|
||||
created.</para>
|
||||
|
||||
<para>The default value of this parameter removes the
|
||||
'group' and 'other' write and execute bits from the UNIX modes.</para>
|
||||
|
||||
<para>Following this Samba will bit-wise 'OR' the UNIX mode created
|
||||
from this parameter with the value of the <link linkend="FORCECREATEMODE">
|
||||
<parameter moreinfo="none">force create mode</parameter></link>
|
||||
parameter which is set to 000 by default.</para>
|
||||
|
||||
<para>This parameter does not affect directory modes. See the
|
||||
parameter <link linkend="DIRECTORYMODE"><parameter moreinfo="none">directory mode
|
||||
</parameter></link> for details.</para>
|
||||
|
||||
<para>See also the <link linkend="FORCECREATEMODE"><parameter moreinfo="none">force
|
||||
create mode</parameter></link> parameter for forcing particular mode
|
||||
bits to be set on created files. See also the <link linkend="DIRECTORYMODE">
|
||||
<parameter moreinfo="none">directory mode</parameter></link> parameter for masking
|
||||
mode bits on created directories. See also the <link linkend="INHERITPERMISSIONS">
|
||||
<parameter moreinfo="none">inherit permissions</parameter></link> parameter.</para>
|
||||
|
||||
<para>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 <link linkend="SECURITYMASK">
|
||||
<parameter moreinfo="none">security mask</parameter></link>.</para>
|
||||
|
||||
<para>Default: <command moreinfo="none">create mask = 0744</command></para>
|
||||
|
||||
<para>Example: <command moreinfo="none">create mask = 0775</command></para>
|
||||
</listitem>
|
||||
</samba:parameter>
|
17
docs/docbook/smbdotconf/security/minpasswordlength.xml
Normal file
17
docs/docbook/smbdotconf/security/minpasswordlength.xml
Normal file
@ -0,0 +1,17 @@
|
||||
<samba:parameter name="min password length"
|
||||
context="G"
|
||||
advanced="1" developer="1"
|
||||
xmlns:samba="http://samba.org/common">
|
||||
<listitem>
|
||||
<para>This option sets the minimum length in characters of a
|
||||
plaintext password that <command moreinfo="none">smbd</command> will
|
||||
accept when performing UNIX password changing.</para>
|
||||
|
||||
<para>See also <link linkend="UNIXPASSWORDSYNC"><parameter moreinfo="none">unix
|
||||
password sync</parameter></link>, <link linkend="PASSWDPROGRAM">
|
||||
<parameter moreinfo="none">passwd program</parameter></link> and <link linkend="PASSWDCHATDEBUG">
|
||||
<parameter moreinfo="none">passwd chat debug</parameter></link>.</para>
|
||||
|
||||
<para>Default: <command moreinfo="none">min password length = 5</command></para>
|
||||
</listitem>
|
||||
</samba:parameter>
|
18
docs/docbook/smbdotconf/security/preloadmodules.xml
Normal file
18
docs/docbook/smbdotconf/security/preloadmodules.xml
Normal file
@ -0,0 +1,18 @@
|
||||
<samba:parameter name="preload modules"
|
||||
context="G"
|
||||
basic="1"
|
||||
xmlns:samba="http://samba.org/common">
|
||||
<listitem>
|
||||
<para>This is a list of paths to modules that should
|
||||
be loaded into smbd before a client connects. This improves
|
||||
the speed of smbd when reacting to new connections somewhat. </para>
|
||||
|
||||
<para>It is recommended to only use this option on heavy-performance
|
||||
servers.</para>
|
||||
|
||||
<para>Default: <command>preload modules = </command></para>
|
||||
|
||||
<para>Example: <command>preload modules = /usr/lib/samba/passdb/mysql.so+++ </command></para>
|
||||
|
||||
</listitem>
|
||||
</samba:parameter>
|
685
docs/docbook/smbdotconf/smb.conf.5.xml
Normal file
685
docs/docbook/smbdotconf/smb.conf.5.xml
Normal file
@ -0,0 +1,685 @@
|
||||
<?xml version="1.0" encoding="iso8859-1"?>
|
||||
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.2//EN"
|
||||
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd" [
|
||||
|
||||
<!ENTITY % globalentities SYSTEM './../global.ent'> %globalentities;
|
||||
]>
|
||||
<refentry id="smb.conf.5">
|
||||
|
||||
<refmeta>
|
||||
<refentrytitle>smb.conf</refentrytitle>
|
||||
<manvolnum>5</manvolnum>
|
||||
</refmeta>
|
||||
|
||||
|
||||
<refnamediv>
|
||||
<refname>smb.conf</refname>
|
||||
<refpurpose>The configuration file for the Samba suite</refpurpose>
|
||||
</refnamediv>
|
||||
|
||||
<refsect1>
|
||||
<title>SYNOPSIS</title>
|
||||
|
||||
<para>The <filename moreinfo="none">smb.conf</filename> file is a configuration
|
||||
file for the Samba suite. <filename moreinfo="none">smb.conf</filename> contains
|
||||
runtime configuration information for the Samba programs. The <filename moreinfo="none">smb.conf</filename> file
|
||||
is designed to be configured and administered by the <citerefentry><refentrytitle>swat</refentrytitle>
|
||||
<manvolnum>8</manvolnum></citerefentry> program. The complete
|
||||
description of the file format and possible parameters held within
|
||||
are here for reference purposes.</para> </refsect1>
|
||||
|
||||
<refsect1 id="FILEFORMATSECT">
|
||||
<title>FILE FORMAT</title>
|
||||
|
||||
<para>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</para>
|
||||
|
||||
<para><replaceable>name</replaceable> = <replaceable>value
|
||||
</replaceable></para>
|
||||
|
||||
<para>The file is line-based - that is, each newline-terminated
|
||||
line represents either a comment, a section name or a parameter.</para>
|
||||
|
||||
<para>Section and parameter names are not case sensitive.</para>
|
||||
|
||||
<para>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.</para>
|
||||
|
||||
<para>Any line beginning with a semicolon (';') or a hash ('#')
|
||||
character is ignored, as are lines containing only whitespace.</para>
|
||||
|
||||
<para>Any line ending in a '\' is continued
|
||||
on the next line in the customary UNIX fashion.</para>
|
||||
|
||||
<para>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.</para>
|
||||
</refsect1>
|
||||
|
||||
<refsect1>
|
||||
<title>SECTION DESCRIPTIONS</title>
|
||||
|
||||
<para>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.</para>
|
||||
|
||||
<para>There are three special sections, [global],
|
||||
[homes] and [printers], which are
|
||||
described under <emphasis>special sections</emphasis>. The
|
||||
following notes apply to ordinary section descriptions.</para>
|
||||
|
||||
<para>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.</para>
|
||||
|
||||
<para>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).</para>
|
||||
|
||||
<para>Sections may be designated <emphasis>guest</emphasis> services,
|
||||
in which case no password is required to access them. A specified
|
||||
UNIX <emphasis>guest account</emphasis> is used to define access
|
||||
privileges in this case.</para>
|
||||
|
||||
<para>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.</para>
|
||||
|
||||
<para>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.</para>
|
||||
|
||||
<para>The following sample section defines a file space share.
|
||||
The user has write access to the path <filename moreinfo="none">/home/bar</filename>.
|
||||
The share is accessed via the share name "foo":</para>
|
||||
|
||||
<screen format="linespecific">
|
||||
<computeroutput moreinfo="none">
|
||||
[foo]
|
||||
path = /home/bar
|
||||
read only = no
|
||||
</computeroutput>
|
||||
</screen>
|
||||
|
||||
<para>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 <emphasis>guest ok</emphasis> parameter means
|
||||
access will be permitted as the default guest user (specified
|
||||
elsewhere):</para>
|
||||
|
||||
<screen format="linespecific">
|
||||
<computeroutput moreinfo="none">
|
||||
[aprinter]
|
||||
path = /usr/spool/public
|
||||
read only = yes
|
||||
printable = yes
|
||||
guest ok = yes
|
||||
</computeroutput>
|
||||
</screen>
|
||||
</refsect1>
|
||||
|
||||
<refsect1>
|
||||
<title>SPECIAL SECTIONS</title>
|
||||
|
||||
<refsect2>
|
||||
<title>The [global] section</title>
|
||||
|
||||
<para>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.</para>
|
||||
</refsect2>
|
||||
|
||||
<refsect2 id="HOMESECT">
|
||||
<title>The [homes] section</title>
|
||||
|
||||
<para>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.</para>
|
||||
|
||||
<para>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.</para>
|
||||
|
||||
<para>Some modifications are then made to the newly
|
||||
created share:</para>
|
||||
|
||||
<itemizedlist>
|
||||
<listitem><para>The share name is changed from homes to
|
||||
the located username.</para></listitem>
|
||||
|
||||
<listitem><para>If no path was given, the path is set to
|
||||
the user's home directory.</para></listitem>
|
||||
</itemizedlist>
|
||||
|
||||
<para>If you decide to use a <emphasis>path =</emphasis> line
|
||||
in your [homes] section then you may find it useful
|
||||
to use the %S macro. For example :</para>
|
||||
|
||||
<para><userinput moreinfo="none">path = /data/pchome/%S</userinput></para>
|
||||
|
||||
<para>would be useful if you have different home directories
|
||||
for your PCs than for UNIX access.</para>
|
||||
|
||||
<para>This is a fast and simple way to give a large number
|
||||
of clients access to their home directories with a minimum
|
||||
of fuss.</para>
|
||||
|
||||
<para>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.</para>
|
||||
|
||||
<para>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:</para>
|
||||
|
||||
<screen format="linespecific">
|
||||
<computeroutput moreinfo="none">
|
||||
[homes]
|
||||
read only = no
|
||||
</computeroutput>
|
||||
</screen>
|
||||
|
||||
<para>An important point is that if guest access is specified
|
||||
in the [homes] section, all home directories will be
|
||||
visible to all clients <emphasis>without a password</emphasis>.
|
||||
In the very unlikely event that this is actually desirable, it
|
||||
would be wise to also specify <emphasis>read only
|
||||
access</emphasis>.</para>
|
||||
|
||||
<para>Note that the <emphasis>browseable</emphasis> 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 <emphasis>browseable = no</emphasis> in
|
||||
the [homes] section will hide the [homes] share but make
|
||||
any auto home directories visible.</para>
|
||||
</refsect2>
|
||||
|
||||
<refsect2 id="PRINTERSSECT">
|
||||
<title>The [printers] section</title>
|
||||
|
||||
<para>This section works like [homes],
|
||||
but for printers.</para>
|
||||
|
||||
<para>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.</para>
|
||||
|
||||
<para>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.</para>
|
||||
|
||||
<para>A few modifications are then made to the newly created
|
||||
share:</para>
|
||||
|
||||
<itemizedlist>
|
||||
<listitem><para>The share name is set to the located printer
|
||||
name</para></listitem>
|
||||
|
||||
<listitem><para>If no printer name was given, the printer name
|
||||
is set to the located printer name</para></listitem>
|
||||
|
||||
<listitem><para>If the share does not permit guest access and
|
||||
no username was given, the username is set to the located
|
||||
printer name.</para></listitem>
|
||||
</itemizedlist>
|
||||
|
||||
<para>Note that the [printers] service MUST be
|
||||
printable - if you specify otherwise, the server will refuse
|
||||
to load the configuration file.</para>
|
||||
|
||||
<para>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:</para>
|
||||
|
||||
<screen format="linespecific"><computeroutput moreinfo="none">
|
||||
[printers]
|
||||
path = /usr/spool/public
|
||||
guest ok = yes
|
||||
printable = yes
|
||||
</computeroutput></screen>
|
||||
|
||||
<para>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:</para>
|
||||
|
||||
<screen format="linespecific">
|
||||
<computeroutput moreinfo="none">
|
||||
alias|alias|alias|alias...
|
||||
</computeroutput>
|
||||
</screen>
|
||||
|
||||
<para>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.</para>
|
||||
|
||||
<para>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 ('|').</para>
|
||||
|
||||
<note><para>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.</para></note>
|
||||
</refsect2>
|
||||
</refsect1>
|
||||
|
||||
<refsect1>
|
||||
<title>PARAMETERS</title>
|
||||
|
||||
<para>parameters define the specific attributes of sections.</para>
|
||||
|
||||
<para>Some parameters are specific to the [global] section
|
||||
(e.g., <emphasis>security</emphasis>). Some parameters are usable
|
||||
in all sections (e.g., <emphasis>create mode</emphasis>). 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 <emphasis>G</emphasis>
|
||||
in parentheses indicates that a parameter is specific to the
|
||||
[global] section. The letter <emphasis>S</emphasis>
|
||||
indicates that a parameter can be specified in a service specific
|
||||
section. Note that all <emphasis>S</emphasis> parameters can also be specified in
|
||||
the [global] section - in which case they will define
|
||||
the default behavior for all services.</para>
|
||||
|
||||
<para>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.</para>
|
||||
</refsect1>
|
||||
|
||||
<refsect1>
|
||||
<title>VARIABLE SUBSTITUTIONS</title>
|
||||
|
||||
<para>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.</para>
|
||||
|
||||
<para>These substitutions are mostly noted in the descriptions below,
|
||||
but there are some general substitutions which apply whenever they
|
||||
might be relevant. These are:</para>
|
||||
|
||||
<variablelist>
|
||||
<varlistentry>
|
||||
<term>%U</term>
|
||||
<listitem><para>session user name (the user name that the client
|
||||
wanted, not necessarily the same as the one they got).</para></listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term>%G</term>
|
||||
<listitem><para>primary group name of %U.</para></listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term>%h</term>
|
||||
<listitem><para>the Internet hostname that Samba is running
|
||||
on.</para></listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term>%m</term>
|
||||
<listitem><para>the NetBIOS name of the client machine
|
||||
(very useful).</para></listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term>%L</term>
|
||||
<listitem><para>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".</para>
|
||||
|
||||
<para>Note that this parameter is not available when Samba listens
|
||||
on port 445, as clients no longer send this information </para>
|
||||
</listitem>
|
||||
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term>%M</term>
|
||||
<listitem><para>the Internet name of the client machine.
|
||||
</para></listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term>%R</term>
|
||||
<listitem><para>the selected protocol level after
|
||||
protocol negotiation. It can be one of CORE, COREPLUS,
|
||||
LANMAN1, LANMAN2 or NT1.</para></listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term>%d</term>
|
||||
<listitem><para>The process id of the current server
|
||||
process.</para></listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term>%a</term>
|
||||
<listitem><para>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 <ulink url="mailto:samba@samba.org">samba@samba.org
|
||||
</ulink> should allow it to be fixed.</para></listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term>%I</term>
|
||||
<listitem><para>The IP address of the client machine.</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term>%T</term>
|
||||
<listitem><para>the current date and time.</para></listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term>%D</term>
|
||||
<listitem><para>Name of the domain or workgroup of the current user.</para></listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term>%$(<replaceable>envvar</replaceable>)</term>
|
||||
<listitem><para>The value of the environment variable
|
||||
<replaceable>envar</replaceable>.</para></listitem>
|
||||
</varlistentry>
|
||||
</variablelist>
|
||||
|
||||
<para>The following substitutes apply only to some configuration options(only those
|
||||
that are used when a connection has been established):</para>
|
||||
|
||||
<variablelist>
|
||||
<varlistentry>
|
||||
<term>%S</term>
|
||||
<listitem><para>the name of the current service, if any.</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term>%P</term>
|
||||
<listitem><para>the root directory of the current service,
|
||||
if any.</para></listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term>%u</term>
|
||||
<listitem><para>user name of the current service, if any.</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term>%g</term>
|
||||
<listitem><para>primary group name of %u.</para></listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term>%H</term>
|
||||
<listitem><para>the home directory of the user given
|
||||
by %u.</para></listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term>%N</term>
|
||||
<listitem><para>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 <emphasis>--with-automount</emphasis>
|
||||
option then this value will be the same as %L.</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term>%p</term>
|
||||
<listitem><para>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".</para></listitem>
|
||||
</varlistentry>
|
||||
</variablelist>
|
||||
|
||||
<para>There are some quite creative things that can be done
|
||||
with these substitutions and other smb.conf options.</para>
|
||||
</refsect1>
|
||||
|
||||
<refsect1 id="NAMEMANGLINGSECT">
|
||||
<title>NAME MANGLING</title>
|
||||
|
||||
<para>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.</para>
|
||||
|
||||
<para>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. </para>
|
||||
|
||||
<para>All of these options can be set separately for each service
|
||||
(or globally, of course). </para>
|
||||
|
||||
<para>The options are: </para>
|
||||
|
||||
<variablelist>
|
||||
|
||||
<varlistentry>
|
||||
<term>mangle case = yes/no</term>
|
||||
<listitem><para> 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 <emphasis>no</emphasis>.</para></listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term>case sensitive = yes/no</term>
|
||||
<listitem><para>controls whether filenames are case sensitive. If
|
||||
they aren't then Samba must do a filename search and match on passed
|
||||
names. Default <emphasis>no</emphasis>.</para></listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term>default case = upper/lower</term>
|
||||
<listitem><para>controls what the default case is for new
|
||||
filenames. Default <emphasis>lower</emphasis>.</para></listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term>preserve case = yes/no</term>
|
||||
<listitem><para>controls if new files are created with the
|
||||
case that the client passes, or if they are forced to be the
|
||||
"default" case. Default <emphasis>yes</emphasis>.
|
||||
</para></listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term>short preserve case = yes/no</term>
|
||||
<listitem><para>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 <emphasis>yes</emphasis>.</para></listitem>
|
||||
</varlistentry>
|
||||
</variablelist>
|
||||
|
||||
<para>By default, Samba 3.0 has the same semantics as a Windows
|
||||
NT server, in that it is case insensitive but case preserving.</para>
|
||||
|
||||
</refsect1>
|
||||
|
||||
<refsect1 id="VALIDATIONSECT">
|
||||
<title>NOTE ABOUT USERNAME/PASSWORD VALIDATION</title>
|
||||
|
||||
<para>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.</para>
|
||||
|
||||
<para>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.</para>
|
||||
|
||||
|
||||
<orderedlist continuation="restarts" inheritnum="ignore" numeration="arabic">
|
||||
<listitem><para>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%<replaceable>username</replaceable> method of passing
|
||||
a username.</para></listitem>
|
||||
|
||||
<listitem><para>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.</para></listitem>
|
||||
|
||||
<listitem><para>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.</para></listitem>
|
||||
|
||||
<listitem><para>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. </para></listitem>
|
||||
|
||||
<listitem><para>If a "user = " field is given in the
|
||||
<filename moreinfo="none">smb.conf</filename> 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.</para></listitem>
|
||||
|
||||
<listitem><para>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.</para></listitem>
|
||||
</orderedlist>
|
||||
|
||||
</refsect1>
|
||||
|
||||
<refsect1>
|
||||
<title>COMPLETE LIST OF GLOBAL PARAMETERS</title>
|
||||
|
||||
<para>Here is a list of all global parameters. See the section of
|
||||
each parameter for details. Note that some are synonyms.</para>
|
||||
|
||||
<xi:include href="parameters.global.xml" parse="xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
|
||||
|
||||
</refsect1>
|
||||
|
||||
<refsect1>
|
||||
<title>COMPLETE LIST OF SERVICE PARAMETERS</title>
|
||||
|
||||
<para>Here is a list of all service parameters. See the section on
|
||||
each parameter for details. Note that some are synonyms.</para>
|
||||
|
||||
<xi:include href="parameters.service.xml" parse="xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
|
||||
|
||||
</refsect1>
|
||||
|
||||
<refsect1>
|
||||
<title>EXPLANATION OF EACH PARAMETER</title>
|
||||
|
||||
<xi:include href="parameters.all.xml" parse="xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
|
||||
|
||||
</refsect1>
|
||||
|
||||
<refsect1>
|
||||
<title>WARNINGS</title>
|
||||
|
||||
<para>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.</para>
|
||||
|
||||
<para>On a similar note, many clients - especially DOS clients -
|
||||
limit service names to eight characters. <citerefentry><refentrytitle>smbd</refentrytitle>
|
||||
<manvolnum>8</manvolnum></citerefentry> 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.</para>
|
||||
|
||||
<para>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.</para>
|
||||
</refsect1>
|
||||
|
||||
<refsect1>
|
||||
<title>VERSION</title>
|
||||
|
||||
<para>This man page is correct for version 3.0 of the Samba suite.</para>
|
||||
</refsect1>
|
||||
|
||||
<refsect1>
|
||||
<title>SEE ALSO</title>
|
||||
<para>
|
||||
<citerefentry><refentrytitle>samba</refentrytitle>
|
||||
<manvolnum>7</manvolnum></citerefentry>, <citerefentry><refentrytitle>smbpasswd</refentrytitle>
|
||||
<manvolnum>8</manvolnum></citerefentry>, <citerefentry><refentrytitle>swat</refentrytitle>
|
||||
<manvolnum>8</manvolnum></citerefentry>, <citerefentry><refentrytitle>smbd</refentrytitle>
|
||||
<manvolnum>8</manvolnum></citerefentry>, <citerefentry><refentrytitle>nmbd</refentrytitle>
|
||||
<manvolnum>8</manvolnum></citerefentry>, <citerefentry><refentrytitle>smbclient</refentrytitle>
|
||||
<manvolnum>1</manvolnum></citerefentry>, <citerefentry><refentrytitle>nmblookup</refentrytitle>
|
||||
<manvolnum>1</manvolnum></citerefentry>, <citerefentry><refentrytitle>testparm</refentrytitle>
|
||||
<manvolnum>1</manvolnum></citerefentry>, <citerefentry><refentrytitle>testprns</refentrytitle>
|
||||
<manvolnum>1</manvolnum></citerefentry>.</para>
|
||||
</refsect1>
|
||||
|
||||
<refsect1>
|
||||
<title>AUTHOR</title>
|
||||
|
||||
<para>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.</para>
|
||||
|
||||
<para>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 <ulink url="ftp://ftp.icce.rug.nl/pub/unix/">
|
||||
ftp://ftp.icce.rug.nl/pub/unix/</ulink>) and updated for the Samba 2.0
|
||||
release by Jeremy Allison. The conversion to DocBook for
|
||||
Samba 2.2 was done by Gerald Carter. The conversion to DocBook XML 4.2
|
||||
for Samba 3.0 was done by Alexander Bokovoy.</para>
|
||||
</refsect1>
|
||||
|
||||
</refentry>
|
633
source/libsmb/cliquota.c
Normal file
633
source/libsmb/cliquota.c
Normal file
@ -0,0 +1,633 @@
|
||||
/*
|
||||
Unix SMB/CIFS implementation.
|
||||
client quota functions
|
||||
Copyright (C) Stefan (metze) Metzmacher 2003
|
||||
|
||||
This program is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation; either version 2 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program; if not, write to the Free Software
|
||||
Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
*/
|
||||
|
||||
#include "includes.h"
|
||||
|
||||
BOOL cli_get_quota_handle(struct cli_state *cli, int *quota_fnum)
|
||||
{
|
||||
*quota_fnum = cli_nt_create_full(cli, FAKE_FILE_NAME_QUOTA,
|
||||
0x00000016, DESIRED_ACCESS_PIPE,
|
||||
0x00000000, FILE_SHARE_READ|FILE_SHARE_WRITE,
|
||||
FILE_OPEN, 0x00000000, 0x03);
|
||||
|
||||
if (*quota_fnum == (-1)) {
|
||||
return False;
|
||||
}
|
||||
|
||||
return True;
|
||||
}
|
||||
|
||||
void free_ntquota_list(SMB_NTQUOTA_LIST **qt_list)
|
||||
{
|
||||
if (!qt_list)
|
||||
return;
|
||||
|
||||
if ((*qt_list)->mem_ctx)
|
||||
talloc_destroy((*qt_list)->mem_ctx);
|
||||
|
||||
(*qt_list) = NULL;
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
static BOOL parse_user_quota_record(const char *rdata, unsigned int rdata_count, unsigned int *offset, SMB_NTQUOTA_STRUCT *pqt)
|
||||
{
|
||||
int sid_len;
|
||||
SMB_NTQUOTA_STRUCT qt;
|
||||
|
||||
ZERO_STRUCT(qt);
|
||||
|
||||
if (!rdata||!offset||!pqt)
|
||||
smb_panic("parse_quota_record: called with NULL POINTER!\n");
|
||||
|
||||
if (rdata_count < 40) {
|
||||
return False;
|
||||
}
|
||||
|
||||
/* offset to next quota record.
|
||||
* 4 bytes IVAL(rdata,0)
|
||||
* unused here...
|
||||
*/
|
||||
*offset = IVAL(rdata,0);
|
||||
|
||||
/* sid len */
|
||||
sid_len = IVAL(rdata,4);
|
||||
|
||||
if (rdata_count < 40+sid_len) {
|
||||
return False;
|
||||
}
|
||||
|
||||
/* unknown 8 bytes in pdata
|
||||
* maybe its the change time in NTTIME
|
||||
*/
|
||||
|
||||
/* the used space 8 bytes (SMB_BIG_UINT)*/
|
||||
qt.usedspace = (SMB_BIG_UINT)IVAL(rdata,16);
|
||||
#ifdef LARGE_SMB_OFF_T
|
||||
qt.usedspace |= (((SMB_BIG_UINT)IVAL(rdata,20)) << 32);
|
||||
#else /* LARGE_SMB_OFF_T */
|
||||
if ((IVAL(rdata,20) != 0)&&
|
||||
((qt.usedspace != 0xFFFFFFFF)||
|
||||
(IVAL(rdata,20)!=0xFFFFFFFF))) {
|
||||
/* more than 32 bits? */
|
||||
return False;
|
||||
}
|
||||
#endif /* LARGE_SMB_OFF_T */
|
||||
|
||||
/* the soft quotas 8 bytes (SMB_BIG_UINT)*/
|
||||
qt.softlim = (SMB_BIG_UINT)IVAL(rdata,24);
|
||||
#ifdef LARGE_SMB_OFF_T
|
||||
qt.softlim |= (((SMB_BIG_UINT)IVAL(rdata,28)) << 32);
|
||||
#else /* LARGE_SMB_OFF_T */
|
||||
if ((IVAL(rdata,28) != 0)&&
|
||||
((qt.softlim != 0xFFFFFFFF)||
|
||||
(IVAL(rdata,28)!=0xFFFFFFFF))) {
|
||||
/* more than 32 bits? */
|
||||
return False;
|
||||
}
|
||||
#endif /* LARGE_SMB_OFF_T */
|
||||
|
||||
/* the hard quotas 8 bytes (SMB_BIG_UINT)*/
|
||||
qt.hardlim = (SMB_BIG_UINT)IVAL(rdata,32);
|
||||
#ifdef LARGE_SMB_OFF_T
|
||||
qt.hardlim |= (((SMB_BIG_UINT)IVAL(rdata,36)) << 32);
|
||||
#else /* LARGE_SMB_OFF_T */
|
||||
if ((IVAL(rdata,36) != 0)&&
|
||||
((qt.hardlim != 0xFFFFFFFF)||
|
||||
(IVAL(rdata,36)!=0xFFFFFFFF))) {
|
||||
/* more than 32 bits? */
|
||||
return False;
|
||||
}
|
||||
#endif /* LARGE_SMB_OFF_T */
|
||||
|
||||
sid_parse(rdata+40,sid_len,&qt.sid);
|
||||
|
||||
qt.qtype = SMB_USER_QUOTA_TYPE;
|
||||
|
||||
*pqt = qt;
|
||||
|
||||
return True;
|
||||
}
|
||||
|
||||
BOOL cli_get_user_quota(struct cli_state *cli, int quota_fnum, SMB_NTQUOTA_STRUCT *pqt)
|
||||
{
|
||||
BOOL ret = False;
|
||||
uint16 setup;
|
||||
char params[16];
|
||||
unsigned int data_len;
|
||||
char data[SID_MAX_SIZE+8];
|
||||
char *rparam=NULL, *rdata=NULL;
|
||||
unsigned int rparam_count=0, rdata_count=0;
|
||||
unsigned int sid_len;
|
||||
unsigned int offset;
|
||||
|
||||
if (!cli||!pqt)
|
||||
smb_panic("cli_get_user_quota() called with NULL Pointer!");
|
||||
|
||||
setup = NT_TRANSACT_GET_USER_QUOTA;
|
||||
|
||||
SSVAL(params, 0,quota_fnum);
|
||||
SSVAL(params, 2,TRANSACT_GET_USER_QUOTA_FOR_SID);
|
||||
SIVAL(params, 4,0x00000024);
|
||||
SIVAL(params, 8,0x00000000);
|
||||
SIVAL(params,12,0x00000024);
|
||||
|
||||
sid_len = sid_size(&pqt->sid);
|
||||
data_len = sid_len+8;
|
||||
SIVAL(data, 0, 0x00000000);
|
||||
SIVAL(data, 4, sid_len);
|
||||
sid_linearize(data+8, sid_len, &pqt->sid);
|
||||
|
||||
if (!cli_send_nt_trans(cli,
|
||||
NT_TRANSACT_GET_USER_QUOTA,
|
||||
0,
|
||||
&setup, 1, 0,
|
||||
params, 16, 4,
|
||||
data, data_len, 112)) {
|
||||
DEBUG(1,("Failed to send NT_TRANSACT_GET_USER_QUOTA\n"));
|
||||
goto cleanup;
|
||||
}
|
||||
|
||||
|
||||
if (!cli_receive_nt_trans(cli,
|
||||
&rparam, &rparam_count,
|
||||
&rdata, &rdata_count)) {
|
||||
DEBUG(1,("Failed to recv NT_TRANSACT_GET_USER_QUOTA\n"));
|
||||
goto cleanup;
|
||||
}
|
||||
|
||||
if (cli_is_error(cli)) {
|
||||
ret = False;
|
||||
goto cleanup;
|
||||
} else {
|
||||
ret = True;
|
||||
}
|
||||
|
||||
if ((rparam&&rdata)&&(rparam_count>=4&&rdata_count>=8)) {
|
||||
ret = parse_user_quota_record(rdata, rdata_count, &offset, pqt);
|
||||
} else {
|
||||
DEBUG(0,("Got INVALID NT_TRANSACT_GET_USER_QUOTA reply.\n"));
|
||||
ret = False;
|
||||
}
|
||||
|
||||
cleanup:
|
||||
SAFE_FREE(rparam);
|
||||
SAFE_FREE(rdata);
|
||||
return ret;
|
||||
}
|
||||
|
||||
BOOL cli_set_user_quota(struct cli_state *cli, int quota_fnum, SMB_NTQUOTA_STRUCT *pqt)
|
||||
{
|
||||
BOOL ret = False;
|
||||
uint16 setup;
|
||||
char params[2];
|
||||
char data[112];
|
||||
char *rparam=NULL, *rdata=NULL;
|
||||
unsigned int rparam_count=0, rdata_count=0;
|
||||
unsigned int sid_len;
|
||||
memset(data,'\0',112);
|
||||
|
||||
if (!cli||!pqt)
|
||||
smb_panic("cli_set_user_quota() called with NULL Pointer!");
|
||||
|
||||
setup = NT_TRANSACT_SET_USER_QUOTA;
|
||||
|
||||
SSVAL(params,0,quota_fnum);
|
||||
|
||||
sid_len = sid_size(&pqt->sid);
|
||||
SIVAL(data,0,0);
|
||||
SIVAL(data,4,sid_len);
|
||||
SBIG_UINT(data, 8,(SMB_BIG_UINT)0);
|
||||
SBIG_UINT(data,16,pqt->usedspace);
|
||||
SBIG_UINT(data,24,pqt->softlim);
|
||||
SBIG_UINT(data,32,pqt->hardlim);
|
||||
sid_linearize(data+40, sid_len, &pqt->sid);
|
||||
|
||||
if (!cli_send_nt_trans(cli,
|
||||
NT_TRANSACT_SET_USER_QUOTA,
|
||||
0,
|
||||
&setup, 1, 0,
|
||||
params, 2, 0,
|
||||
data, 112, 0)) {
|
||||
DEBUG(1,("Failed to send NT_TRANSACT_SET_USER_QUOTA\n"));
|
||||
goto cleanup;
|
||||
}
|
||||
|
||||
|
||||
if (!cli_receive_nt_trans(cli,
|
||||
&rparam, &rparam_count,
|
||||
&rdata, &rdata_count)) {
|
||||
DEBUG(1,("NT_TRANSACT_SET_USER_QUOTA failed\n"));
|
||||
goto cleanup;
|
||||
}
|
||||
|
||||
if (cli_is_error(cli)) {
|
||||
ret = False;
|
||||
goto cleanup;
|
||||
} else {
|
||||
ret = True;
|
||||
}
|
||||
|
||||
cleanup:
|
||||
SAFE_FREE(rparam);
|
||||
SAFE_FREE(rdata);
|
||||
return ret;
|
||||
}
|
||||
|
||||
BOOL cli_list_user_quota(struct cli_state *cli, int quota_fnum, SMB_NTQUOTA_LIST **pqt_list)
|
||||
{
|
||||
BOOL ret = False;
|
||||
uint16 setup;
|
||||
char params[16];
|
||||
char *rparam=NULL, *rdata=NULL;
|
||||
unsigned int rparam_count=0, rdata_count=0;
|
||||
unsigned int offset;
|
||||
const char *curdata = NULL;
|
||||
unsigned int curdata_count = 0;
|
||||
TALLOC_CTX *mem_ctx = NULL;
|
||||
SMB_NTQUOTA_STRUCT qt;
|
||||
SMB_NTQUOTA_LIST *tmp_list_ent;
|
||||
|
||||
if (!cli||!pqt_list)
|
||||
smb_panic("cli_list_user_quota() called with NULL Pointer!");
|
||||
|
||||
setup = NT_TRANSACT_GET_USER_QUOTA;
|
||||
|
||||
SSVAL(params, 0,quota_fnum);
|
||||
SSVAL(params, 2,TRANSACT_GET_USER_QUOTA_LIST_START);
|
||||
SIVAL(params, 4,0x00000000);
|
||||
SIVAL(params, 8,0x00000000);
|
||||
SIVAL(params,12,0x00000000);
|
||||
|
||||
if (!cli_send_nt_trans(cli,
|
||||
NT_TRANSACT_GET_USER_QUOTA,
|
||||
0,
|
||||
&setup, 1, 0,
|
||||
params, 16, 4,
|
||||
NULL, 0, 2048)) {
|
||||
DEBUG(1,("Failed to send NT_TRANSACT_GET_USER_QUOTA\n"));
|
||||
goto cleanup;
|
||||
}
|
||||
|
||||
|
||||
if (!cli_receive_nt_trans(cli,
|
||||
&rparam, &rparam_count,
|
||||
&rdata, &rdata_count)) {
|
||||
DEBUG(1,("Failed to recv NT_TRANSACT_GET_USER_QUOTA\n"));
|
||||
goto cleanup;
|
||||
}
|
||||
|
||||
if (cli_is_error(cli)) {
|
||||
ret = False;
|
||||
goto cleanup;
|
||||
} else {
|
||||
ret = True;
|
||||
}
|
||||
|
||||
if (rdata_count == 0) {
|
||||
*pqt_list = NULL;
|
||||
return True;
|
||||
}
|
||||
|
||||
if ((mem_ctx=talloc_init("SMB_USER_QUOTA_LIST"))==NULL) {
|
||||
DEBUG(0,("talloc_init() failed\n"));
|
||||
return (-1);
|
||||
}
|
||||
|
||||
offset = 1;
|
||||
for (curdata=rdata,curdata_count=rdata_count;
|
||||
((curdata)&&(curdata_count>=8)&&(offset>0));
|
||||
curdata +=offset,curdata_count -= offset) {
|
||||
ZERO_STRUCT(qt);
|
||||
if (!parse_user_quota_record(curdata, curdata_count, &offset, &qt)) {
|
||||
DEBUG(1,("Failed to parse the quota record\n"));
|
||||
goto cleanup;
|
||||
}
|
||||
|
||||
if ((tmp_list_ent=(SMB_NTQUOTA_LIST *)talloc_zero(mem_ctx,sizeof(SMB_NTQUOTA_LIST)))==NULL) {
|
||||
DEBUG(0,("talloc_zero() failed\n"));
|
||||
return (-1);
|
||||
}
|
||||
|
||||
if ((tmp_list_ent->quotas=(SMB_NTQUOTA_STRUCT *)talloc_zero(mem_ctx,sizeof(SMB_NTQUOTA_STRUCT)))==NULL) {
|
||||
DEBUG(0,("talloc_zero() failed\n"));
|
||||
return (-1);
|
||||
}
|
||||
|
||||
memcpy(tmp_list_ent->quotas,&qt,sizeof(qt));
|
||||
tmp_list_ent->mem_ctx = mem_ctx;
|
||||
|
||||
DLIST_ADD((*pqt_list),tmp_list_ent);
|
||||
}
|
||||
|
||||
SSVAL(params, 2,TRANSACT_GET_USER_QUOTA_LIST_CONTINUE);
|
||||
while(1) {
|
||||
if (!cli_send_nt_trans(cli,
|
||||
NT_TRANSACT_GET_USER_QUOTA,
|
||||
0,
|
||||
&setup, 1, 0,
|
||||
params, 16, 4,
|
||||
NULL, 0, 2048)) {
|
||||
DEBUG(1,("Failed to send NT_TRANSACT_GET_USER_QUOTA\n"));
|
||||
goto cleanup;
|
||||
}
|
||||
|
||||
SAFE_FREE(rparam);
|
||||
SAFE_FREE(rdata);
|
||||
if (!cli_receive_nt_trans(cli,
|
||||
&rparam, &rparam_count,
|
||||
&rdata, &rdata_count)) {
|
||||
DEBUG(1,("Failed to recv NT_TRANSACT_GET_USER_QUOTA\n"));
|
||||
goto cleanup;
|
||||
}
|
||||
|
||||
if (cli_is_error(cli)) {
|
||||
ret = False;
|
||||
goto cleanup;
|
||||
} else {
|
||||
ret = True;
|
||||
}
|
||||
|
||||
if (rdata_count == 0) {
|
||||
break;
|
||||
}
|
||||
|
||||
offset = 1;
|
||||
for (curdata=rdata,curdata_count=rdata_count;
|
||||
((curdata)&&(curdata_count>=8)&&(offset>0));
|
||||
curdata +=offset,curdata_count -= offset) {
|
||||
ZERO_STRUCT(qt);
|
||||
if (!parse_user_quota_record(curdata, curdata_count, &offset, &qt)) {
|
||||
DEBUG(1,("Failed to parse the quota record\n"));
|
||||
goto cleanup;
|
||||
}
|
||||
|
||||
if ((tmp_list_ent=(SMB_NTQUOTA_LIST *)talloc_zero(mem_ctx,sizeof(SMB_NTQUOTA_LIST)))==NULL) {
|
||||
DEBUG(0,("talloc_zero() failed\n"));
|
||||
talloc_destroy(mem_ctx);
|
||||
goto cleanup;
|
||||
}
|
||||
|
||||
if ((tmp_list_ent->quotas=(SMB_NTQUOTA_STRUCT *)talloc_zero(mem_ctx,sizeof(SMB_NTQUOTA_STRUCT)))==NULL) {
|
||||
DEBUG(0,("talloc_zero() failed\n"));
|
||||
talloc_destroy(mem_ctx);
|
||||
goto cleanup;
|
||||
}
|
||||
|
||||
memcpy(tmp_list_ent->quotas,&qt,sizeof(qt));
|
||||
tmp_list_ent->mem_ctx = mem_ctx;
|
||||
|
||||
DLIST_ADD((*pqt_list),tmp_list_ent);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
ret = True;
|
||||
cleanup:
|
||||
SAFE_FREE(rparam);
|
||||
SAFE_FREE(rdata);
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
BOOL cli_get_fs_quota_info(struct cli_state *cli, int quota_fnum, SMB_NTQUOTA_STRUCT *pqt)
|
||||
{
|
||||
BOOL ret = False;
|
||||
uint16 setup;
|
||||
char param[2];
|
||||
char *rparam=NULL, *rdata=NULL;
|
||||
unsigned int rparam_count=0, rdata_count=0;
|
||||
SMB_NTQUOTA_STRUCT qt;
|
||||
ZERO_STRUCT(qt);
|
||||
|
||||
if (!cli||!pqt)
|
||||
smb_panic("cli_get_fs_quota_info() called with NULL Pointer!");
|
||||
|
||||
setup = TRANSACT2_QFSINFO;
|
||||
|
||||
SSVAL(param,0,SMB_FS_QUOTA_INFORMATION);
|
||||
|
||||
if (!cli_send_trans(cli, SMBtrans2,
|
||||
NULL,
|
||||
0, 0,
|
||||
&setup, 1, 0,
|
||||
param, 2, 0,
|
||||
NULL, 0, 560)) {
|
||||
goto cleanup;
|
||||
}
|
||||
|
||||
if (!cli_receive_trans(cli, SMBtrans2,
|
||||
&rparam, &rparam_count,
|
||||
&rdata, &rdata_count)) {
|
||||
goto cleanup;
|
||||
}
|
||||
|
||||
if (cli_is_error(cli)) {
|
||||
ret = False;
|
||||
goto cleanup;
|
||||
} else {
|
||||
ret = True;
|
||||
}
|
||||
|
||||
if (rdata_count < 48) {
|
||||
goto cleanup;
|
||||
}
|
||||
|
||||
/* unknown_1 24 NULL bytes in pdata*/
|
||||
|
||||
/* the soft quotas 8 bytes (SMB_BIG_UINT)*/
|
||||
qt.softlim = (SMB_BIG_UINT)IVAL(rdata,24);
|
||||
#ifdef LARGE_SMB_OFF_T
|
||||
qt.softlim |= (((SMB_BIG_UINT)IVAL(rdata,28)) << 32);
|
||||
#else /* LARGE_SMB_OFF_T */
|
||||
if ((IVAL(rdata,28) != 0)&&
|
||||
((qt.softlim != 0xFFFFFFFF)||
|
||||
(IVAL(rdata,28)!=0xFFFFFFFF))) {
|
||||
/* more than 32 bits? */
|
||||
goto cleanup;
|
||||
}
|
||||
#endif /* LARGE_SMB_OFF_T */
|
||||
|
||||
/* the hard quotas 8 bytes (SMB_BIG_UINT)*/
|
||||
qt.hardlim = (SMB_BIG_UINT)IVAL(rdata,32);
|
||||
#ifdef LARGE_SMB_OFF_T
|
||||
qt.hardlim |= (((SMB_BIG_UINT)IVAL(rdata,36)) << 32);
|
||||
#else /* LARGE_SMB_OFF_T */
|
||||
if ((IVAL(rdata,36) != 0)&&
|
||||
((qt.hardlim != 0xFFFFFFFF)||
|
||||
(IVAL(rdata,36)!=0xFFFFFFFF))) {
|
||||
/* more than 32 bits? */
|
||||
goto cleanup;
|
||||
}
|
||||
#endif /* LARGE_SMB_OFF_T */
|
||||
|
||||
/* quota_flags 2 bytes **/
|
||||
qt.qflags = SVAL(rdata,40);
|
||||
|
||||
qt.qtype = SMB_USER_FS_QUOTA_TYPE;
|
||||
|
||||
*pqt = qt;
|
||||
|
||||
ret = True;
|
||||
cleanup:
|
||||
SAFE_FREE(rparam);
|
||||
SAFE_FREE(rdata);
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
BOOL cli_set_fs_quota_info(struct cli_state *cli, int quota_fnum, SMB_NTQUOTA_STRUCT *pqt)
|
||||
{
|
||||
BOOL ret = False;
|
||||
uint16 setup;
|
||||
char param[4];
|
||||
char data[48];
|
||||
char *rparam=NULL, *rdata=NULL;
|
||||
unsigned int rparam_count=0, rdata_count=0;
|
||||
SMB_NTQUOTA_STRUCT qt;
|
||||
ZERO_STRUCT(qt);
|
||||
memset(data,'\0',48);
|
||||
|
||||
if (!cli||!pqt)
|
||||
smb_panic("cli_set_fs_quota_info() called with NULL Pointer!");
|
||||
|
||||
setup = TRANSACT2_SETFSINFO;
|
||||
|
||||
SSVAL(param,0,quota_fnum);
|
||||
SSVAL(param,2,SMB_FS_QUOTA_INFORMATION);
|
||||
|
||||
/* Unknown1 24 NULL bytes*/
|
||||
|
||||
/* Default Soft Quota 8 bytes */
|
||||
SBIG_UINT(data,24,pqt->softlim);
|
||||
|
||||
/* Default Hard Quota 8 bytes */
|
||||
SBIG_UINT(data,32,pqt->hardlim);
|
||||
|
||||
/* Quota flag 2 bytes */
|
||||
SSVAL(data,40,pqt->qflags);
|
||||
|
||||
/* Unknown3 6 NULL bytes */
|
||||
|
||||
if (!cli_send_trans(cli, SMBtrans2,
|
||||
NULL,
|
||||
0, 0,
|
||||
&setup, 1, 0,
|
||||
param, 4, 0,
|
||||
data, 48, 0)) {
|
||||
goto cleanup;
|
||||
}
|
||||
|
||||
if (!cli_receive_trans(cli, SMBtrans2,
|
||||
&rparam, &rparam_count,
|
||||
&rdata, &rdata_count)) {
|
||||
goto cleanup;
|
||||
}
|
||||
|
||||
if (cli_is_error(cli)) {
|
||||
ret = False;
|
||||
goto cleanup;
|
||||
} else {
|
||||
ret = True;
|
||||
}
|
||||
|
||||
cleanup:
|
||||
SAFE_FREE(rparam);
|
||||
SAFE_FREE(rdata);
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
static char *quota_str_static(SMB_BIG_UINT val, BOOL special, BOOL _numeric)
|
||||
{
|
||||
static fstring buffer;
|
||||
|
||||
memset(buffer,'\0',sizeof(buffer));
|
||||
|
||||
if (!_numeric&&special&&(val == SMB_NTQUOTAS_NO_LIMIT)) {
|
||||
fstr_sprintf(buffer,"NO LIMIT");
|
||||
return buffer;
|
||||
}
|
||||
#if defined(HAVE_LONGLONG)
|
||||
fstr_sprintf(buffer,"%llu",val);
|
||||
#else
|
||||
fstr_sprintf(buffer,"%lu",val);
|
||||
#endif
|
||||
return buffer;
|
||||
}
|
||||
|
||||
void dump_ntquota(SMB_NTQUOTA_STRUCT *qt, BOOL _verbose, BOOL _numeric, void (*_sidtostring)(fstring str, DOM_SID *sid, BOOL _numeric))
|
||||
{
|
||||
if (!qt)
|
||||
smb_panic("dump_ntquota() called with NULL pointer");
|
||||
|
||||
switch (qt->qtype) {
|
||||
case SMB_USER_FS_QUOTA_TYPE:
|
||||
{
|
||||
d_printf("File System QUOTAS:\n");
|
||||
d_printf("Limits:\n");
|
||||
d_printf(" Default Soft Limit: %15s\n",quota_str_static(qt->softlim,True,_numeric));
|
||||
d_printf(" Default Hard Limit: %15s\n",quota_str_static(qt->hardlim,True,_numeric));
|
||||
d_printf("Quota Flags:\n");
|
||||
d_printf(" Quotas Enabled: %s\n",
|
||||
((qt->qflags"AS_ENABLED)||(qt->qflags"AS_DENY_DISK))?"On":"Off");
|
||||
d_printf(" Deny Disk: %s\n",(qt->qflags"AS_DENY_DISK)?"On":"Off");
|
||||
d_printf(" Log Soft Limit: %s\n",(qt->qflags"AS_LOG_THRESHOLD)?"On":"Off");
|
||||
d_printf(" Log Hard Limit: %s\n",(qt->qflags"AS_LOG_LIMIT)?"On":"Off");
|
||||
}
|
||||
break;
|
||||
case SMB_USER_QUOTA_TYPE:
|
||||
{
|
||||
fstring username_str = {0};
|
||||
|
||||
if (_sidtostring) {
|
||||
_sidtostring(username_str,&qt->sid,_numeric);
|
||||
} else {
|
||||
fstrcpy(username_str,sid_string_static(&qt->sid));
|
||||
}
|
||||
|
||||
if (_verbose) {
|
||||
d_printf("Quotas for User: %s\n",username_str);
|
||||
d_printf("Used Space: %15s\n",quota_str_static(qt->usedspace,False,_numeric));
|
||||
d_printf("Soft Limit: %15s\n",quota_str_static(qt->softlim,True,_numeric));
|
||||
d_printf("Hard Limit: %15s\n",quota_str_static(qt->hardlim,True,_numeric));
|
||||
} else {
|
||||
d_printf("%-30s: ",username_str);
|
||||
d_printf("%15s/",quota_str_static(qt->usedspace,False,_numeric));
|
||||
d_printf("%15s/",quota_str_static(qt->softlim,True,_numeric));
|
||||
d_printf("%15s\n",quota_str_static(qt->hardlim,True,_numeric));
|
||||
}
|
||||
}
|
||||
break;
|
||||
default:
|
||||
d_printf("dump_ntquota() invalid qtype(%d)\n",qt->qtype);
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
void dump_ntquota_list(SMB_NTQUOTA_LIST **qtl, BOOL _verbose, BOOL _numeric, void (*_sidtostring)(fstring str, DOM_SID *sid, BOOL _numeric))
|
||||
{
|
||||
SMB_NTQUOTA_LIST *cur;
|
||||
|
||||
for (cur = *qtl;cur;cur = cur->next) {
|
||||
if (cur->quotas)
|
||||
dump_ntquota(cur->quotas,_verbose,_numeric,_sidtostring);
|
||||
}
|
||||
}
|
41
source/stf/sambalib.py
Normal file
41
source/stf/sambalib.py
Normal file
@ -0,0 +1,41 @@
|
||||
#! /usr/bin/python
|
||||
|
||||
# Comfychair test cases for Samba string functions.
|
||||
|
||||
# Copyright (C) 2003 by Martin Pool <mbp@samba.org>
|
||||
#
|
||||
# This program is free software; you can redistribute it and/or
|
||||
# modify it under the terms of the GNU General Public License as
|
||||
# published by the Free Software Foundation; either version 2 of the
|
||||
# License, or (at your option) any later version.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful, but
|
||||
# WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
# General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with this program; if not, write to the Free Software
|
||||
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
|
||||
# USA
|
||||
|
||||
"""Tests for Samba library functions."""
|
||||
|
||||
import sys, re, comfychair
|
||||
from unicodenames import *
|
||||
|
||||
class snprintf_Test(comfychair.TestCase):
|
||||
def runtest(self):
|
||||
# Everything is built in to the test
|
||||
out, err = self.runcmd('t_snprintf')
|
||||
|
||||
# Define the tests exported by this module
|
||||
tests = [snprintf_Test]
|
||||
|
||||
# Handle execution of this file as a main program
|
||||
if __name__ == '__main__':
|
||||
comfychair.main(tests)
|
||||
|
||||
# Local variables:
|
||||
# coding: utf-8
|
||||
# End:
|
Loading…
x
Reference in New Issue
Block a user