Remove obsolete file (no longer necessary with docbook XML)
[samba.git] / docs / docbook / manpages / smbpasswd.8.sgml
1 <!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook V4.1//EN">
2 <refentry id="smbpasswd">
3
4 <refmeta>
5         <refentrytitle>smbpasswd</refentrytitle>
6         <manvolnum>8</manvolnum>
7 </refmeta>
8
9
10 <refnamediv>
11         <refname>smbpasswd</refname>
12         <refpurpose>change a user's SMB password</refpurpose>
13 </refnamediv>
14
15 <refsynopsisdiv>
16         <cmdsynopsis>
17                 <command>smbpasswd</command>
18                 <arg choice="opt">-a</arg>      
19                 <arg choice="opt">-x</arg>      
20                 <arg choice="opt">-d</arg>      
21                 <arg choice="opt">-e</arg>      
22                 <arg choice="opt">-D debuglevel</arg>   
23                 <arg choice="opt">-n</arg>      
24                 <arg choice="opt">-r &lt;remote machine&gt;</arg>       
25                 <arg choice="opt">-R &lt;name resolve order&gt;</arg>   
26                 <arg choice="opt">-m</arg>      
27                 <arg choice="opt">-U username[%password]</arg>  
28                 <arg choice="opt">-h</arg>      
29                 <arg choice="opt">-s</arg>      
30                 <arg choice="opt">-w pass</arg> 
31                 <arg choice="opt">-i</arg>
32                 <arg choice="opt">-L</arg>
33                 <arg choice="opt">username</arg>        
34         </cmdsynopsis>
35 </refsynopsisdiv>
36
37 <refsect1>
38         <title>DESCRIPTION</title>
39
40         <para>This tool is part of the <ulink url="samba.7.html">
41         Samba</ulink> suite.</para>
42         
43         <para>The smbpasswd program has several different 
44         functions, depending on whether it is run by the <emphasis>root</emphasis> 
45         user or not. When run as a normal user it allows the user to change 
46         the password used for their SMB sessions on any machines that store 
47         SMB passwords. </para>
48
49         <para>By default (when run with no arguments) it will attempt to 
50         change the current user's SMB password on the local machine. This is 
51         similar to the way the <command>passwd(1)</command> program works. 
52         <command>smbpasswd</command> differs from how the passwd program works 
53         however in that it is not <emphasis>setuid root</emphasis> but works in 
54         a client-server mode and communicates with a locally running
55         <command>smbd(8)</command>. As a consequence in order for this to 
56         succeed the smbd daemon must be running on the local machine. On a 
57         UNIX machine the encrypted SMB passwords are usually stored in 
58         the <filename>smbpasswd(5)</filename> file. </para>
59
60         <para>When run by an ordinary user with no options, smbpasswd 
61         will prompt them for their old SMB password and then ask them 
62         for their new password twice, to ensure that the new password
63         was typed correctly. No passwords will be echoed on the screen 
64         whilst being typed. If you have a blank SMB password (specified by 
65         the string "NO PASSWORD" in the smbpasswd file) then just press 
66         the &lt;Enter&gt; key when asked for your old password. </para>
67
68         <para>smbpasswd can also be used by a normal user to change their
69         SMB password on remote machines, such as Windows NT Primary Domain 
70         Controllers.   See the (-r) and -U options below. </para>
71
72         <para>When run by root, smbpasswd allows new users to be added 
73         and deleted in the smbpasswd file, as well as allows changes to 
74         the attributes of the user in this file to be made. When run by root, 
75         <command>smbpasswd</command> accesses the local smbpasswd file 
76         directly, thus enabling changes to be made even if smbd is not 
77         running. </para>
78 </refsect1>
79
80 <refsect1>
81         <title>OPTIONS</title>
82         <variablelist>
83                 <varlistentry>
84                 <term>-a</term>
85                 <listitem><para>This option specifies that the username 
86                 following should be added to the local smbpasswd file, with the 
87                 new password typed (type &lt;Enter&gt; for the old password). This 
88                 option is ignored if the username following already exists in 
89                 the smbpasswd file and it is treated like a regular change 
90                 password command.  Note that the default passdb backends require 
91                 the user to already exist in the system password file (usually 
92                 <filename>/etc/passwd</filename>), else the request to add the 
93                 user will fail. </para>
94                 
95                 <para>This option is only available when running smbpasswd 
96                 as root. </para></listitem>
97                 </varlistentry>
98                 
99                 
100                 
101                 <varlistentry>
102                 <term>-x</term>
103                 <listitem><para>This option specifies that the username 
104                 following should be deleted from the local smbpasswd file.
105                 </para>
106
107                 <para>This option is only available when running smbpasswd as 
108                 root.</para></listitem>
109                 </varlistentry>
110                 
111                 
112                 
113                 <varlistentry>
114                 <term>-d</term>
115                 <listitem><para>This option specifies that the username following 
116                 should be <constant>disabled</constant> in the local smbpasswd 
117                 file. This is done by writing a <constant>'D'</constant> flag 
118                 into the account control space in the smbpasswd file. Once this 
119                 is done all attempts to authenticate via SMB using this username 
120                 will fail. </para>
121                 
122                 <para>If the smbpasswd file is in the 'old' format (pre-Samba 2.0 
123                 format) there is no space in the user's password entry to write
124                 this information and the command will FAIL. See <command>smbpasswd(5)
125                 </command> for details on the 'old' and new password file formats.
126                 </para>
127
128                 <para>This option is only available when running smbpasswd as 
129                 root.</para></listitem>
130                 </varlistentry>
131                 
132                 
133                 <varlistentry>
134                 <term>-e</term>
135                 <listitem><para>This option specifies that the username following 
136                 should be <constant>enabled</constant> in the local smbpasswd file, 
137                 if the account was previously disabled. If the account was not 
138                 disabled this option has no effect. Once the account is enabled then 
139                 the user will be able to authenticate via SMB once again. </para>
140                 
141                 <para>If the smbpasswd file is in the 'old' format, then <command>
142                 smbpasswd</command> will FAIL to enable the account.  
143                 See <command>smbpasswd (5)</command> for 
144                 details on the 'old' and new password file formats. </para>
145
146                 <para>This option is only available when running smbpasswd as root. 
147                 </para></listitem>
148                 </varlistentry>
149                 
150
151
152                 <varlistentry>
153                 <term>-D debuglevel</term>
154                 <listitem><para><replaceable>debuglevel</replaceable> is an integer 
155                 from 0 to 10.  The default value if this parameter is not specified 
156                 is zero. </para>
157
158                 <para>The higher this value, the more detail will be logged to the 
159                 log files about the activities of smbpasswd. At level 0, only 
160                 critical errors and serious warnings will be logged. </para>
161
162                 <para>Levels above 1 will generate considerable amounts of log 
163                 data, and should only be used when investigating a problem. Levels 
164                 above 3 are designed for use only by developers and generate
165                 HUGE amounts of log data, most of which is extremely cryptic. 
166                 </para></listitem>
167                 </varlistentry>
168                 
169                 
170                 
171                 <varlistentry>
172                 <term>-n</term>
173                 <listitem><para>This option specifies that the username following 
174                 should have their password set to null (i.e. a blank password) in 
175                 the local smbpasswd file. This is done by writing the string "NO 
176                 PASSWORD" as the first part of the first password stored in the 
177                 smbpasswd file. </para>
178
179                 <para>Note that to allow users to logon to a Samba server once 
180                 the password has been set to "NO PASSWORD" in the smbpasswd
181                 file the administrator must set the following parameter in the [global]
182                 section of the <filename>smb.conf</filename> file : </para>
183                 
184                 <para><command>null passwords = yes</command></para> 
185                 
186                 <para>This option is only available when running smbpasswd as 
187                 root.</para></listitem>
188                 </varlistentry>
189                 
190                 
191                 
192                 <varlistentry>
193                 <term>-r remote machine name</term>
194                 <listitem><para>This option allows a user to specify what machine 
195                 they wish to change their password on. Without this parameter 
196                 smbpasswd defaults to the local host. The <replaceable>remote 
197                 machine name</replaceable> is the NetBIOS name of the SMB/CIFS 
198                 server to contact to attempt the password change. This name is 
199                 resolved into an IP address using the standard name resolution 
200                 mechanism in all programs of the Samba suite. See the <parameter>-R 
201                 name resolve order</parameter> parameter for details on changing 
202                 this resolving mechanism. </para>
203
204                 <para>The username whose password is changed is that of the 
205                 current UNIX logged on user. See the <parameter>-U username</parameter>
206                 parameter for details on changing the password for a different 
207                 username. </para>
208
209                 <para>Note that if changing a Windows NT Domain password the 
210                 remote machine specified must be the Primary Domain Controller for 
211                 the domain (Backup Domain Controllers only have a read-only
212                 copy of the user account database and will not allow the password 
213                 change).</para>
214                 
215                 <para><emphasis>Note</emphasis> that Windows 95/98 do not have 
216                 a real password database so it is not possible to change passwords 
217                 specifying a Win95/98  machine as remote machine target. </para>
218                 </listitem>
219                 </varlistentry>
220                 
221                 
222                 <varlistentry>
223                 <term>-R name resolve order</term>
224                 <listitem><para>This option allows the user of smbpasswd to determine
225                 what name resolution services to use when looking up the NetBIOS
226                 name of the host being connected to. </para>
227
228                 <para>The options are :"lmhosts", "host", "wins" and "bcast". They
229                  cause names to be resolved as follows : </para>
230                         <itemizedlist>
231                                 <listitem><para><constant>lmhosts</constant> : Lookup an IP 
232             address in the Samba lmhosts file. If the line in lmhosts has 
233             no name type attached to the NetBIOS name (see the <ulink 
234             url="lmhosts.5.html">lmhosts(5)</ulink> for details) then
235             any name type matches for lookup.</para></listitem>
236
237             <listitem><para><constant>host</constant> : Do a standard host 
238             name to IP address resolution, using the system <filename>/etc/hosts
239             </filename>, NIS, or DNS lookups. This method of name resolution 
240             is operating system depended for instance on IRIX or Solaris this 
241             may be controlled by the <filename>/etc/nsswitch.conf</filename> 
242             file).  Note that this method is only used if the NetBIOS name 
243             type being queried is the 0x20 (server) name type, otherwise 
244             it is ignored.</para></listitem>
245
246             <listitem><para><constant>wins</constant> : Query a name with 
247             the IP address listed in the <parameter>wins server</parameter> 
248             parameter.  If no WINS server has been specified this method 
249             will be ignored.</para></listitem>
250
251             <listitem><para><constant>bcast</constant> : Do a broadcast on 
252             each of the known local interfaces listed in the
253             <parameter>interfaces</parameter> parameter. This is the least 
254             reliable of the name resolution methods as it depends on the 
255             target host being on a locally connected subnet.</para></listitem>
256                 </itemizedlist>
257                 
258                 <para>The default order is <command>lmhosts, host, wins, bcast</command> 
259                 and without this parameter or any entry in the 
260                 <filename>smb.conf</filename> file the name resolution methods will 
261                 be attempted in this order. </para></listitem>
262                 </varlistentry>
263                 
264                 
265                 <varlistentry>
266                 <term>-m</term>
267                 <listitem><para>This option tells smbpasswd that the account 
268                 being changed is a MACHINE account. Currently this is used 
269                 when Samba is being used as an NT Primary Domain Controller.</para>
270
271                 <para>This option is only available when running smbpasswd as root.
272                 </para></listitem>
273                 </varlistentry>
274                 
275                 
276                 <varlistentry>
277                 <term>-U username</term>
278                 <listitem><para>This option may only be used in conjunction 
279                 with the <parameter>-r</parameter> option. When changing
280                 a password on a remote machine it allows the user to specify 
281                 the user name on that machine whose password will be changed. It 
282                 is present to allow users who have different user names on 
283                 different systems to change these passwords. </para></listitem>
284                 </varlistentry>
285                 
286                 
287                 <varlistentry>
288                 <term>-h</term>
289                 <listitem><para>This option prints the help string for <command>
290                 smbpasswd</command>, selecting the correct one for running as root 
291                 or as an ordinary user. </para></listitem>
292                 </varlistentry>
293                 
294                 
295                 
296                 <varlistentry>
297                 <term>-s</term>
298                 <listitem><para>This option causes smbpasswd to be silent (i.e. 
299                 not issue prompts) and to read its old and new passwords from 
300                 standard  input, rather than from <filename>/dev/tty</filename> 
301                 (like the <command>passwd(1)</command> program does). This option 
302                 is to aid people writing scripts to drive smbpasswd</para>
303                 </listitem>
304                 </varlistentry>
305                 
306
307                 <varlistentry>
308                 <term>-w password</term>
309                 <listitem><para>This parameter is only available if Samba
310                 has been configured to use the experimental
311                 <command>--with-ldapsam</command> option. The <parameter>-w</parameter> 
312                 switch is used to specify the password to be used with the 
313                 <ulink url="smb.conf.5.html#LDAPADMINDN"><parameter>ldap admin 
314                 dn</parameter></ulink>.  Note that the password is stored in
315                 the <filename>private/secrets.tdb</filename> and is keyed off 
316                 of the admin's DN.  This means that if the value of <parameter>ldap
317                 admin dn</parameter> ever changes, the password will need to be 
318                 manually updated as well.
319                 </para>
320                 </listitem>
321                 </varlistentry>
322
323                 <varlistentry>
324                 <term>-i</term>
325                 <listitem><para>This option tells smbpasswd that the account 
326                 being changed is an interdomain trust account. Currently this is used 
327                 when Samba is being used as an NT Primary Domain Controller. 
328                 The account contains the info about another trusted domain.</para>
329
330                 <para>This option is only available when running smbpasswd as root.
331                 </para></listitem>
332                 </varlistentry>
333
334                 <varlistentry>
335                 <term>-L</term>
336                 <listitem><para>Run in local mode.</para></listitem>
337                 </varlistentry>
338                 
339                 <varlistentry>
340                 <term>username</term>
341                 <listitem><para>This specifies the username for all of the 
342                 <emphasis>root only</emphasis> options to operate on. Only root 
343                 can specify this parameter as only root has the permission needed 
344                 to modify attributes directly in the local smbpasswd file. 
345                 </para></listitem>
346                 </varlistentry>
347         </variablelist>
348 </refsect1>
349
350
351 <refsect1>
352         <title>NOTES</title>
353         
354         <para>Since <command>smbpasswd</command> works in client-server 
355         mode communicating  with a local smbd for a non-root user then 
356         the smbd daemon must be running for this to work. A common problem 
357         is to add a restriction to the hosts that may access the <command>
358         smbd</command> running on the local machine by specifying a 
359         <parameter>allow hosts</parameter> or <parameter>deny hosts</parameter> 
360         entry in the <filename>smb.conf</filename> file and neglecting to 
361         allow "localhost" access to the smbd. </para>
362
363         <para>In addition, the smbpasswd command is only useful if Samba
364         has been set up to use encrypted passwords. See the file 
365         <filename>ENCRYPTION.txt</filename> in the docs directory for details 
366         on how to do this. </para>
367 </refsect1>
368
369
370 <refsect1>
371         <title>VERSION</title>
372
373         <para>This man page is correct for version 3.0 of 
374         the Samba suite.</para>
375 </refsect1>
376
377 <refsect1>
378         <title>SEE ALSO</title>
379         <para><ulink url="smbpasswd.5.html"><filename>smbpasswd(5)</filename></ulink>, 
380         <ulink url="samba.7.html">samba(7)</ulink>
381         </para>
382 </refsect1>
383
384 <refsect1>
385         <title>AUTHOR</title>
386         
387         <para>The original Samba software and related utilities 
388         were created by Andrew Tridgell. Samba is now developed
389         by the Samba Team as an Open Source project similar 
390         to the way the Linux kernel is developed.</para>
391         
392         <para>The original Samba man pages were written by Karl Auer. 
393         The man page sources were converted to YODL format (another 
394         excellent piece of Open Source software, available at
395         <ulink url="ftp://ftp.icce.rug.nl/pub/unix/">
396         ftp://ftp.icce.rug.nl/pub/unix/</ulink>) and updated for the Samba 2.0 
397         release by Jeremy Allison.  The conversion to DocBook for 
398         Samba 2.2 was done by Gerald Carter</para>
399 </refsect1>
400
401 </refentry>