glfs/networking/netprogs/samba.xml
2024-02-20 20:03:44 -06:00

1405 lines
48 KiB
XML

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
<!ENTITY % general-entities SYSTEM "../../general.ent">
%general-entities;
<!ENTITY samba-download-http "https://download.samba.org/pub/samba/stable/samba-&samba-version;.tar.gz">
<!ENTITY samba-download-ftp " ">
<!ENTITY samba-md5sum "123979dc044d747be56393dcb455454e">
<!ENTITY samba-size "40 MB">
<!ENTITY samba-buildsize "610 MB (add 64 MB for quicktest)">
<!ENTITY samba-time "2.1 SBU (using parallelism=4; add 0.4 SBU for quicktest)">
]>
<sect1 id="samba" xreflabel="Samba-&samba-version;">
<?dbhtml filename="samba.html"?>
<title>Samba-&samba-version;</title>
<indexterm zone="samba">
<primary sortas="a-Samba">Samba</primary>
</indexterm>
<sect2 role="package">
<title>Introduction to Samba</title>
<para>
The <application>Samba</application> package provides file and print
services to SMB/CIFS clients and Windows networking to Linux clients.
<application>Samba</application> can also be configured as a Windows
Domain Controller replacement, a file/print server acting as a member
of a Windows Active Directory domain and a NetBIOS (RFC1001/1002)
nameserver (which among other things provides LAN browsing support).
</para>
&lfs121_checked;
<bridgehead renderas="sect3">Package Information</bridgehead>
<itemizedlist spacing="compact">
<listitem>
<para>
Download (HTTP): <ulink url="&samba-download-http;"/>
</para>
</listitem>
<listitem>
<para>
Download (FTP): <ulink url="&samba-download-ftp;"/>
</para>
</listitem>
<listitem>
<para>
Download MD5 sum: &samba-md5sum;
</para>
</listitem>
<listitem>
<para>
Download size: &samba-size;
</para>
</listitem>
<listitem>
<para>
Estimated disk space required: &samba-buildsize;
</para>
</listitem>
<listitem>
<para>
Estimated build time: &samba-time;
</para>
</listitem>
</itemizedlist>
<bridgehead renderas="sect3">Samba Dependencies</bridgehead>
<bridgehead renderas="sect4">Required</bridgehead>
<para role="required">
<xref linkend="gnutls"/>,
<xref linkend="jansson"/>,
<xref linkend="perl-json"/>,
<xref linkend="libtirpc"/>,
<xref linkend="perl-parse-yapp"/>, and
<xref linkend="rpcsvc-proto"/>
</para>
<bridgehead renderas="sect4">Recommended</bridgehead>
<para role="recommended">
<phrase revision="sysv"><xref linkend="dbus"/> (for vfs_snapper, which is
useful on systems that support Volume Shadow Copies on Windows),</phrase>
<xref linkend="fuse3"/>,
<xref linkend="gpgme"/>,
<xref linkend="icu"/>,
<xref linkend="libtasn1"/>,
<xref linkend="libxslt"/> (for documentation),
<xref linkend="linux-pam"/>, and
<xref linkend="openldap"/>
</para>
<bridgehead renderas="sect4">Optional</bridgehead>
<para role="optional">
<xref linkend="avahi"/>,
<xref linkend="bind"/>,
<xref linkend="cups"/>,
<xref linkend="cyrus-sasl"/>,
<xref linkend="gdb"/>,
<xref linkend="git"/>,
<xref linkend="gnupg2"/> (required for ADS and the test suite),
<xref linkend="libaio"/>,
<xref linkend="libarchive"/> (for tar in smbclient),
<xref linkend="libcap-pam"/>,
<xref linkend="libgcrypt"/>,
<xref linkend="libnsl"/>,
<xref linkend="libunwind"/>,
<xref linkend="lmdb"/>,
<xref linkend="markdown"/>,
<xref linkend="mitkrb"/>,
<xref linkend="nss"/>,
<xref linkend="popt"/>,
<xref linkend="talloc"/> (included),
<xref linkend="vala"/>,
<xref linkend="valgrind"/> (optionally used by the test suite),
<xref linkend="xfsprogs"/>,
<ulink url="https://cmocka.org/">cmocka</ulink>,
<ulink url="https://cryptography.io/en/latest/">cryptography</ulink>,
<ulink url="https://ctdb.samba.org/">ctdb</ulink> (included),
<ulink url="https://cwrap.org/">cwrap</ulink>,
<ulink url="&pypi;/dnspython/">dnspython</ulink>,
<ulink url="https://packages.debian.org/bullseye/fam">FAM</ulink>,
<ulink url="https://packages.debian.org/sid/gamin">Gamin</ulink>,
<ulink url="https://www.gluster.org/">GlusterFS</ulink>,
<ulink url="https://github.com/heimdal/">Heimdal</ulink> (included),
<ulink url="https://pypi.org/project/iso8601/">iso8601</ulink>,
<ulink url="https://ldb.samba.org/">ldb</ulink> (included),
<ulink url="https://www.openafs.org/">OpenAFS</ulink>,
<ulink url="https://github.com/python-poetry/poetry-core">poetry-core (required for ADS)</ulink>,
<ulink url="https://pypi.org/project/pyasn1/">pyasn1</ulink>,
<ulink url="https://tevent.samba.org/">tevent</ulink> (included),
<ulink url="https://tdb.samba.org/">tdb</ulink> (included), and
<ulink url="https://download.gnome.org/sources/tracker/2.3/">tracker-2</ulink>
</para>
<bridgehead renderas="sect4">Optional (for the Developer Test Suite)</bridgehead>
<para role="optional">
Install in listed order:
<xref linkend="six"/>,
<xref linkend="pytest"/>,
<ulink url="&pypi;/argparse/">argparse</ulink>,
<ulink url="&pypi;/testtools/">testtools</ulink>,
<ulink url="&pypi;/testscenarios/">testscenarios</ulink>, and
<ulink url="&pypi;/python-subunit/">python-subunit</ulink>
</para>
<para condition="html" role="usernotes">Editor Notes:
<ulink url="&blfs-wiki;/samba4"/></para>
</sect2>
<sect2 role="installation">
<title>Installation of Samba</title>
<para>
To support the test suite, set up a Python virtual environment
for some Python modules out of the scope of BLFS:
</para>
<screen><userinput remap="pre">python3 -m venv pyvenv &amp;&amp;
./pyvenv/bin/pip3 install cryptography pyasn1 iso8601</userinput></screen>
<para>
Install <application>Samba</application> by running the following
commands:
</para>
<screen revision="sysv"><userinput>PYTHON=$PWD/pyvenv/bin/python3 \
PATH=$PWD/pyvenv/bin:$PATH \
./configure \
--prefix=/usr \
--sysconfdir=/etc \
--localstatedir=/var \
--with-piddir=/run/samba \
--with-pammodulesdir=/usr/lib/security \
--enable-fhs \
--without-ad-dc \
--without-systemd \
--enable-selftest &amp;&amp;
make</userinput></screen>
<screen revision="systemd"><userinput>PYTHON=$PWD/pyvenv/bin/python3 \
./configure \
--prefix=/usr \
--sysconfdir=/etc \
--localstatedir=/var \
--with-piddir=/run/samba \
--with-pammodulesdir=/usr/lib/security \
--enable-fhs \
--without-ad-dc \
--enable-selftest &amp;&amp;
make</userinput></screen>
<para>
To test the results, issue:
<command>PATH=$PWD/pyvenv/bin:$PATH make quicktest</command>. The test
suite will produce lines that look like failures, but these are innocuous.
The last few lines of output should report <emphasis>"ALL OK"</emphasis>
for a good test run. A summary of any failures can be found in
<filename class="directory">./st/summary</filename>.
</para>
<!--
If doing a security update or a new minor version (point releases do not
apply here), run 'make testenv' before running 'make test' and 'make
subunit-test'. This will set up the test environment and make the tests
run faster, as well as point out any glaring issues that might affect
the new Samba installation. With 4.10.4, I got 236 failures, 73 errors,
and 2 unexpected successes. These were all known upstream, and you can
find them in the knownfail list in their git repo. This is per
Upstream's recommendation over IRC.
-->
<note>
<para>
Additionally, developer test suites are available. If you've installed
the optional python modules above in the Python virtual environment
for building this package, you can run these tests with
<command>make test</command>. It is not recommended for the average
builder at around 290 SBU and over a gigabyte of disk space, and you
should expect ~73 errors and ~30 failures from the 3000+ tests.
</para>
</note>
<para>
Fix hard coded paths to Python 3 interpreter:
</para>
<screen><userinput>sed '1s@^.*$@#!/usr/bin/python3@' \
-i ./bin/default/source4/scripting/bin/*.inst</userinput></screen>
<para>
If upgrading from an old version of samba, as the
<systemitem class="username">root</systemitem> user, remove the old
Python support files to prevent some issues:
</para>
<screen role="root"><userinput>rm -rf /usr/lib/python&python3-majorver;/site-packages/samba</userinput></screen>
<para>
Still as the <systemitem class="username">root</systemitem> user,
install the package:
</para>
<screen role="root"><userinput>make install &amp;&amp;
install -v -m644 examples/smb.conf.default /etc/samba &amp;&amp;
sed -e "s;log file =.*;log file = /var/log/samba/%m.log;" \
-e "s;path = /usr/spool/samba;path = /var/spool/samba;" \
-i /etc/samba/smb.conf.default &amp;&amp;
mkdir -pv /etc/openldap/schema &amp;&amp;
install -v -m644 examples/LDAP/README \
/etc/openldap/schema/README.samba &amp;&amp;
install -v -m644 examples/LDAP/samba* \
/etc/openldap/schema &amp;&amp;
install -v -m755 examples/LDAP/{get*,ol*} \
/etc/openldap/schema</userinput></screen>
</sect2>
<sect2 role="commands">
<title>Command Explanations</title>
<para>
<parameter>--enable-fhs</parameter>: Assigns all other file paths in
a manner compliant with the Filesystem Hierarchy Standard (FHS).
</para>
<para revision="sysv">
<parameter>--without-systemd</parameter>: Disable
<application>systemd</application> integration, since it is not built
in the System V version of LFS/BLFS.
</para>
<para revision="sysv">
<option>--with-shared-modules='!vfs_snapper'</option>: Disable
the vfs_snapper module if you want to build samba without <application>dbus</application> support, for setups without graphical user intefaces.
</para>
<para>
<parameter>--without-ad-dc</parameter>: Disables
Active Directory Domain Controller functionality. See <ulink url=
"https://wiki.samba.org/index.php/Setup_a_Samba_Active_Directory_Domain_Controller">
Set up a Samba Active Directory Domain Controller</ulink> for detailed
information. Remove this switch if you've installed the Python modules
needed for ADS support. Note that BLFS does not provide a samba bootscript
or systemd unit for an Active Directory domain controller.
</para>
<para>
<option>--with-selftest-prefix=SELFTEST_PREFIX</option>: This option
specifies the test suite work directory (default=./st).
</para>
<para>
<command>install -v -m644 examples/LDAP/* /etc/openldap/schema</command>:
These commands are used to copy sample Samba schemas to the OpenLDAP
<filename class='directory'>schema</filename> directory.
</para>
<para>
<command>install -v -m644 ../examples/smb.conf.default
/etc/samba</command>: This copies a default <filename>smb.conf</filename>
file into <filename>/etc/samba</filename>. This sample configuration will
not work until you copy it to <filename>/etc/samba/smb.conf</filename> and
make the appropriate changes for your installation. See the configuration
section for minimum values which must be set.
</para>
</sect2>
<sect2 role="configuration">
<title>Configuring Samba</title>
<sect3 id="samba-config">
<title>Config Files</title>
<para>
/etc/samba/smb.conf
</para>
<indexterm zone="samba samba-config">
<primary sortas="e-etc-samba-smb.conf">/etc/samba/smb.conf</primary>
</indexterm>
</sect3>
<sect3>
<title>Printing to SMB Clients</title>
<para>
If you use <application>CUPS</application> for print services, and you
wish to print to a printer attached to an SMB client, you need to
create an SMB backend device. To create the device, issue the following
command as the <systemitem class="username">root</systemitem> user:
</para>
<screen role="root"><userinput>install -dvm 755 /usr/lib/cups/backend &amp;&amp;
ln -v -sf /usr/bin/smbspool /usr/lib/cups/backend/smb</userinput></screen>
</sect3>
<sect3>
<title>Configuration Information</title>
<para>
Due to the complexity and the many various uses for
<application>Samba</application>, complete configuration for all the
package's capabilities is well beyond the scope of the BLFS book. This
section provides instructions to configure the
<filename>/etc/samba/smb.conf</filename> file for two common scenarios.
The complete contents of <filename>/etc/samba/smb.conf</filename> will
depend on the purpose of <application>Samba</application>
installation.
</para>
<note>
<para>
You may find it easier to copy the configuration parameters shown
below into an empty <filename>/etc/samba/smb.conf</filename> file
instead of copying and editing the default file as mentioned in the
<quote>Command Explanations</quote> section. How you create/edit the
<filename>/etc/samba/smb.conf</filename> file will be left up to
you. Do ensure the file is only writable by the
<systemitem class="username">root</systemitem> user (mode 644).
</para>
</note>
<sect4>
<title>Scenario 1: Minimal Standalone Client-Only Installation</title>
<para>
Choose this variant if you only want to transfer files using
<command>smbclient</command>, mount Windows shares and print to
Windows printers, and don't want to share your files and printers to
Windows machines.
</para>
<para>
A <filename>/etc/samba/smb.conf</filename> file with the following
three parameters is sufficient:
</para>
<screen role='root'><literal>[global]
workgroup = <replaceable>WORKGROUP</replaceable>
dos charset = <replaceable>cp850</replaceable>
unix charset = <replaceable>ISO-8859-1</replaceable></literal></screen>
<para>
The values in this example specify that the computer belongs to a
Windows workgroup named
<quote><replaceable>WORKGROUP</replaceable></quote>, uses the
<quote><replaceable>cp850</replaceable></quote> character set on the
wire when talking to MS-DOS and MS Windows 9x, and that the filenames
are stored in the <quote><replaceable>ISO-8859-1</replaceable></quote>
encoding on the disk. Adjust these values appropriately for your
installation. The <quote>unix charset</quote> value must be the same
as the output of <command>locale charmap</command> when executed with
the <envar>LANG</envar> variable set to your preferred locale,
otherwise the <command>ls</command> command may not display correct
filenames of downloaded files.
</para>
<para>
There is no need to run any <application>Samba</application>
servers in this scenario, thus you don't need to install the provided
<phrase revision="sysv">bootscripts.</phrase>
<phrase revision="systemd">systemd units.</phrase>
</para>
</sect4>
<sect4>
<title>Scenario 2: Standalone File/Print Server</title>
<para>
Choose this variant if you want to share your files and printers
to Windows machines in your workgroup in addition to the capabilities
described in Scenario 1.
</para>
<para>
In this case, the <filename>/etc/samba/smb.conf.default</filename>
file may be a good template to start from. Also, you should add the
<quote>dos charset</quote> and <quote>unix charset</quote> parameters
to the <quote>[global]</quote> section as described in Scenario 1 in
order to prevent filename corruption. For security reasons, you may
wish to define
<replaceable>path = /home/alice/shared-files</replaceable>,
assuming your user name is <replaceable>alice</replaceable> and you
only want to share the files in that directory, instead of your entire
home. Then, replace <replaceable>homes</replaceable> by
<replaceable>shared-files</replaceable> and change also the
<quote><literal>comment</literal></quote> if used the configuration
file below or the <filename>/etc/samba/smb.conf.default</filename>
to create yours.
</para>
<para>
The following configuration file creates a separate share for each
user's home directory and also makes all printers available to Windows
machines:
</para>
<screen role='root'><literal>[global]
workgroup = <replaceable>WORKGROUP</replaceable>
dos charset = <replaceable>cp850</replaceable>
unix charset = <replaceable>ISO-8859-1</replaceable>
[homes]
comment = Home Directories
browseable = no
writable = yes
[printers]
comment = All Printers
path = /var/spool/samba
browseable = no
guest ok = no
printable = yes</literal></screen>
<para>
Other parameters you may wish to customize in the
<quote>[global]</quote> section include:
</para>
<screen role='root'><literal> server string =
security =
hosts allow =
load printers =
log file =
max log size =
socket options =
local master =</literal></screen>
<para>
Reference the comments in the
<filename>/etc/samba/smb.conf.default</filename> file for information
regarding these parameters.
</para>
<para>
Since the <command>smbd</command> and <command>nmbd</command> daemons
are needed in this case, install the <filename>samba</filename>
<phrase revision="sysv">bootscript.</phrase>
<phrase revision="systemd">systemd unit.</phrase>
Be sure to run <command>smbpasswd</command> (with the
<option>-a</option> option to add users) to enable and set passwords
for all accounts that need <application>Samba</application> access.
Using the default <application>Samba</application> passdb backend,
any user you attempt to add will also be required to exist in the
<filename>/etc/passwd</filename> file.
</para>
</sect4>
<sect4>
<title>Advanced Requirements</title>
<para>
More complex scenarios involving domain control or membership are
possible. Such setups are advanced topics and cannot be adequately
covered in BLFS. Many complete books have been written on these topics
alone. Note that in some domain membership scenarios, the
<command>winbindd</command> daemon and the corresponding
<phrase revision="sysv">bootscript</phrase>
<phrase revision="systemd">systemd unit</phrase> are needed.
</para>
</sect4>
<sect4>
<title>Guest account</title>
<para>
The default <application>Samba</application> installation uses the
<systemitem class='username'>nobody</systemitem> user for guest
access to the server. This can be overridden by setting the
<option>guest account =</option> parameter in the
<filename>/etc/samba/smb.conf</filename> file. If you utilize the
<option>guest account =</option> parameter, ensure this user exists
in the <filename>/etc/passwd</filename> file.
</para>
</sect4>
<sect4 id="samba-init" revision="sysv">
<title>Boot Script</title>
<para>
For your convenience, boot scripts have been provided for
<application>Samba</application>. There are two included in the
<xref linkend="bootscripts"/> package. The first,
<filename>samba</filename>, will start the <command>smbd</command>
and <command>nmbd</command> daemons needed to provide SMB/CIFS
services. The second script, <filename>winbind</filename>, starts
the <command>winbindd</command> daemon, used for providing Windows
domain services to Linux clients.
</para>
<indexterm zone="samba samba-init">
<primary sortas="f-samba">samba</primary>
</indexterm>
<indexterm zone="samba samba-init">
<primary sortas="f-winbind">winbind</primary>
</indexterm>
<screen role="root"><userinput>make install-samba</userinput></screen>
<screen role="root"><userinput>make install-winbindd</userinput></screen>
</sect4>
<sect4 id="samba-init-sysd" revision="systemd">
<title>Systemd Units</title>
<para>
To start the <application>Samba</application> daemons at boot,
install the systemd units from the <xref linkend="systemd-units"/>
package by running the following command as the
<systemitem class="username">root</systemitem> user:
</para>
<indexterm zone="samba samba-init-sysd">
<primary sortas="f-samba">samba</primary>
</indexterm>
<screen role="root"><userinput>make install-samba</userinput></screen>
<para>
To start the <command>winbindd</command> daemon at boot,
install the systemd unit from the <xref linkend="systemd-units"/>
package by running the following command as the
<systemitem class="username">root</systemitem> user:
</para>
<indexterm zone="samba samba-init-sysd">
<primary sortas="f-winbindd">winbindd</primary>
</indexterm>
<screen role="root"><userinput>make install-winbindd</userinput></screen>
<note>
<para>
This package comes with two types of units: A service file and a
socket file. The service file will start the smbd daemon once at
boot and it will keep running until the system shuts down. The
socket file will make systemd listen on the smbd port (Default 445,
needs to be edited for anything else) and will start the smbd
daemon when something tries to connect to that port and stop the
daemon when the connection is terminated. This is called socket
activation and is analogous to using
<application>{,x}inetd</application> on a SysVinit based system.
</para>
<para>
By default, the first method is used - the smbd daemon is started
at boot and stopped at shutdown. If the socket method is desired,
you need to run the following commands as the <systemitem
class="username">root</systemitem> user:
</para>
<screen role="root"><userinput>systemctl stop smbd &amp;&amp;
systemctl disable smbd &amp;&amp;
systemctl enable smbd.socket &amp;&amp;
systemctl start smbd.socket</userinput></screen>
<para>
Note that only the smbd daemon can be socket activated.
</para>
</note>
</sect4>
</sect3>
</sect2>
<sect2 role="content">
<title>Contents</title>
<segmentedlist>
<segtitle>Installed Programs</segtitle>
<segtitle>Installed Libraries</segtitle>
<segtitle>Installed Directories</segtitle>
<seglistitem>
<seg>
cifsdd, dbwrap_tool, dumpmscat, eventlogadm, gentest,
ldbadd, ldbdel, ldbedit, ldbmodify, ldbrename, ldbsearch, locktest,
masktest, mdsearch, mvxattr, ndrdump, net, nmbd, nmblookup, ntlm_auth,
oLschema2ldif, pdbedit, profiles, regdiff, regpatch, regshell,
regtree, rpcclient, samba-log-parser, samba-gpupdate, samba-regedit,
samba-tool, sharesec, smbcacls, smbclient, smbcontrol, smbcquotas,
smbd, smbget, smbpasswd, smbspool, smbstatus, smbtar, smbtorture,
smbtree, tdbbackup, tdbdump, tdbrestore, tdbtool, testparm, wbinfo,
and winbindd
</seg>
<seg>
libdcerpc-binding.so, libdcerpc-samr.so,
libdcerpc-server-core.so, libdcerpc.so,
libndr-krb5pac.so, libndr-nbt.so, libndr.so,
libndr-standard.so, libnetapi.so, libnss_winbind.so, libnss_wins.so,
libsamba-credentials.so, libsamba-errors.so,
libsamba-hostconfig.so, libsamba-passdb.so,
libsamba-policy.cpython-311-x86_64-linux-gnu.so, libsamba-util.so,
libsamdb.so, libsmbclient.so,
libsmbconf.so, libsmbldap.so, libtevent-util.so,
libwbclient.so, and filesystem and support modules under
/usr/lib/{python&python3-majorver;,samba}
</seg>
<seg>
/etc/samba, /run/samba, /usr/include/samba-4.0,
/usr/lib/python&python3-majorver;/site-packages/samba,
/usr/{lib,libexec,share}/samba,
and /var/{cache,lib,lock,log,run}/samba
</seg>
</seglistitem>
</segmentedlist>
<variablelist>
<bridgehead renderas="sect3">Short Descriptions</bridgehead>
<?dbfo list-presentation="list"?>
<?dbhtml list-presentation="table"?>
<varlistentry id="cifsdd">
<term><command>cifsdd</command></term>
<listitem>
<para>
is the dd command for SMB
</para>
<indexterm zone="samba cifsdd">
<primary sortas="b-cifsdd">cifsdd</primary>
</indexterm>
</listitem>
</varlistentry>
<varlistentry id="dbwrap_tool">
<term><command>dbwrap_tool</command></term>
<listitem>
<para>
is used to read and manipulate TDB/CTDB databases using
the dbwrap interface
</para>
<indexterm zone="samba dbwrap_tool">
<primary sortas="b-dbwrap_tool">dbwrap_tool</primary>
</indexterm>
</listitem>
</varlistentry>
<varlistentry id="dumpmscat">
<term><command>dumpmscat</command></term>
<listitem>
<para>
dumps the content of MS catalog files
</para>
<indexterm zone="samba dumpmscat">
<primary sortas="b-dumpmscat">dumpmscat</primary>
</indexterm>
</listitem>
</varlistentry>
<varlistentry id="eventlogadm">
<term><command>eventlogadm</command></term>
<listitem>
<para>
is used to write records to eventlogs from STDIN, add the
specified source and DLL eventlog registry entries and display the
active eventlog names (from <filename>smb.conf</filename>)
</para>
<indexterm zone="samba eventlogadm">
<primary sortas="b-eventlogadm">eventlogadm</primary>
</indexterm>
</listitem>
</varlistentry>
<varlistentry id="gentest">
<term><command>gentest</command></term>
<listitem>
<para>
is used to run random generic SMB operations against two
SMB servers and show the differences in behavior
</para>
<indexterm zone="samba gentest">
<primary sortas="b-gentest">gentest</primary>
</indexterm>
</listitem>
</varlistentry>
<varlistentry id="ldbadd">
<term><command>ldbadd</command></term>
<listitem>
<para>
is a command-line utility for adding records to an LDB
database
</para>
<indexterm zone="samba ldbadd">
<primary sortas="b-ldbadd">ldbadd</primary>
</indexterm>
</listitem>
</varlistentry>
<varlistentry id="ldbdel">
<term><command>ldbdel</command></term>
<listitem>
<para>
is a command-line utility for deleting LDB database records
</para>
<indexterm zone="samba ldbdel">
<primary sortas="b-ldbdel">ldbdel</primary>
</indexterm>
</listitem>
</varlistentry>
<varlistentry id="ldbedit">
<term><command>ldbedit</command></term>
<listitem>
<para>
allows you to edit LDB databases using your preferred editor
</para>
<indexterm zone="samba ldbedit">
<primary sortas="b-ldbedit">ldbedit</primary>
</indexterm>
</listitem>
</varlistentry>
<varlistentry id="ldbmodify">
<term><command>ldbmodify</command></term>
<listitem>
<para>
allows you to modify records in an LDB database
</para>
<indexterm zone="samba ldbmodify">
<primary sortas="b-ldbmodify">ldbmodify</primary>
</indexterm>
</listitem>
</varlistentry>
<varlistentry id="ldbrename">
<term><command>ldbrename</command></term>
<listitem>
<para>
allows you to rename LDB databases
</para>
<indexterm zone="samba ldbrename">
<primary sortas="b-ldbrename">ldbrename</primary>
</indexterm>
</listitem>
</varlistentry>
<varlistentry id="ldbsearch">
<term><command>ldbsearch</command></term>
<listitem>
<para>
searches an LDB database for records matching a specified
expression
</para>
<indexterm zone="samba ldbsearch">
<primary sortas="b-ldbsearch">ldbsearch</primary>
</indexterm>
</listitem>
</varlistentry>
<varlistentry id="locktest">
<term><command>locktest</command></term>
<listitem>
<para>
is used to find differences in locking between two SMB servers
</para>
<indexterm zone="samba locktest">
<primary sortas="b-locktest">locktest</primary>
</indexterm>
</listitem>
</varlistentry>
<varlistentry id="masktest">
<term><command>masktest</command></term>
<listitem>
<para>
is used to find differences in wildcard matching between
Samba's implementation and that of a remote server
</para>
<indexterm zone="samba masktest">
<primary sortas="b-masktest">masktest</primary>
</indexterm>
</listitem>
</varlistentry>
<varlistentry id="mdsearch">
<term><command>mdsearch</command></term>
<listitem>
<para>
runs <application>Spotlight</application> searches against a SMB
server
</para>
<indexterm zone="samba mdsearch">
<primary sortas="b-mdsearch">mdsearch</primary>
</indexterm>
</listitem>
</varlistentry>
<varlistentry id="mvxattr">
<term><command>mvxattr</command></term>
<listitem>
<para>
is used to recursively rename extended attributes
</para>
<indexterm zone="samba mvxattr">
<primary sortas="b-mvxattr">mvxattr</primary>
</indexterm>
</listitem>
</varlistentry>
<varlistentry id="ndrdump">
<term><command>ndrdump</command></term>
<listitem>
<para>
is a DCE/RPC Packet Parser and Dumper
</para>
<indexterm zone="samba ndrdump">
<primary sortas="b-ndrdump">ndrdump</primary>
</indexterm>
</listitem>
</varlistentry>
<varlistentry id="net">
<term><command>net</command></term>
<listitem>
<para>
is a tool for administration of <application>Samba</application>
and remote CIFS servers, similar to the <command>net</command>
utility for DOS/Windows
</para>
<indexterm zone="samba net">
<primary sortas="b-net">net</primary>
</indexterm>
</listitem>
</varlistentry>
<varlistentry id="nmbd">
<term><command>nmbd</command></term>
<listitem>
<para>
is the <application>Samba</application> NetBIOS name server
</para>
<indexterm zone="samba nmbd">
<primary sortas="b-nmbd">nmbd</primary>
</indexterm>
</listitem>
</varlistentry>
<varlistentry id="nmblookup">
<term><command>nmblookup</command></term>
<listitem>
<para>
is used to query NetBIOS names and map them to IP addresses
</para>
<indexterm zone="samba nmblookup">
<primary sortas="b-nmblookup">nmblookup</primary>
</indexterm>
</listitem>
</varlistentry>
<varlistentry id="ntlm_auth">
<term><command>ntlm_auth</command></term>
<listitem>
<para>
is a tool to allow external access to Winbind's
NTLM authentication function
</para>
<indexterm zone="samba ntlm_auth">
<primary sortas="b-ntlm_auth">ntlm_auth</primary>
</indexterm>
</listitem>
</varlistentry>
<varlistentry id="oLschema2ldif">
<term><command>oLschema2ldif</command></term>
<listitem>
<para>
converts LDAP schema's to LDB-compatible LDIF
</para>
<indexterm zone="samba oLschema2ldif">
<primary sortas="b-oLschema2ldif">oLschema2ldif</primary>
</indexterm>
</listitem>
</varlistentry>
<varlistentry id="pdbedit">
<term><command>pdbedit</command></term>
<listitem>
<para>
is a tool used to manage the SAM database
</para>
<indexterm zone="samba pdbedit">
<primary sortas="b-pdbedit">pdbedit</primary>
</indexterm>
</listitem>
</varlistentry>
<varlistentry id="profiles">
<term><command>profiles</command></term>
<listitem>
<para>
is a utility that reports and changes SIDs in Windows
registry files
</para>
<indexterm zone="samba profiles">
<primary sortas="b-profiles">profiles</primary>
</indexterm>
</listitem>
</varlistentry>
<varlistentry id="regdiff">
<term><command>regdiff</command></term>
<listitem>
<para>
is a Diff program for Windows registry files
</para>
<indexterm zone="samba regdiff">
<primary sortas="b-regdiff">regdiff</primary>
</indexterm>
</listitem>
</varlistentry>
<varlistentry id="regpatch">
<term><command>regpatch</command></term>
<listitem>
<para>
applies registry patches to registry files
</para>
<indexterm zone="samba regpatch">
<primary sortas="b-regpatch">regpatch</primary>
</indexterm>
</listitem>
</varlistentry>
<varlistentry id="regshell">
<term><command>regshell</command></term>
<listitem>
<para>
is a Windows registry file browser using readline
</para>
<indexterm zone="samba regshell">
<primary sortas="b-regshell">regshell</primary>
</indexterm>
</listitem>
</varlistentry>
<varlistentry id="regtree">
<term><command>regtree</command></term>
<listitem>
<para>
is a text-mode registry viewer
</para>
<indexterm zone="samba regtree">
<primary sortas="b-regtree">regtree</primary>
</indexterm>
</listitem>
</varlistentry>
<varlistentry id="rpcclient">
<term><command>rpcclient</command></term>
<listitem>
<para>
is used to execute MS-RPC client side functions
</para>
<indexterm zone="samba rpcclient">
<primary sortas="b-rpcclient">rpcclient</primary>
</indexterm>
</listitem>
</varlistentry>
<varlistentry id="samba-log-parser">
<term><command>samba-log-parser</command></term>
<listitem>
<para>
parses winbind logs generated by Samba
</para>
<indexterm zone="samba samba-log-parser">
<primary sortas="b-samba-log-parser">samba-log-parser</primary>
</indexterm>
</listitem>
</varlistentry>
<varlistentry id="samba-gpupdate">
<term><command>samba-gpupdate</command></term>
<listitem>
<para>
allows you to edit Microsoft Group Policy Objects (GPOs)
</para>
<indexterm zone="samba samba-gpupdate">
<primary sortas="b-samba-gpupdate">samba-gpupdate</primary>
</indexterm>
</listitem>
</varlistentry>
<varlistentry id="samba-regedit">
<term><command>samba-regedit</command></term>
<listitem>
<para>
is a ncurses based tool to manage the Samba registry
</para>
<indexterm zone="samba samba-regedit">
<primary sortas="b-samba-regedit">samba-regedit</primary>
</indexterm>
</listitem>
</varlistentry>
<varlistentry id="samba-tool">
<term><command>samba-tool</command></term>
<listitem>
<para>
is the main Samba administration tool
</para>
<indexterm zone="samba samba-tool">
<primary sortas="b-samba-tool">samba-tool</primary>
</indexterm>
</listitem>
</varlistentry>
<varlistentry id="sharesec">
<term><command>sharesec</command></term>
<listitem>
<para>
manipulates share ACL permissions on SMB file shares
</para>
<indexterm zone="samba sharesec">
<primary sortas="b-sharesec">sharesec</primary>
</indexterm>
</listitem>
</varlistentry>
<varlistentry id="smbcacls">
<term><command>smbcacls</command></term>
<listitem>
<para>
is used to manipulate Windows NT access control lists
</para>
<indexterm zone="samba smbcacls">
<primary sortas="b-smbcacls">smbcacls</primary>
</indexterm>
</listitem>
</varlistentry>
<varlistentry id="smbclient">
<term><command>smbclient</command></term>
<listitem>
<para>
is a SMB/CIFS access utility, similar to FTP
</para>
<indexterm zone="samba smbclient">
<primary sortas="b-smbclient">smbclient</primary>
</indexterm>
</listitem>
</varlistentry>
<varlistentry id="smbcontrol">
<term><command>smbcontrol</command></term>
<listitem>
<para>
is used to control running <command>smbd</command>,
<command>nmbd</command> and <command>winbindd</command> daemons
</para>
<indexterm zone="samba smbcontrol">
<primary sortas="b-smbcontrol">smbcontrol</primary>
</indexterm>
</listitem>
</varlistentry>
<varlistentry id="smbcquotas">
<term><command>smbcquotas</command></term>
<listitem>
<para>
is used to manipulate Windows NT quotas on SMB file shares
</para>
<indexterm zone="samba smbcquotas">
<primary sortas="b-smbcquotas">smbcquotas</primary>
</indexterm>
</listitem>
</varlistentry>
<varlistentry id="smbd">
<term><command>smbd</command></term>
<listitem>
<para>
is the main <application>Samba</application> daemon which
provides SMB/CIFS services to clients
</para>
<indexterm zone="samba smbd">
<primary sortas="b-smbd">smbd</primary>
</indexterm>
</listitem>
</varlistentry>
<varlistentry id="smbget">
<term><command>smbget</command></term>
<listitem>
<para>
is a simple utility with <command>wget</command>-like semantics,
that can download files from SMB servers. You can specify the
files you would like to download on the command-line
</para>
<indexterm zone="samba smbget">
<primary sortas="b-smbget">smbget</primary>
</indexterm>
</listitem>
</varlistentry>
<varlistentry id="smbpasswd">
<term><command>smbpasswd</command></term>
<listitem>
<para>
changes a user's <application>Samba</application> password
</para>
<indexterm zone="samba smbpasswd">
<primary sortas="b-smbpasswd">smbpasswd</primary>
</indexterm>
</listitem>
</varlistentry>
<varlistentry id="smbspool">
<term><command>smbspool</command></term>
<listitem>
<para>
sends a print job to a SMB printer
</para>
<indexterm zone="samba smbspool">
<primary sortas="b-smbspool">smbspool</primary>
</indexterm>
</listitem>
</varlistentry>
<varlistentry id="smbstatus">
<term><command>smbstatus</command></term>
<listitem>
<para>
reports current <application>Samba</application> connections
</para>
<indexterm zone="samba smbstatus">
<primary sortas="b-smbstatus">smbstatus</primary>
</indexterm>
</listitem>
</varlistentry>
<varlistentry id="smbtar">
<term><command>smbtar</command></term>
<listitem>
<para>
is a shell script used for backing up SMB/CIFS shares
directly to Linux tape drives or to a file
</para>
<indexterm zone="samba smbtar">
<primary sortas="b-smbtar">smbtar</primary>
</indexterm>
</listitem>
</varlistentry>
<varlistentry id="smbtorture">
<term><command>smbtorture</command></term>
<listitem>
<para>
is a test suite that runs several tests against a SMB server
</para>
<indexterm zone="samba smbtorture">
<primary sortas="b-smbtorture">smbtorture</primary>
</indexterm>
</listitem>
</varlistentry>
<varlistentry id="smbtree">
<term><command>smbtree</command></term>
<listitem>
<para>
is a text-based SMB network browser
</para>
<indexterm zone="samba smbtree">
<primary sortas="b-smbtree">smbtree</primary>
</indexterm>
</listitem>
</varlistentry>
<varlistentry id="tdbbackup">
<term><command>tdbbackup</command></term>
<listitem>
<para>
is a tool for backing up or validating the integrity of
<application>Samba</application> <filename>.tdb</filename> files
</para>
<indexterm zone="samba tdbbackup">
<primary sortas="b-tdbbackup">tdbbackup</primary>
</indexterm>
</listitem>
</varlistentry>
<varlistentry id="tdbdump">
<term><command>tdbdump</command></term>
<listitem>
<para>
is a tool used to print the contents of a
<application>Samba</application> <filename>.tdb</filename> file
</para>
<indexterm zone="samba tdbdump">
<primary sortas="b-tdbdump">tdbdump</primary>
</indexterm>
</listitem>
</varlistentry>
<varlistentry id="tdbrestore">
<term><command>tdbrestore</command></term>
<listitem>
<para>
is a tool for creating a <application>Samba</application>
<filename>.tdb</filename> file out of a ntdbdump
</para>
<indexterm zone="samba tdbrestore">
<primary sortas="b-tdbrestore">tdbrestore</primary>
</indexterm>
</listitem>
</varlistentry>
<varlistentry id="tdbtool">
<term><command>tdbtool</command></term>
<listitem>
<para>
is a tool which allows simple database manipulation from the
command line
</para>
<indexterm zone="samba tdbtool">
<primary sortas="b-tdbtool">tdbtool</primary>
</indexterm>
</listitem>
</varlistentry>
<varlistentry id="testparm">
<term><command>testparm</command></term>
<listitem>
<para>
checks a <filename>smb.conf</filename> file for proper syntax
</para>
<indexterm zone="samba testparm">
<primary sortas="b-testparm">testparm</primary>
</indexterm>
</listitem>
</varlistentry>
<varlistentry id="wbinfo">
<term><command>wbinfo</command></term>
<listitem>
<para>
queries a running <command>winbindd</command> daemon
</para>
<indexterm zone="samba wbinfo">
<primary sortas="b-wbinfo">wbinfo</primary>
</indexterm>
</listitem>
</varlistentry>
<varlistentry id="winbindd">
<term><command>winbindd</command></term>
<listitem>
<para>
resolves names from Windows NT servers
</para>
<indexterm zone="samba winbindd">
<primary sortas="b-winbindd">winbindd</primary>
</indexterm>
</listitem>
</varlistentry>
<varlistentry id="libnss_winbind">
<term><filename class="libraryfile">libnss_winbind.so</filename></term>
<listitem>
<para>
provides Name Service Switch API functions for resolving names
from NT servers
</para>
<indexterm zone="samba libnss_winbind">
<primary sortas="c-libnss_winbind">libnss_winbind.so</primary>
</indexterm>
</listitem>
</varlistentry>
<varlistentry id="libnss_wins">
<term><filename class="libraryfile">libnss_wins.so</filename></term>
<listitem>
<para>
provides API functions for Samba's implementation of the
Windows Internet Naming Service
</para>
<indexterm zone="samba libnss_wins">
<primary sortas="c-libnss_wins">libnss_wins.so</primary>
</indexterm>
</listitem>
</varlistentry>
<varlistentry id="libnetapi">
<term><filename class="libraryfile">libnetapi.so</filename></term>
<listitem>
<para>
provides API functions for the administration tools used
for Samba and remote CIFS servers
</para>
<indexterm zone="samba libnetapi">
<primary sortas="c-libnetapi">libnetapi.so</primary>
</indexterm>
</listitem>
</varlistentry>
<varlistentry id="libsmbclient">
<term><filename class="libraryfile">libsmbclient.so</filename></term>
<listitem>
<para>
provides API functions for the Samba SMB client tools
</para>
<indexterm zone="samba libsmbclient">
<primary sortas="c-libsmbclient">libsmbclient.so</primary>
</indexterm>
</listitem>
</varlistentry>
<!--
<varlistentry id="libsmbsharemodes">
<term><filename class="libraryfile">libsmbsharemodes.so</filename></term>
<listitem>
<para>
provides API functions for accessing SMB share modes (locks etc.)
</para>
<indexterm zone="samba libsmbsharemodes">
<primary sortas="c-libsmbsharemodes">libsmbsharemodes.so</primary>
</indexterm>
</listitem>
</varlistentry>-->
<varlistentry id="libwbclient">
<term><filename class="libraryfile">libwbclient.so</filename></term>
<listitem>
<para>
provides API functions for Windows domain client services
</para>
<indexterm zone="samba libwbclient">
<primary sortas="c-libwbclient">libwbclient.so</primary>
</indexterm>
</listitem>
</varlistentry>
</variablelist>
</sect2>
</sect1>