Initial import from FreeBSD RELENG_4:
[dragonfly.git] / usr.sbin / rpc.yppasswdd / rpc.yppasswdd.8
1 .\" Copyright (c) 1995, 1996
2 .\"     Bill Paul <wpaul@ctr.columbia.edu>.  All rights reserved.
3 .\"
4 .\" Redistribution and use in source and binary forms, with or without
5 .\" modification, are permitted provided that the following conditions
6 .\" are met:
7 .\" 1. Redistributions of source code must retain the above copyright
8 .\"    notice, this list of conditions and the following disclaimer.
9 .\" 2. Redistributions in binary form must reproduce the above copyright
10 .\"    notice, this list of conditions and the following disclaimer in the
11 .\"    documentation and/or other materials provided with the distribution.
12 .\" 3. All advertising materials mentioning features or use of this software
13 .\"    must display the following acknowledgement:
14 .\"     This product includes software developed by Bill Paul.
15 .\" 4. Neither the name of the author nor the names of contributors
16 .\"    may be used to endorse or promote products derived from this software
17 .\"    without specific prior written permission.
18 .\"
19 .\" THIS SOFTWARE IS PROVIDED BY Bill Paul AND CONTRIBUTORS ``AS IS'' AND
20 .\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
21 .\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
22 .\" ARE DISCLAIMED.  IN NO EVENT SHALL Bill Paul OR CONTRIBUTORS BE LIABLE
23 .\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
24 .\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
25 .\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
26 .\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
27 .\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
28 .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
29 .\" SUCH DAMAGE.
30 .\"
31 .\" $FreeBSD: src/usr.sbin/rpc.yppasswdd/rpc.yppasswdd.8,v 1.12.2.8 2003/03/11 22:31:32 trhodes Exp $
32 .\"
33 .Dd February 8, 1996
34 .Dt RPC.YPPASSWDD 8
35 .Os
36 .Sh NAME
37 .Nm rpc.yppasswdd
38 .Nd "server for updating NIS passwords"
39 .Sh SYNOPSIS
40 .Nm
41 .Op Fl t Ar master.passwd template file
42 .Op Fl d Ar default domain
43 .Op Fl p Ar path
44 .Op Fl s
45 .Op Fl f
46 .Op Fl a
47 .Op Fl m
48 .Op Fl i
49 .Op Fl v
50 .Op Fl u
51 .Op Fl h
52 .Sh DESCRIPTION
53 The
54 .Nm
55 utility allows users to change their NIS passwords and certain
56 other information using the
57 .Xr yppasswd 1
58 and
59 .Xr ypchpass 1
60 commands.
61 The
62 .Nm
63 utility
64 is an RPC-based server that accepts incoming password change requests,
65 authenticates them, places the updated information in the
66 .Pa /var/yp/master.passwd
67 template file and then updates the NIS
68 .Pa master.passwd
69 and
70 .Pa passwd
71 maps.
72 .Pp
73 The
74 .Nm
75 utility allows a normal NIS user to change
76 his or her NIS password, full name (also
77 known as 'GECOS' field) or shell.
78 These updates are typically done using
79 the
80 .Xr yppasswd 1 ,
81 .Xr ypchfn 1 ,
82 .Xr ypchsh 1 ,
83 or
84 .Xr ypchpass 1
85 commands.
86 (Some administrators don't want users to be able to change their
87 full name information or shells; the server can be invoked with option flags
88 that disallow such changes.)
89 When the server receives an update request,
90 it compares the address of the client making the request against the
91 .Pa securenets
92 rules outlined in
93 .Pa /var/yp/securenets .
94 (See the
95 .Xr ypserv 8
96 manual page for more information on securenets; the
97 .Nm
98 utility uses the same access control mechanism as
99 .Xr ypserv 8 . )
100 .Pp
101 The server then
102 checks the 'old' password supplied by the user to make sure it's
103 valid, then performs some sanity checks on the updated information (these
104 include checking for embedded control characters, colons or invalid shells).
105 Once it is satisfied that the update request is valid, the server modifies
106 the template password file (the default is
107 .Pa /var/yp/master.passwd )
108 and then runs the
109 .Pa /usr/libexec/yppwupdate
110 script to rebuild the NIS maps.
111 (This script has two arguments passed
112 to it: the absolute pathname of the password template that was modified
113 and the name of the domain that is to be updated.
114 These in turn are
115 passed to
116 .Pa /var/yp/Makefile ) .
117 .Pp
118 The
119 .Fx
120 version of
121 .Nm
122 also allows the super-user on the NIS master server to perform more
123 sophisticated updates on the NIS passwd maps.
124 The super-user can modify
125 any field in any user's master.passwd entry in any domain, and can
126 do so without knowing the user's existing NIS password (when the server
127 receives a request from the super-user, the password authentication
128 check is bypassed). Furthermore, if the server is invoked with the
129 .Fl a
130 flag, the super-user can even add new entries to the maps using
131 .Xr ypchpass 1 .
132 Again, this only applies to the super-user on the NIS
133 master server: none of these special functions can be performed over
134 the network.
135 .Pp
136 The
137 .Nm
138 utility can only be run on a machine that is an NIS master server.
139 .Sh OPTIONS
140 The following options are available:
141 .Bl -tag -width indent
142 .It Fl t Ar master.passwd template file
143 By default,
144 .Nm
145 assumes that the template file used to generates the
146 .Pa master.passwd
147 and
148 .Pa passwd
149 maps for the default domain is called
150 .Pa /var/yp/master.passwd .
151 This default can be overridden by specifying an alternate file name
152 with the
153 .Fl t
154 flag.
155 .Pp
156 Note: if the template file specified with this flag is
157 .Pa /etc/master.passwd ,
158 .Nm
159 will also automatically invoke
160 .Xr pwd_mkdb 8
161 to rebuild the local password databases in addition to the NIS
162 maps.
163 .It Fl d Ar domain
164 The
165 .Nm
166 utility can support multiple domains, however it must
167 choose one domain as a default.
168 It will try to use the system default domain name as set by the
169 .Xr domainname 1
170 command for this default.
171 However,
172 if the system domain name is not
173 set, a default domain must be specified on
174 the command line.
175 If the system default domain is set,
176 then this option can be used to override it.
177 .It Fl p Ar path
178 This option can be used to override the default path to
179 the location of the NIS
180 map databases.
181 The compiled-in default path is
182 .Pa /var/yp .
183 .It Fl s
184 Disallow changing of shell information.
185 .It Fl f
186 Disallow changing of full name ('GECOS') information.
187 .It Fl a
188 Allow additions to be made to the NIS passwd databases.
189 The super-user on the
190 NIS master server is permitted to use the
191 .Xr ypchpass 1
192 command to perform unrestricted modifications to any field in a user's
193 .Pa master.passwd
194 map entry.
195 When
196 .Nm
197 is started with this flag, it will also allow the super-user to add new
198 records to the NIS passwd maps, just as is possible when using
199 .Xr chpass 1
200 to modify the local password database.
201 .It Fl m
202 Turn on multi-domain mode.
203 Even though
204 .Xr ypserv 8
205 can handle several simultaneous domains, most implementations of
206 .Nm
207 can only operate on a single NIS domain, which is generally the same as
208 the system default domain of the NIS master server.
209 The
210 .Fx
211 .Nm
212 attempts to overcome this problem in spite of the inherent limitations
213 of the
214 .Pa yppasswd
215 protocol, which does not allow for a
216 .Pa domain
217 argument in client requests.
218 In multi-domain mode,
219 .Nm
220 will search through all the passwd maps of all the domains it
221 can find under
222 .Pa /var/yp
223 until it finds an entry that matches the user information specified in
224 a given update request.
225 (Matches are determined by checking the username,
226 UID and GID fields.)
227 The matched entry and corresponding domain are then
228 used for the update.
229 .Pp
230 Note that in order for multi-domain mode to work, there have to be
231 separate template files for each domain.
232 For example, if a server
233 supports three domains,
234 .Pa foo ,
235 .Pa bar ,
236 and
237 .Pa baz ,
238 there should be three separate master.passwd template files called
239 .Pa /var/yp/foo/master.passwd ,
240 .Pa /var/yp/bar/master.passwd ,
241 and
242 .Pa /var/yp/baz/master.passwd .
243 If
244 .Pa foo
245 happens to be the system default domain, then its template file can
246 be either
247 .Pa /var/yp/foo/master.passwd
248 or
249 .Pa /var/yp/master.passwd .
250 The server will check for the latter file first and then use the former
251 if it can't find it.
252 .Pp
253 Multi-domain mode is off by default since it can fail if there are
254 duplicate or near-duplicate user entries in different domains.
255 The server
256 will abort an update request if it finds more than one user entry that
257 matches its search criteria.
258 Even so, paranoid administrators
259 may wish to leave multi-domain mode disabled.
260 .It Fl i
261 If
262 .Nm
263 is invoked with this flag, it will perform map updates in place.
264 This
265 means that instead of just modifying the password template file and
266 starting a map update, the server will modify the map databases
267 directly.
268 This is useful when the password maps are large: if, for
269 example, the password database has tens of thousands of entries, it
270 can take several minutes for a map update to complete.
271 Updating the
272 maps in place reduces this time to a few seconds.
273 .It Fl v
274 Turn on verbose logging mode.
275 The server normally only logs messages
276 using the
277 .Xr syslog 3
278 facility when it encounters an error condition, or when processing
279 updates for the super-user on the NIS master server.
280 Running the server
281 with the
282 .Fl v
283 flag will cause it to log informational messages for all updates.
284 .It Fl u
285 Many commercial
286 .Xr yppasswd 1
287 clients do not use a reserved port when sending requests to
288 .Nm .
289 This is either because the
290 .Xr yppasswd 1
291 program is not installed set-uid root, or because the RPC
292 implementation does not place any emphasis on binding to reserved
293 ports when establishing client connections for the super-user.
294 By default,
295 .Nm
296 expects to receive requests from clients using reserved ports; requests
297 received from non-privileged ports are rejected.
298 Unfortunately, this
299 behavior prevents any client systems that to not use privileged
300 ports from successfully submitting password updates.
301 Specifying
302 the
303 .Fl u
304 flag to
305 .Nm
306 disables the privileged port check so that it will work with
307 .Xr yppasswd 1
308 clients that don't use privileged ports.
309 This reduces security to
310 a certain small degree, but it might be necessary in cases where it
311 is not possible to change the client behavior.
312 .It Fl h
313 Display the list of flags and options understood by
314 .Nm .
315 .El
316 .Sh FILES
317 .Bl -tag -width Pa -compact
318 .It Pa /usr/libexec/yppwupdate
319 The script invoked by
320 .Nm
321 to update and push the NIS maps after
322 an update.
323 .It Pa /var/yp/master.passwd
324 The template password file for the default domain.
325 .It Pa /var/yp/[domainname]/[maps]
326 The NIS maps for a particular NIS domain.
327 .It Pa /var/yp/[domainname]/master.passwd
328 The template password file(s) for non-default domains
329 (used only in multi-domain mode).
330 .El
331 .Sh SEE ALSO
332 .Xr yp 8 ,
333 .Xr yppush 8 ,
334 .Xr ypserv 8 ,
335 .Xr ypxfr 8
336 .Sh BUGS
337 As listed in the yppasswd.x protocol definition, the YPPASSWDPROC_UPDATE
338 procedure takes two arguments: a V7-style passwd structure containing
339 updated user information and the user's existing unencrypted (cleartext)
340 password.
341 Since
342 .Nm
343 is supposed to handle update requests from remote NIS client machines,
344 this means that
345 .Xr yppasswd 1
346 and similar client programs will in fact be transmitting users' cleartext
347 passwords over the network.
348 .Pp
349 This is not a problem for password updates since the plaintext password
350 sent with the update will no longer be valid once the new encrypted password
351 is put into place, but if the user is only updating his or her 'GECOS'
352 information or shell, then the cleartext password sent with the update
353 will still be valid once the update is completed.
354 If the network is
355 insecure, this cleartext password could be intercepted and used to
356 gain unauthorized access to the user's account.
357 .Sh AUTHORS
358 .An Bill Paul Aq wpaul@ctr.columbia.edu