<?xml version="1.0" encoding="iso-8859-1"?>
<!DOCTYPE refentry PUBLIC "-//Samba-Team//DTD DocBook V4.2-Based Variant V1.0//EN" "http://www.samba.org/samba/DTD/samba-doc">
<refentry id="smbtorture.1">

<refmeta>
	<refentrytitle>smbtorture</refentrytitle>
	<manvolnum>1</manvolnum>
</refmeta>


<refnamediv>
	<refname>smbtorture</refname>
	<refpurpose>Run a series of tests against a SMB server</refpurpose>
</refnamediv>

<refsynopsisdiv>
	<cmdsynopsis>
		<command>smbtorture</command>
	</cmdsynopsis>
	
	<cmdsynopsis>
		<command>smbtorture</command>
		<arg choice="req">//server/share</arg>
		<arg choice="opt">-d debuglevel</arg>
		<arg choice="opt">-U user%pass</arg>
		<arg choice="opt">-k</arg>
		<arg choice="opt">-N numprocs</arg>
		<arg choice="opt">-n netbios_name</arg>
		<arg choice="opt">-W workgroup</arg>
		<arg choice="opt">-o num_operations</arg>
		<arg choice="opt">-e num files(entries)</arg>
		<arg choice="opt">-O socket_options</arg>
		<arg choice="opt">-m maximum_protocol</arg>
		<arg choice="opt">-L</arg>
		<arg choice="opt">-c CLIENT.TXT</arg>
		<arg choice="opt">-t timelimit</arg>
		<arg choice="opt">-C filename</arg>
		<arg choice="opt">-A</arg>
		<arg choice="opt">-p port</arg>
		<arg choice="opt">-s seed</arg>
		<arg choice="opt">-f max_failures</arg>
		<arg choice="opt">-X</arg>
		<arg choice="req">BINDING-STRING|UNC</arg>
		<arg choice="req">TEST1</arg>
		<arg choice="opt">TEST2</arg>
		<arg choice="opt">...</arg>
	</cmdsynopsis>
	
</refsynopsisdiv>

<refsect1>
	<title>DESCRIPTION</title>

	<para>smbtorture is a testsuite that runs several tests 
		against a SMB server. All tests are known to succeed 
		against a Windows 2003 server (?). Smbtorture's primary 
		goal is finding differences in implementations of the SMB protocol 
		and testing SMB servers.
	</para>

	<para>Any number of tests can be specified 
		on the command-line. If no tests are specified, all tests 
		are run. </para>

	<para>If no arguments are specified at all, all available options 
		and tests are listed.</para>

	<refsect2>
		<title>Binding string format</title>

		<para>The binding string format is:</para>

		<para>TRANSPORT:host[flags]</para>

		<para>Where TRANSPORT is either ncacn_np for SMB, ncacn_ip_tcp for RPC/TCP or ncalrpc for local connections.
		</para>

		<para>
		'host' is an IP or hostname or netbios name. If the binding string 
		identifies the server side of an endpoint, 'host' may be an empty");
	  	string.
		</para>

		<para>
		'flags' can include a SMB pipe name if using the ncacn_np transport or
		a TCP port number if using the ncacn_ip_tcp transport, otherwise they
		will be auto-determined.
		</para>

		<para>
		other recognised flags are:
		</para>

	  <variablelist>
		  <varlistentry><term>sign</term>
			  <listitem><para>enable ntlmssp signing</para></listitem>
		  </varlistentry>

		  <varlistentry><term>seal</term>
			  <listitem><para>enable ntlmssp sealing</para></listitem>
		  </varlistentry>

		  <varlistentry><term>connect</term>
			  <listitem><para>enable rpc connect level auth (auth, but no sign or seal)</para></listitem>
		  </varlistentry>

		  <varlistentry><term>validate</term>
			  <listitem><para>enable the NDR validator</para></listitem>
		  </varlistentry>

		  <varlistentry><term>print</term>
			  <listitem><para>enable debugging of the packets</para></listitem>
		  </varlistentry>

		  <varlistentry><term>bigendian</term>
			  <listitem><para>use bigendian RPC</para></listitem>
		  </varlistentry>

		  <varlistentry><term>padcheck</term>
			  <listitem><para>check reply data for non-zero pad bytes</para></listitem>
		  </varlistentry>
	  </variablelist>

	  <para>For example, these all connect to the samr pipe:</para>

	  <itemizedlist>
	    <listitem><para>ncacn_np:myserver</para></listitem>
	    <listitem><para>ncacn_np:myserver[samr]</para></listitem>
	    <listitem><para>ncacn_np:myserver[\\pipe\\samr]</para></listitem>
	    <listitem><para>ncacn_np:myserver[/pipe/samr]</para></listitem>
	    <listitem><para>ncacn_np:myserver[samr,sign,print]</para></listitem>
	    <listitem><para>ncacn_np:myserver[\\pipe\\samr,sign,seal,bigendian]</para></listitem>
	    <listitem><para>ncacn_np:myserver[/pipe/samr,seal,validate]</para></listitem>
	    <listitem><para>ncacn_np:</para></listitem>
	    <listitem><para>ncacn_np:[/pipe/samr]</para></listitem>
	    <listitem><para>ncacn_ip_tcp:myserver</para></listitem>
	    <listitem><para>ncacn_ip_tcp:myserver[1024]</para></listitem>
	    <listitem><para>ncacn_ip_tcp:myserver[1024,sign,seal]</para></listitem>
	    <listitem><para>ncalrpc:</para></listitem>
	  </itemizedlist>

	</refsect2>

	<refsect2>
		<title>UNC Format</title>

		<para>The UNC format is:</para>

		<para>//server/share</para>
	</refsect2>

</refsect1>


<refsect1>
	<title>OPTIONS</title>

	<variablelist>
		<varlistentry><term>-d debuglevel</term>
			<listitem><para>Use the specified Samba debug level. A higher debug level 
				means more output.</para></listitem>
		</varlistentry>
		<varlistentry><term>-U user%pass</term>
			<listitem><para>Use the specified username/password combination when logging in to a remote server.</para></listitem>
		</varlistentry>
		<varlistentry><term>-k</term>
			<listitem><para>Use kerberos when authenticating.</para></listitem>
		</varlistentry>
		<varlistentry><term>-W workgroup</term>
			<listitem><para>Use specified name as our workgroup name.</para></listitem>
		</varlistentry>
		<varlistentry><term>-n netbios_name</term>
			<listitem><para>Use specified name as our NetBIOS name.</para></listitem>
		</varlistentry>

		<varlistentry><term>-O socket_options</term>
			<listitem><para>Use specified socket options, equivalent of the smb.conf option <quote>socket options</quote>. See the smb.conf(5) manpage for details.</para></listitem>
		</varlistentry>

		<varlistentry><term>-m max_protocol</term>
			<listitem><para>Specify the maximum SMB dialect that should be used. Possible values are: CORE, COREPLUS, LANMAN1, LANMAN2, NT1</para></listitem>
		</varlistentry>

		<varlistentry><term>-s seed</term>
			<listitem><para>Initialize the randomizer using <replaceable>seed</replaceable> as seed.</para></listitem>
		</varlistentry>

		<varlistentry><term>-L</term>
			<listitem><para>Use oplocks.</para></listitem>
		</varlistentry>

		<varlistentry><term>-X</term>
			<listitem><para>Enable dangerous tests. Use with care! This might crash your server...</para></listitem>
		</varlistentry>

		<varlistentry><term>-t timelimit</term>
			<listitem><para>Specify the NBENCH time limit in seconds. Defaults to 600.</para></listitem>
		</varlistentry>

		<varlistentry><term>-p ports</term>
			<listitem><para>Specify ports to connect to.</para></listitem>
		</varlistentry>

		<varlistentry><term>-c file</term>
			<listitem><para>Read NBENCH commands from <replaceable>file</replaceable> instead of from CLIENT.TXT.</para></listitem>
		</varlistentry>

		<varlistentry><term>-A</term>
			<listitem><para>Show not just OK or FAILED but more detailed 
					output. Used only by DENY test at the moment.</para></listitem>
		</varlistentry>

		<varlistentry><term>-C filename</term>
			<listitem><para>Load a list of UNC names from the specified filename. Smbtorture instances will connect to a random host from this list.</para></listitem>
		</varlistentry>

		<varlistentry><term>-N numprocs</term>
			<listitem><para>Specify number of smbtorture processes to launch.</para></listitem>
		</varlistentry>

		<varlistentry><term>-o num_operations</term>
			<listitem><para>Number of times some operations should be tried before assuming they're output is consistent (default:100).</para></listitem>
		</varlistentry>

		<varlistentry><term>-e num_files</term>
			<listitem><para>Number of entries to use in certain tests (such as creating X files) (default: 1000).</para></listitem>
		</varlistentry>

		<varlistentry><term>-f max_failures</term>
			<listitem><para>Number of failures before aborting a test (default: 1).</para></listitem>
		</varlistentry>
	</variablelist>
</refsect1>

<refsect1>
	<title>VERSION</title>

	<para>This man page is correct for version 4.0 of the Samba suite.</para>
</refsect1>

<refsect1>
	<title>SEE ALSO</title>

	<para>Samba</para>

</refsect1>

<refsect1>
	<title>AUTHOR</title>

	<para>This utility is part of the <ulink url="http://www.samba.org/">Samba</ulink> suite, which is developed by the global <ulink url="http://www.samba.org/samba/team/">Samba Team</ulink>.</para>

	<para>smbtorture was written by Andrew Tridgell.</para>

	<para>This manpage was written by Jelmer Vernooij.</para>
	
</refsect1>

</refentry>
