xref: /freebsd/usr.sbin/pw/pw.8 (revision fd59f59ae310a0cc78cd0ae968d2af6acb391286)
1db34a710SJoerg Wunsch.\" Copyright (C) 1996
2db34a710SJoerg Wunsch.\" David L. Nugent.  All rights reserved.
3d6f907dcSJoerg Wunsch.\"
49fd0dafcSJoerg Wunsch.\" Redistribution and use in source and binary forms, with or without
59fd0dafcSJoerg Wunsch.\" modification, are permitted provided that the following conditions
69fd0dafcSJoerg Wunsch.\" are met:
79fd0dafcSJoerg Wunsch.\" 1. Redistributions of source code must retain the above copyright
89fd0dafcSJoerg Wunsch.\"    notice, this list of conditions and the following disclaimer.
99fd0dafcSJoerg Wunsch.\" 2. Redistributions in binary form must reproduce the above copyright
109fd0dafcSJoerg Wunsch.\"    notice, this list of conditions and the following disclaimer in the
119fd0dafcSJoerg Wunsch.\"    documentation and/or other materials provided with the distribution.
12d6f907dcSJoerg Wunsch.\"
13db34a710SJoerg Wunsch.\" THIS SOFTWARE IS PROVIDED BY DAVID L. NUGENT AND CONTRIBUTORS ``AS IS'' AND
149fd0dafcSJoerg Wunsch.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
159fd0dafcSJoerg Wunsch.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
16db34a710SJoerg Wunsch.\" ARE DISCLAIMED.  IN NO EVENT SHALL DAVID L. NUGENT OR CONTRIBUTORS BE LIABLE
179fd0dafcSJoerg Wunsch.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
189fd0dafcSJoerg Wunsch.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
199fd0dafcSJoerg Wunsch.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
209fd0dafcSJoerg Wunsch.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
219fd0dafcSJoerg Wunsch.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
229fd0dafcSJoerg Wunsch.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
239fd0dafcSJoerg Wunsch.\" SUCH DAMAGE.
249fd0dafcSJoerg Wunsch.\"
2597d92980SPeter Wemm.\" $FreeBSD$
269fd0dafcSJoerg Wunsch.\"
27fd59f59aSTom Rhodes.Dd October 9, 2006
28d6f907dcSJoerg Wunsch.Dt PW 8
29d6f907dcSJoerg Wunsch.Os
30d6f907dcSJoerg Wunsch.Sh NAME
31d6f907dcSJoerg Wunsch.Nm pw
329fd0dafcSJoerg Wunsch.Nd create, remove, modify & display system users and groups
33d6f907dcSJoerg Wunsch.Sh SYNOPSIS
34e97407b4SRuslan Ermilov.Nm
355f12594aSDavid Nugent.Op Fl V Ar etcdir
36d6f907dcSJoerg Wunsch.Ar useradd
37d6f907dcSJoerg Wunsch.Op name|uid
38d6f907dcSJoerg Wunsch.Op Fl C Ar config
39d6f907dcSJoerg Wunsch.Op Fl q
40d6f907dcSJoerg Wunsch.Op Fl n Ar name
41d6f907dcSJoerg Wunsch.Op Fl u Ar uid
42d6f907dcSJoerg Wunsch.Op Fl c Ar comment
43d6f907dcSJoerg Wunsch.Op Fl d Ar dir
44d6f907dcSJoerg Wunsch.Op Fl e Ar date
45d6f907dcSJoerg Wunsch.Op Fl p Ar date
46d6f907dcSJoerg Wunsch.Op Fl g Ar group
47d6f907dcSJoerg Wunsch.Op Fl G Ar grouplist
48d6f907dcSJoerg Wunsch.Op Fl m
49d6f907dcSJoerg Wunsch.Op Fl k Ar dir
50f5875822SSADA Kenji.Op Fl w Ar method
51d6f907dcSJoerg Wunsch.Op Fl s Ar shell
52d6f907dcSJoerg Wunsch.Op Fl o
53d6f907dcSJoerg Wunsch.Op Fl L Ar class
5487d6b5caSIan Dowse.Op Fl h Ar fd | Fl H Ar fd
559fd0dafcSJoerg Wunsch.Op Fl N
569fd0dafcSJoerg Wunsch.Op Fl P
57f1d684faSDavid Nugent.Op Fl Y
58e97407b4SRuslan Ermilov.Nm
595f12594aSDavid Nugent.Op Fl V Ar etcdir
60d6f907dcSJoerg Wunsch.Ar useradd
61d6f907dcSJoerg Wunsch.Op name|uid
62f1d684faSDavid Nugent.Fl D
63d6f907dcSJoerg Wunsch.Op Fl C Ar config
64d6f907dcSJoerg Wunsch.Op Fl q
65d6f907dcSJoerg Wunsch.Op Fl b Ar dir
66d6f907dcSJoerg Wunsch.Op Fl e Ar days
67d6f907dcSJoerg Wunsch.Op Fl p Ar days
68d6f907dcSJoerg Wunsch.Op Fl g Ar group
69d6f907dcSJoerg Wunsch.Op Fl G Ar grouplist
70d6f907dcSJoerg Wunsch.Op Fl k Ar dir
71610a5778SRuslan Ermilov.Op Fl u Ar min , Ns Ar max
72610a5778SRuslan Ermilov.Op Fl i Ar min , Ns Ar max
73d6f907dcSJoerg Wunsch.Op Fl w Ar method
74d6f907dcSJoerg Wunsch.Op Fl s Ar shell
75f1d684faSDavid Nugent.Op Fl y Ar path
76e97407b4SRuslan Ermilov.Nm
775f12594aSDavid Nugent.Op Fl V Ar etcdir
78d6f907dcSJoerg Wunsch.Ar userdel
79d6f907dcSJoerg Wunsch.Op name|uid
80d6f907dcSJoerg Wunsch.Op Fl n Ar name
81d6f907dcSJoerg Wunsch.Op Fl u Ar uid
82d6f907dcSJoerg Wunsch.Op Fl r
83f1d684faSDavid Nugent.Op Fl Y
84e97407b4SRuslan Ermilov.Nm
855f12594aSDavid Nugent.Op Fl V Ar etcdir
86d6f907dcSJoerg Wunsch.Ar usermod
87d6f907dcSJoerg Wunsch.Op name|uid
88d6f907dcSJoerg Wunsch.Op Fl C Ar config
89d6f907dcSJoerg Wunsch.Op Fl q
90d6f907dcSJoerg Wunsch.Op Fl n Ar name
91d6f907dcSJoerg Wunsch.Op Fl u Ar uid
92d6f907dcSJoerg Wunsch.Op Fl c Ar comment
93d6f907dcSJoerg Wunsch.Op Fl d Ar dir
94d6f907dcSJoerg Wunsch.Op Fl e Ar date
95d6f907dcSJoerg Wunsch.Op Fl p Ar date
96d6f907dcSJoerg Wunsch.Op Fl g Ar group
97d6f907dcSJoerg Wunsch.Op Fl G Ar grouplist
98d6f907dcSJoerg Wunsch.Op Fl l Ar name
99d6f907dcSJoerg Wunsch.Op Fl m
100d6f907dcSJoerg Wunsch.Op Fl k Ar dir
1019fd0dafcSJoerg Wunsch.Op Fl w Ar method
102d6f907dcSJoerg Wunsch.Op Fl s Ar shell
103d6f907dcSJoerg Wunsch.Op Fl L Ar class
10487d6b5caSIan Dowse.Op Fl h Ar fd | Fl H Ar fd
1059fd0dafcSJoerg Wunsch.Op Fl N
1069fd0dafcSJoerg Wunsch.Op Fl P
107f1d684faSDavid Nugent.Op Fl Y
108e97407b4SRuslan Ermilov.Nm
1095f12594aSDavid Nugent.Op Fl V Ar etcdir
110d6f907dcSJoerg Wunsch.Ar usershow
111d6f907dcSJoerg Wunsch.Op name|uid
112d6f907dcSJoerg Wunsch.Op Fl n Ar name
113d6f907dcSJoerg Wunsch.Op Fl u Ar uid
114d6f907dcSJoerg Wunsch.Op Fl F
1159fd0dafcSJoerg Wunsch.Op Fl P
1164731d076SDima Dorfman.Op Fl 7
117d6f907dcSJoerg Wunsch.Op Fl a
118e97407b4SRuslan Ermilov.Nm
1195f12594aSDavid Nugent.Op Fl V Ar etcdir
1209fd0dafcSJoerg Wunsch.Ar usernext
1219fd0dafcSJoerg Wunsch.Op Fl C Ar config
1229fd0dafcSJoerg Wunsch.Op Fl q
123e97407b4SRuslan Ermilov.Nm
1245f12594aSDavid Nugent.Op Fl V Ar etcdir
125d6f907dcSJoerg Wunsch.Ar groupadd
126d6f907dcSJoerg Wunsch.Op group|gid
127d6f907dcSJoerg Wunsch.Op Fl C Ar config
128d6f907dcSJoerg Wunsch.Op Fl q
129d6f907dcSJoerg Wunsch.Op Fl n Ar group
130d6f907dcSJoerg Wunsch.Op Fl g Ar gid
1319fd0dafcSJoerg Wunsch.Op Fl M Ar members
132d6f907dcSJoerg Wunsch.Op Fl o
13387d6b5caSIan Dowse.Op Fl h Ar fd | Fl H Ar fd
1349fd0dafcSJoerg Wunsch.Op Fl N
1359fd0dafcSJoerg Wunsch.Op Fl P
136f1d684faSDavid Nugent.Op Fl Y
137e97407b4SRuslan Ermilov.Nm
1385f12594aSDavid Nugent.Op Fl V Ar etcdir
139d6f907dcSJoerg Wunsch.Ar groupdel
14006f64964SJoseph Koshy.Op group|gid
141d6f907dcSJoerg Wunsch.Op Fl n Ar name
142d6f907dcSJoerg Wunsch.Op Fl g Ar gid
143f1d684faSDavid Nugent.Op Fl Y
144e97407b4SRuslan Ermilov.Nm
1455f12594aSDavid Nugent.Op Fl V Ar etcdir
146d6f907dcSJoerg Wunsch.Ar groupmod
14706f64964SJoseph Koshy.Op group|gid
148d6f907dcSJoerg Wunsch.Op Fl C Ar config
149d6f907dcSJoerg Wunsch.Op Fl q
150d6f907dcSJoerg Wunsch.Op Fl n Ar name
151d6f907dcSJoerg Wunsch.Op Fl g Ar gid
152d6f907dcSJoerg Wunsch.Op Fl l Ar name
1539fd0dafcSJoerg Wunsch.Op Fl M Ar members
1549fd0dafcSJoerg Wunsch.Op Fl m Ar newmembers
15587d6b5caSIan Dowse.Op Fl h Ar fd | Fl H Ar fd
1569fd0dafcSJoerg Wunsch.Op Fl N
1579fd0dafcSJoerg Wunsch.Op Fl P
158f1d684faSDavid Nugent.Op Fl Y
159e97407b4SRuslan Ermilov.Nm
1605f12594aSDavid Nugent.Op Fl V Ar etcdir
161d6f907dcSJoerg Wunsch.Ar groupshow
16206f64964SJoseph Koshy.Op group|gid
163d6f907dcSJoerg Wunsch.Op Fl n Ar name
164d6f907dcSJoerg Wunsch.Op Fl g Ar gid
165d6f907dcSJoerg Wunsch.Op Fl F
1669fd0dafcSJoerg Wunsch.Op Fl P
167d6f907dcSJoerg Wunsch.Op Fl a
168e97407b4SRuslan Ermilov.Nm
1695f12594aSDavid Nugent.Op Fl V Ar etcdir
1709fd0dafcSJoerg Wunsch.Ar groupnext
1719fd0dafcSJoerg Wunsch.Op Fl C Ar config
1729fd0dafcSJoerg Wunsch.Op Fl q
173e468afb4SDima Dorfman.Nm
174e468afb4SDima Dorfman.Op Fl V Ar etcdir
175e468afb4SDima Dorfman.Ar lock
176e468afb4SDima Dorfman.Op name|uid
177e468afb4SDima Dorfman.Op Fl C Ar config
178e468afb4SDima Dorfman.Op Fl q
179e468afb4SDima Dorfman.Nm
180e468afb4SDima Dorfman.Op Fl V Ar etcdir
181e468afb4SDima Dorfman.Ar unlock
182e468afb4SDima Dorfman.Op name|uid
183e468afb4SDima Dorfman.Op Fl C Ar config
184e468afb4SDima Dorfman.Op Fl q
185d6f907dcSJoerg Wunsch.Sh DESCRIPTION
186490d5836SPhilippe CharnierThe
187490d5836SPhilippe Charnier.Nm
188490d5836SPhilippe Charnierutility is a command-line based editor for the system
1891dcc6ec7SPhilippe Charnier.Ar user
190d6f907dcSJoerg Wunschand
1911dcc6ec7SPhilippe Charnier.Ar group
1923a7e7077SDaniel O'Callaghanfiles, allowing the superuser an easy to use and standardized way of adding,
193d6f907dcSJoerg Wunschmodifying and removing users and groups.
194d6f907dcSJoerg WunschNote that
1951dcc6ec7SPhilippe Charnier.Nm
196490d5836SPhilippe Charnieronly operates on the local user and group files.
197490d5836SPhilippe Charnier.Tn NIS
198490d5836SPhilippe Charnierusers and groups must be
199490d5836SPhilippe Charniermaintained on the
200490d5836SPhilippe Charnier.Tn NIS
201490d5836SPhilippe Charnierserver.
202490d5836SPhilippe CharnierThe
203490d5836SPhilippe Charnier.Nm
204490d5836SPhilippe Charnierutility handles updating the
205053375e8SMike Pritchard.Pa passwd ,
206053375e8SMike Pritchard.Pa master.passwd ,
207053375e8SMike Pritchard.Pa group
208053375e8SMike Pritchardand the secure and insecure
209d6f907dcSJoerg Wunschpassword database files, and must be run as root.
210d6f907dcSJoerg Wunsch.Pp
211137db389SSteve PriceThe first one or two keywords provided to
212137db389SSteve Price.Nm
213137db389SSteve Priceon the command line provide the context for the remainder of the arguments.
214137db389SSteve PriceThe keywords
215d6f907dcSJoerg Wunsch.Ar user
216d6f907dcSJoerg Wunschand
217d6f907dcSJoerg Wunsch.Ar group
218137db389SSteve Pricemay be combined with
219d6f907dcSJoerg Wunsch.Ar add ,
220d6f907dcSJoerg Wunsch.Ar del ,
2219fd0dafcSJoerg Wunsch.Ar mod ,
222d6f907dcSJoerg Wunsch.Ar show ,
2239fd0dafcSJoerg Wunschor
224137db389SSteve Price.Ar next
2254e86fcacSSheldon Hearnin any order.
2264e86fcacSSheldon Hearn(For example,
227137db389SSteve Price.Ar showuser ,
228137db389SSteve Price.Ar usershow ,
229610a5778SRuslan Ermilov.Ar show user ,
230610a5778SRuslan Ermilovand
231137db389SSteve Price.Ar user show
232137db389SSteve Priceall mean the same thing.)
233137db389SSteve PriceThis flexibility is useful for interactive scripts calling
2341dcc6ec7SPhilippe Charnier.Nm
235137db389SSteve Pricefor user and group database manipulation.
236d6f907dcSJoerg WunschFollowing these keywords, you may optionally specify the user or group name or numeric
237d6f907dcSJoerg Wunschid as an alternative to using the
238d6f907dcSJoerg Wunsch.Fl n Ar name ,
239d6f907dcSJoerg Wunsch.Fl u Ar uid ,
240d6f907dcSJoerg Wunsch.Fl g Ar gid
2419fd0dafcSJoerg Wunschoptions.
242d6f907dcSJoerg Wunsch.Pp
243d5a3b1edSDima DorfmanThe following flags are common to most or all modes of operation:
244d6f907dcSJoerg Wunsch.Pp
2459fd0dafcSJoerg Wunsch.Bl -tag -width "-G grouplist"
2465f12594aSDavid Nugent.It Fl V Ar etcdir
2475f12594aSDavid NugentThis flag sets an alternate location for the password, group and configuration files,
2485f12594aSDavid Nugentand may be used to maintain a user/group database in an alternate location.
2495f12594aSDavid NugentIf this switch is specified, the system
2505f12594aSDavid Nugent.Pa /etc/pw.conf
2515f12594aSDavid Nugentwill not be sourced for default configuration data, but the file pw.conf in the
2525f12594aSDavid Nugentspecified directory will be used instead (or none, if it does not exist).
2535f12594aSDavid NugentThe
2545f12594aSDavid Nugent.Fl C
2555f12594aSDavid Nugentflag may be used to override this behaviour.
2565f12594aSDavid NugentAs an exception to the general rule where options must follow the operation
2575f12594aSDavid Nugenttype, the
2585f12594aSDavid Nugent.Fl V
2595f12594aSDavid Nugentflag may be used on the command line before the operation keyword.
260d6f907dcSJoerg Wunsch.It Fl C Ar config
261d6f907dcSJoerg WunschBy default,
2621dcc6ec7SPhilippe Charnier.Nm
263d6f907dcSJoerg Wunschreads the file
264d6f907dcSJoerg Wunsch.Pa /etc/pw.conf
265137db389SSteve Priceto obtain policy information on how new user accounts and groups are to be created.
266137db389SSteve PriceThe
2679fd0dafcSJoerg Wunsch.Fl C
2689fd0dafcSJoerg Wunschoption specifies a different configuration file.
269137db389SSteve PriceWhile most of the contents of the configuration file may be overridden via
270137db389SSteve Pricecommand-line options, it may be more convenient to keep standard information in a
271137db389SSteve Priceconfiguration file.
272d6f907dcSJoerg Wunsch.It Fl q
273d6f907dcSJoerg WunschUse of this option causes
2741dcc6ec7SPhilippe Charnier.Nm
275d6f907dcSJoerg Wunschto suppress error messages, which may be useful in interactive environments where it
276d6f907dcSJoerg Wunschis preferable to interpret status codes returned by
2771dcc6ec7SPhilippe Charnier.Nm
278d6f907dcSJoerg Wunschrather than messing up a carefully formatted display.
2799fd0dafcSJoerg Wunsch.It Fl N
280137db389SSteve PriceThis option is available in
281137db389SSteve Price.Ar add
282137db389SSteve Priceand
283137db389SSteve Price.Ar modify
284137db389SSteve Priceoperations, and tells
2851dcc6ec7SPhilippe Charnier.Nm
286137db389SSteve Priceto output the result of the operation without updating the user or group
287137db389SSteve Pricedatabases.
2889fd0dafcSJoerg WunschYou may use the
2899fd0dafcSJoerg Wunsch.Fl P
2909fd0dafcSJoerg Wunschoption to switch between standard passwd and readable formats.
291f1d684faSDavid Nugent.It Fl Y
292f1d684faSDavid NugentUsing this option with any of the update modes causes
2931dcc6ec7SPhilippe Charnier.Nm
294f1d684faSDavid Nugentto run
295f1d684faSDavid Nugent.Xr make 1
296f1d684faSDavid Nugentafter changing to the directory
297f1d684faSDavid Nugent.Pa /var/yp .
298490d5836SPhilippe CharnierThis is intended to allow automatic updating of
299490d5836SPhilippe Charnier.Tn NIS
300490d5836SPhilippe Charnierdatabase files.
301490d5836SPhilippe CharnierIf separate passwd and group files are being used by
302490d5836SPhilippe Charnier.Tn NIS ,
303490d5836SPhilippe Charnierthen use the
304f1d684faSDavid Nugent.Fl y Ar path
305490d5836SPhilippe Charnieroption to specify the location of the
306490d5836SPhilippe Charnier.Tn NIS
307490d5836SPhilippe Charnierpasswd database so that
308137db389SSteve Price.Nm
309137db389SSteve Pricewill concurrently update it with the system password
310f1d684faSDavid Nugentdatabases.
311d6f907dcSJoerg Wunsch.El
312d6f907dcSJoerg Wunsch.Sh USER OPTIONS
313d6f907dcSJoerg WunschThe following options apply to the
314137db389SSteve Price.Ar useradd
315d6f907dcSJoerg Wunschand
316137db389SSteve Price.Ar usermod
317d6f907dcSJoerg Wunschcommands:
318d6f907dcSJoerg Wunsch.Pp
3199fd0dafcSJoerg Wunsch.Bl -tag -width "-G grouplist"
320d6f907dcSJoerg Wunsch.It Fl n Ar name
3211dcc6ec7SPhilippe CharnierSpecify the user/account name.
322d6f907dcSJoerg Wunsch.It Fl u Ar uid
3231dcc6ec7SPhilippe CharnierSpecify the user/account numeric id.
324d6f907dcSJoerg Wunsch.Pp
325137db389SSteve PriceUsually, you only need to provide one or the other of these options, as the account
326137db389SSteve Pricename will imply the uid, or vice versa.
327137db389SSteve PriceHowever, there are times when you need to provide both.
328d6f907dcSJoerg WunschFor example, when changing the uid of an existing user with
329d6f907dcSJoerg Wunsch.Ar usermod ,
330d6f907dcSJoerg Wunschor overriding the default uid when creating a new account.
331d6f907dcSJoerg WunschIf you wish
3321dcc6ec7SPhilippe Charnier.Nm
333137db389SSteve Priceto automatically allocate the uid to a new user with
334d6f907dcSJoerg Wunsch.Ar useradd ,
335d6f907dcSJoerg Wunschthen you should
336d6f907dcSJoerg Wunsch.Em not
337d6f907dcSJoerg Wunschuse the
33808657612SRuslan Ermilov.Fl u
3399fd0dafcSJoerg Wunschoption.
340137db389SSteve PriceYou may also provide either the account or userid immediately after the
341137db389SSteve Price.Ar useradd ,
342137db389SSteve Price.Ar userdel ,
343137db389SSteve Price.Ar usermod
344137db389SSteve Priceor
345137db389SSteve Price.Ar usershow
346137db389SSteve Pricekeywords on the command line without using the
34708657612SRuslan Ermilov.Fl n
348137db389SSteve Priceor
34908657612SRuslan Ermilov.Fl u
350137db389SSteve Priceoptions.
351d6f907dcSJoerg Wunsch.El
352d6f907dcSJoerg Wunsch.Pp
353d6f907dcSJoerg Wunsch.Bl -tag -width "-G grouplist"
354d6f907dcSJoerg Wunsch.It Fl c Ar comment
355d6f907dcSJoerg WunschThis field sets the contents of the passwd GECOS field, which normally contains up
356d6f907dcSJoerg Wunschto four comma-separated fields containing the user's full name, office or location,
357137db389SSteve Priceand work and home phone numbers.
358d6f907dcSJoerg WunschThese sub-fields are used by convention only, however, and are optional.
359d6f907dcSJoerg WunschIf this field is to contain spaces, you need to quote the comment itself with double
360d6f907dcSJoerg Wunschquotes
361d6f907dcSJoerg Wunsch.Ql \&" .
362d6f907dcSJoerg WunschAvoid using commas in this field as these are used as sub-field separators, and the
363d6f907dcSJoerg Wunschcolon
364d6f907dcSJoerg Wunsch.Ql \&:
365137db389SSteve Pricecharacter also cannot be used as this is the field separator for the passwd
366137db389SSteve Pricefile itself.
367d6f907dcSJoerg Wunsch.It Fl d Ar dir
368d6f907dcSJoerg WunschThis option sets the account's home directory.
369d6f907dcSJoerg WunschNormally, you will only use this if the home directory is to be different from the
370137db389SSteve Pricedefault determined from
371137db389SSteve Price.Pa /etc/pw.conf
3721dcc6ec7SPhilippe Charnier- normally
3731dcc6ec7SPhilippe Charnier.Pa /home
374137db389SSteve Pricewith the account name as a subdirectory.
375d6f907dcSJoerg Wunsch.It Fl e Ar date
3761dcc6ec7SPhilippe CharnierSet the account's expiration date.
377d6f907dcSJoerg WunschFormat of the date is either a UNIX time in decimal, or a date in
378137db389SSteve Price.Ql dd-mmm-yy[yy]
379d6f907dcSJoerg Wunschformat, where dd is the day, mmm is the month, either in numeric or alphabetic format
3801dcc6ec7SPhilippe Charnier('Jan', 'Feb', etc) and year is either a two or four digit year.
381d6f907dcSJoerg WunschThis option also accepts a relative date in the form
382d6f907dcSJoerg Wunsch.Ql \&+n[mhdwoy]
383d6f907dcSJoerg Wunschwhere
384d6f907dcSJoerg Wunsch.Ql \&n
385d6f907dcSJoerg Wunschis a decimal, octal (leading 0) or hexadecimal (leading 0x) digit followed by the
386053375e8SMike Pritchardnumber of Minutes, Hours, Days, Weeks, Months or Years from the current date at
387137db389SSteve Pricewhich the expiration date is to be set.
388d6f907dcSJoerg Wunsch.It Fl p Ar date
3891dcc6ec7SPhilippe CharnierSet the account's password expiration date.
390137db389SSteve PriceThis field is similar to the account expiration date option, except that it
391d6f907dcSJoerg Wunschapplies to forced password changes.
392137db389SSteve PriceThis is set in the same manner as the
39308657612SRuslan Ermilov.Fl e
394137db389SSteve Priceoption.
395d6f907dcSJoerg Wunsch.It Fl g Ar group
3961dcc6ec7SPhilippe CharnierSet the account's primary group to the given group.
397d6f907dcSJoerg Wunsch.Ar group
398137db389SSteve Pricemay be defined by either its name or group number.
399d6f907dcSJoerg Wunsch.It Fl G Ar grouplist
400490d5836SPhilippe CharnierSet additional group memberships for an account.
401d6f907dcSJoerg Wunsch.Ar grouplist
402137db389SSteve Priceis a comma-separated list of group names or group numbers.
403137db389SSteve PriceThe user's name is added to the group lists in
404d6f907dcSJoerg Wunsch.Pa /etc/group ,
405137db389SSteve Priceand
406d6f907dcSJoerg Wunschremoved from any groups not specified in
407d6f907dcSJoerg Wunsch.Ar grouplist .
408137db389SSteve PriceNote: a user should not be added to their primary group with
409137db389SSteve Price.Ar grouplist .
410137db389SSteve PriceAlso, group membership changes do not take effect for current user login
411137db389SSteve Pricesessions, requiring the user to reconnect to be affected by the changes.
4129fd0dafcSJoerg Wunsch.It Fl L Ar class
4139fd0dafcSJoerg WunschThis option sets the login class for the user being created.
4149fd0dafcSJoerg WunschSee
4159fd0dafcSJoerg Wunsch.Xr login.conf 5
41616b4ad52SGiorgos Keramidasand
41716b4ad52SGiorgos Keramidas.Xr passwd 5
418137db389SSteve Pricefor more information on user login classes.
419d6f907dcSJoerg Wunsch.It Fl m
420d6f907dcSJoerg WunschThis option instructs
4211dcc6ec7SPhilippe Charnier.Nm
422d6f907dcSJoerg Wunschto attempt to create the user's home directory.
423d6f907dcSJoerg WunschWhile primarily useful when adding a new account with
424d6f907dcSJoerg Wunsch.Ar useradd ,
425d6f907dcSJoerg Wunschthis may also be of use when moving an existing user's home directory elsewhere on
426d6f907dcSJoerg Wunschthe file system.
427d6f907dcSJoerg WunschThe new home directory is populated with the contents of the
428d6f907dcSJoerg Wunsch.Ar skeleton
429d6f907dcSJoerg Wunschdirectory, which typically contains a set of shell configuration files that the
430053375e8SMike Pritcharduser may personalize to taste.
43131e224ddSTom RhodesFiles in this directory are usually named
432fd59f59aSTom Rhodes.Pa dot . Ns Aq Ar config
43331e224ddSTom Rhodeswhere the
434fd59f59aSTom Rhodes.Pa dot
43531e224ddSTom Rhodesprefix will be stripped.
436d6f907dcSJoerg WunschWhen
43708657612SRuslan Ermilov.Fl m
438d6f907dcSJoerg Wunschis used on an account with
439d6f907dcSJoerg Wunsch.Ar usermod ,
440137db389SSteve Priceexisting configuration files in the user's home directory are
441d6f907dcSJoerg Wunsch.Em not
442137db389SSteve Priceoverwritten from the skeleton files.
443d6f907dcSJoerg Wunsch.Pp
444137db389SSteve PriceWhen a user's home directory is created, it will by default be a subdirectory of the
445d6f907dcSJoerg Wunsch.Ar basehome
446137db389SSteve Pricedirectory as specified by the
44708657612SRuslan Ermilov.Fl b
448137db389SSteve Priceoption (see below), bearing the name of the new account.
449137db389SSteve PriceThis can be overridden by the
45008657612SRuslan Ermilov.Fl d
451d6f907dcSJoerg Wunschoption on the command line, if desired.
452d6f907dcSJoerg Wunsch.It Fl k Ar dir
4531dcc6ec7SPhilippe CharnierSet the
454d6f907dcSJoerg Wunsch.Ar skeleton
455137db389SSteve Pricedirectory, from which basic startup and configuration files are copied when
456d6f907dcSJoerg Wunschthe user's home directory is created.
457137db389SSteve PriceThis option only has meaning when used with the
45808657612SRuslan Ermilov.Fl d
459137db389SSteve Priceor
46008657612SRuslan Ermilov.Fl m
461137db389SSteve Priceflags.
462d6f907dcSJoerg Wunsch.It Fl s Ar shell
4631dcc6ec7SPhilippe CharnierSet or changes the user's login shell to
464d6f907dcSJoerg Wunsch.Ar shell .
465d6f907dcSJoerg WunschIf the path to the shell program is omitted,
4661dcc6ec7SPhilippe Charnier.Nm
467d6f907dcSJoerg Wunschsearches the
468d6f907dcSJoerg Wunsch.Ar shellpath
469d6f907dcSJoerg Wunschspecified in
470d6f907dcSJoerg Wunsch.Pa /etc/pw.conf
471d6f907dcSJoerg Wunschand fills it in as appropriate.
472d6f907dcSJoerg WunschNote that unless you have a specific reason to do so, you should avoid
473d6f907dcSJoerg Wunschspecifying the path - this will allow
4741dcc6ec7SPhilippe Charnier.Nm
475d6f907dcSJoerg Wunschto validate that the program exists and is executable.
476d6f907dcSJoerg WunschSpecifying a full path (or supplying a blank "" shell) avoids this check
477d6f907dcSJoerg Wunschand allows for such entries as
4781dcc6ec7SPhilippe Charnier.Pa /nonexistent
479d6f907dcSJoerg Wunschthat should be set for accounts not intended for interactive login.
480d6f907dcSJoerg Wunsch.It Fl h Ar fd
481d6f907dcSJoerg WunschThis option provides a special interface by which interactive scripts can
482d6f907dcSJoerg Wunschset an account password using
483e97407b4SRuslan Ermilov.Nm .
484137db389SSteve PriceBecause the command line and environment are fundamentally insecure mechanisms
485d6f907dcSJoerg Wunschby which programs can accept information,
4861dcc6ec7SPhilippe Charnier.Nm
487d6f907dcSJoerg Wunschwill only allow setting of account and group passwords via a file descriptor
488d6f907dcSJoerg Wunsch(usually a pipe between an interactive script and the program).
489d6f907dcSJoerg Wunsch.Ar sh ,
490d6f907dcSJoerg Wunsch.Ar bash ,
491d6f907dcSJoerg Wunsch.Ar ksh
492d6f907dcSJoerg Wunschand
493d6f907dcSJoerg Wunsch.Ar perl
494137db389SSteve Priceall possess mechanisms by which this can be done.
495d6f907dcSJoerg WunschAlternatively,
496325970a9SPhilippe Charnier.Nm
497d6f907dcSJoerg Wunschwill prompt for the user's password if
49808657612SRuslan Ermilov.Fl h Ar 0
499d6f907dcSJoerg Wunschis given, nominating
500d6f907dcSJoerg Wunsch.Em stdin
501d6f907dcSJoerg Wunschas the file descriptor on which to read the password.
502137db389SSteve PriceNote that this password will be read only once and is intended
503137db389SSteve Pricefor use by a script rather than for interactive use.
504d6f907dcSJoerg WunschIf you wish to have new password confirmation along the lines of
505d6f907dcSJoerg Wunsch.Xr passwd 1 ,
506137db389SSteve Pricethis must be implemented as part of an interactive script that calls
507e97407b4SRuslan Ermilov.Nm .
508d6f907dcSJoerg Wunsch.Pp
509d6f907dcSJoerg WunschIf a value of
510d6f907dcSJoerg Wunsch.Ql \&-
511d6f907dcSJoerg Wunschis given as the argument
512d6f907dcSJoerg Wunsch.Ar fd ,
513d6f907dcSJoerg Wunschthen the password will be set to
514d6f907dcSJoerg Wunsch.Ql \&* ,
515137db389SSteve Pricerendering the account inaccessible via password-based login.
51687d6b5caSIan Dowse.It Fl H Ar fd
51787d6b5caSIan DowseRead an encrypted password string from the specified file descriptor.
51887d6b5caSIan DowseThis is like
51987d6b5caSIan Dowse.Fl h ,
52087d6b5caSIan Dowsebut the password should be supplied already encrypted in a form
52187d6b5caSIan Dowsesuitable for writing directly to the password database.
522d6f907dcSJoerg Wunsch.El
523d6f907dcSJoerg Wunsch.Pp
524d6f907dcSJoerg WunschIt is possible to use
525d6f907dcSJoerg Wunsch.Ar useradd
526d6f907dcSJoerg Wunschto create a new account that duplicates an existing user id.
527d6f907dcSJoerg WunschWhile this is normally considered an error and will be rejected, the
52808657612SRuslan Ermilov.Fl o
5299fd0dafcSJoerg Wunschoption overrides the check for duplicates and allows the duplication of
5309fd0dafcSJoerg Wunschthe user id.
5319fd0dafcSJoerg WunschThis may be useful if you allow the same user to login under
5329fd0dafcSJoerg Wunschdifferent contexts (different group allocations, different home
5339fd0dafcSJoerg Wunschdirectory, different shell) while providing basically the same
5349fd0dafcSJoerg Wunschpermissions for access to the user's files in each account.
535d6f907dcSJoerg Wunsch.Pp
536d6f907dcSJoerg WunschThe
537d6f907dcSJoerg Wunsch.Ar useradd
538d6f907dcSJoerg Wunschcommand also has the ability to set new user and group defaults by using the
53908657612SRuslan Ermilov.Fl D
5409fd0dafcSJoerg Wunschoption.
541d6f907dcSJoerg WunschInstead of adding a new user,
5421dcc6ec7SPhilippe Charnier.Nm
543d6f907dcSJoerg Wunschwrites a new set of defaults to its configuration file,
544d6f907dcSJoerg Wunsch.Pa /etc/pw.conf .
545d6f907dcSJoerg WunschWhen using the
54608657612SRuslan Ermilov.Fl D
5479fd0dafcSJoerg Wunschoption, you must not use either
54808657612SRuslan Ermilov.Fl n Ar name
549d6f907dcSJoerg Wunschor
55008657612SRuslan Ermilov.Fl u Ar uid
551d6f907dcSJoerg Wunschor an error will result.
552d6f907dcSJoerg WunschUse of
55308657612SRuslan Ermilov.Fl D
5549fd0dafcSJoerg Wunschchanges the meaning of several command line switches in the
555d6f907dcSJoerg Wunsch.Ar useradd
556d6f907dcSJoerg Wunschcommand.
557d6f907dcSJoerg WunschThese are:
558d6f907dcSJoerg Wunsch.Bl -tag -width "-G grouplist"
559d6f907dcSJoerg Wunsch.It Fl D
560d6f907dcSJoerg WunschSet default values in
561d6f907dcSJoerg Wunsch.Pa /etc/pw.conf
562d6f907dcSJoerg Wunschconfiguration file, or a different named configuration file if the
56308657612SRuslan Ermilov.Fl C Ar config
5649fd0dafcSJoerg Wunschoption is used.
565d6f907dcSJoerg Wunsch.It Fl b Ar dir
5661dcc6ec7SPhilippe CharnierSet the root directory in which user home directories are created.
567d6f907dcSJoerg WunschThe default value for this is
5681dcc6ec7SPhilippe Charnier.Pa /home ,
569d6f907dcSJoerg Wunschbut it may be set elsewhere as desired.
570d6f907dcSJoerg Wunsch.It Fl e Ar days
5711dcc6ec7SPhilippe CharnierSet the default account expiration period in days.
572d6f907dcSJoerg WunschUnlike use without
57308657612SRuslan Ermilov.Fl D ,
574d6f907dcSJoerg Wunschthe argument must be numeric, which specifies the number of days after creation when
575d6f907dcSJoerg Wunschthe account is to expire.
576d6f907dcSJoerg WunschA value of 0 suppresses automatic calculation of the expiry date.
577d6f907dcSJoerg Wunsch.It Fl p Ar days
5781dcc6ec7SPhilippe CharnierSet the default password expiration period in days.
579d6f907dcSJoerg Wunsch.It Fl g Ar group
5801dcc6ec7SPhilippe CharnierSet the default group for new users.
581d6f907dcSJoerg WunschIf a blank group is specified using
58208657612SRuslan Ermilov.Fl g Ar \&"" ,
583137db389SSteve Pricethen new users will be allocated their own private primary group
584137db389SSteve Pricewith the same name as their login name.
585d6f907dcSJoerg WunschIf a group is supplied, either its name or uid may be given as an argument.
586d6f907dcSJoerg Wunsch.It Fl G Ar grouplist
587137db389SSteve PriceSet the default groups in which new users are granted membership.
588d6f907dcSJoerg WunschThis is a separate set of groups from the primary group, and you should avoid
589137db389SSteve Pricenominating the same group as both primary and extra groups.
590d6f907dcSJoerg WunschIn other words, these extra groups determine membership in groups
591d6f907dcSJoerg Wunsch.Em other than
592d6f907dcSJoerg Wunschthe primary group.
593d6f907dcSJoerg Wunsch.Ar grouplist
594137db389SSteve Priceis a comma-separated list of group names or ids, and are always
595d6f907dcSJoerg Wunschstored in
596d6f907dcSJoerg Wunsch.Pa /etc/pw.conf
597d6f907dcSJoerg Wunschby their symbolic names.
5989fd0dafcSJoerg Wunsch.It Fl L Ar class
5999fd0dafcSJoerg WunschThis option sets the default login class for new users.
600d6f907dcSJoerg Wunsch.It Fl k Ar dir
6011dcc6ec7SPhilippe CharnierSet the default
602d6f907dcSJoerg Wunsch.Em skeleton
603053375e8SMike Pritcharddirectory, from which prototype shell and other initialization files are copied when
6041dcc6ec7SPhilippe Charnier.Nm
605d6f907dcSJoerg Wunschcreates a user's home directory.
60631e224ddSTom RhodesSee description of
60731e224ddSTom Rhodes.Fl k
60831e224ddSTom Rhodesfor naming conventions of these files.
609610a5778SRuslan Ermilov.It Xo
610610a5778SRuslan Ermilov.Fl u Ar min , Ns Ar max ,
611610a5778SRuslan Ermilov.Fl i Ar min , Ns Ar max
612610a5778SRuslan Ermilov.Xc
6139fd0dafcSJoerg WunschThese options set the minimum and maximum user and group ids allocated for new accounts
614d6f907dcSJoerg Wunschand groups created by
615e97407b4SRuslan Ermilov.Nm .
616d6f907dcSJoerg WunschThe default values for each is 1000 minimum and 32000 maximum.
617d6f907dcSJoerg Wunsch.Ar min
618d6f907dcSJoerg Wunschand
619d6f907dcSJoerg Wunsch.Ar max
620d6f907dcSJoerg Wunschare both numbers, where max must be greater than min, and both must be between 0
621d6f907dcSJoerg Wunschand 32767.
622d6f907dcSJoerg WunschIn general, user and group ids less than 100 are reserved for use by the system,
623d6f907dcSJoerg Wunschand numbers greater than 32000 may also be reserved for special purposes (used by
624d6f907dcSJoerg Wunschsome system daemons).
625d6f907dcSJoerg Wunsch.It Fl w Ar method
626d6f907dcSJoerg WunschThe
62708657612SRuslan Ermilov.Fl w
6289fd0dafcSJoerg Wunschoption sets the default method used to set passwords for newly created user accounts.
629d6f907dcSJoerg Wunsch.Ar method
630d6f907dcSJoerg Wunschis one of:
631d6f907dcSJoerg Wunsch.Pp
632d6f907dcSJoerg Wunsch.Bl -tag -width random -offset indent -compact
633d6f907dcSJoerg Wunsch.It no
6341dcc6ec7SPhilippe Charnierdisable login on newly created accounts
635d6f907dcSJoerg Wunsch.It yes
6361dcc6ec7SPhilippe Charnierforce the password to be the account name
637d6f907dcSJoerg Wunsch.It none
6381dcc6ec7SPhilippe Charnierforce a blank password
639d6f907dcSJoerg Wunsch.It random
6401dcc6ec7SPhilippe Charniergenerate a random password
641d6f907dcSJoerg Wunsch.El
642d6f907dcSJoerg Wunsch.Pp
643d6f907dcSJoerg WunschThe
644d6f907dcSJoerg Wunsch.Ql \&random
645d6f907dcSJoerg Wunschor
646d6f907dcSJoerg Wunsch.Ql \&no
647d6f907dcSJoerg Wunschmethods are the most secure; in the former case,
6481dcc6ec7SPhilippe Charnier.Nm
649d6f907dcSJoerg Wunschgenerates a password and prints it to stdout, which is suitable where you issue
650d6f907dcSJoerg Wunschusers with passwords to access their accounts rather than having the user nominate
651d6f907dcSJoerg Wunschtheir own (possibly poorly chosen) password.
652d6f907dcSJoerg WunschThe
653d6f907dcSJoerg Wunsch.Ql \&no
654d6f907dcSJoerg Wunschmethod requires that the superuser use
655d6f907dcSJoerg Wunsch.Xr passwd 1
656d6f907dcSJoerg Wunschto render the account accessible with a password.
657f1d684faSDavid Nugent.It Fl y Ar path
658490d5836SPhilippe CharnierThis sets the pathname of the database used by
659490d5836SPhilippe Charnier.Tn NIS
660490d5836SPhilippe Charnierif you are not sharing
661f1d684faSDavid Nugentthe information from
662f1d684faSDavid Nugent.Pa /etc/master.passwd
663490d5836SPhilippe Charnierdirectly with
664490d5836SPhilippe Charnier.Tn NIS .
665490d5836SPhilippe CharnierYou should only set this option for
666490d5836SPhilippe Charnier.Tn NIS
667490d5836SPhilippe Charnierservers.
668d6f907dcSJoerg Wunsch.El
669d6f907dcSJoerg Wunsch.Pp
670d6f907dcSJoerg WunschThe
671d6f907dcSJoerg Wunsch.Ar userdel
672f2e366a1SSheldon Hearncommand has only three valid options.
673f2e366a1SSheldon HearnThe
67408657612SRuslan Ermilov.Fl n Ar name
675d6f907dcSJoerg Wunschand
67608657612SRuslan Ermilov.Fl u Ar uid
6779fd0dafcSJoerg Wunschoptions have already been covered above.
6789fd0dafcSJoerg WunschThe additional option is:
6799fd0dafcSJoerg Wunsch.Bl -tag -width "-G grouplist"
680d6f907dcSJoerg Wunsch.It Fl r
681d6f907dcSJoerg WunschThis tells
6821dcc6ec7SPhilippe Charnier.Nm
683d6f907dcSJoerg Wunschto remove the user's home directory and all of its contents.
684490d5836SPhilippe CharnierThe
685490d5836SPhilippe Charnier.Nm
686490d5836SPhilippe Charnierutility errs on the side of caution when removing files from the system.
687d6f907dcSJoerg WunschFirstly, it will not do so if the uid of the account being removed is also used by
688d6f907dcSJoerg Wunschanother account on the system, and the 'home' directory in the password file is
689d6f907dcSJoerg Wunscha valid path that commences with the character
690d6f907dcSJoerg Wunsch.Ql \&/ .
691d6f907dcSJoerg WunschSecondly, it will only remove files and directories that are actually owned by
692d6f907dcSJoerg Wunschthe user, or symbolic links owned by anyone under the user's home directory.
693d6f907dcSJoerg WunschFinally, after deleting all contents owned by the user only empty directories
694d6f907dcSJoerg Wunschwill be removed.
695053375e8SMike PritchardIf any additional cleanup work is required, this is left to the administrator.
696d6f907dcSJoerg Wunsch.El
697d6f907dcSJoerg Wunsch.Pp
698d6f907dcSJoerg WunschMail spool files and crontabs are always removed when an account is deleted as these
699d6f907dcSJoerg Wunschare unconditionally attached to the user name.
700d6f907dcSJoerg WunschJobs queued for processing by
701d6f907dcSJoerg Wunsch.Ar at
702137db389SSteve Priceare also removed if the user's uid is unique and not also used by another account on the
703137db389SSteve Pricesystem.
704d6f907dcSJoerg Wunsch.Pp
705d6f907dcSJoerg WunschThe
706d6f907dcSJoerg Wunsch.Ar usershow
707d6f907dcSJoerg Wunschcommand allows viewing of an account in one of two formats.
708d6f907dcSJoerg WunschBy default, the format is identical to the format used in
709d6f907dcSJoerg Wunsch.Pa /etc/master.passwd
710d6f907dcSJoerg Wunschwith the password field replaced with a
711d6f907dcSJoerg Wunsch.Ql \&* .
712d6f907dcSJoerg WunschIf the
71308657612SRuslan Ermilov.Fl P
7149fd0dafcSJoerg Wunschoption is used, then
7151dcc6ec7SPhilippe Charnier.Nm
716d6f907dcSJoerg Wunschoutputs the account details in a more human readable form.
7174731d076SDima DorfmanIf the
7184731d076SDima Dorfman.Fl 7
7194731d076SDima Dorfmanoption is used, the account details are shown in v7 format.
720d6f907dcSJoerg WunschThe
72108657612SRuslan Ermilov.Fl a
7229fd0dafcSJoerg Wunschoption lists all users currently on file.
723466c257cSDima DorfmanUsing
724466c257cSDima Dorfman.Fl F
725466c257cSDima Dorfmanforces
726466c257cSDima Dorfman.Nm
727466c257cSDima Dorfmanto print the details of an account even if it does not exist.
7289fd0dafcSJoerg Wunsch.Pp
7299fd0dafcSJoerg WunschThe command
7309fd0dafcSJoerg Wunsch.Ar usernext
7319fd0dafcSJoerg Wunschreturns the next available user and group ids separated by a colon.
7329fd0dafcSJoerg WunschThis is normally of interest only to interactive scripts or front-ends
7339fd0dafcSJoerg Wunschthat use
734e97407b4SRuslan Ermilov.Nm .
735d6f907dcSJoerg Wunsch.Sh GROUP OPTIONS
736d6f907dcSJoerg WunschThe
73708657612SRuslan Ermilov.Fl C
738d6f907dcSJoerg Wunschand
73908657612SRuslan Ermilov.Fl q
7409fd0dafcSJoerg Wunschoptions (explained at the start of the previous section) are available
7419fd0dafcSJoerg Wunschwith the group manipulation commands.
742d6f907dcSJoerg WunschOther common options to all group-related commands are:
7439fd0dafcSJoerg Wunsch.Bl -tag -width "-m newmembers"
744d6f907dcSJoerg Wunsch.It Fl n Ar name
7451dcc6ec7SPhilippe CharnierSpecify the group name.
746d6f907dcSJoerg Wunsch.It Fl g Ar gid
7471dcc6ec7SPhilippe CharnierSpecify the group numeric id.
748d6f907dcSJoerg Wunsch.Pp
7499fd0dafcSJoerg WunschAs with the account name and id fields, you will usually only need
7509fd0dafcSJoerg Wunschto supply one of these, as the group name implies the uid and vice
7519fd0dafcSJoerg Wunschversa.
7529fd0dafcSJoerg WunschYou will only need to use both when setting a specific group id
7539fd0dafcSJoerg Wunschagainst a new group or when changing the uid of an existing group.
7547ecd7a42SJoseph Koshy.It Fl M Ar memberlist
7559fd0dafcSJoerg WunschThis option provides an alternative way to add existing users to a
7569fd0dafcSJoerg Wunschnew group (in groupadd) or replace an existing membership list (in
7579fd0dafcSJoerg Wunschgroupmod).
7589fd0dafcSJoerg Wunsch.Ar memberlist
7599fd0dafcSJoerg Wunschis a comma separated list of valid and existing user names or uids.
7609fd0dafcSJoerg Wunsch.It Fl m Ar newmembers
7619fd0dafcSJoerg WunschSimilar to
76208657612SRuslan Ermilov.Fl M ,
7639fd0dafcSJoerg Wunschthis option allows the
7649fd0dafcSJoerg Wunsch.Em addition
765137db389SSteve Priceof existing users to a group without replacing the existing list of
7669fd0dafcSJoerg Wunschmembers.
767137db389SSteve PriceLogin names or user ids may be used, and duplicate users are
768137db389SSteve Pricesilently eliminated.
769d6f907dcSJoerg Wunsch.El
770d6f907dcSJoerg Wunsch.Pp
771d6f907dcSJoerg Wunsch.Ar groupadd
772d6f907dcSJoerg Wunschalso has a
77308657612SRuslan Ermilov.Fl o
774137db389SSteve Priceoption that allows allocation of an existing group id to a new group.
775d6f907dcSJoerg WunschThe default action is to reject an attempt to add a group, and this option overrides
776d6f907dcSJoerg Wunschthe check for duplicate group ids.
777d6f907dcSJoerg WunschThere is rarely any need to duplicate a group id.
778d6f907dcSJoerg Wunsch.Pp
779d6f907dcSJoerg WunschThe
780d6f907dcSJoerg Wunsch.Ar groupmod
781137db389SSteve Pricecommand adds one additional option:
782d6f907dcSJoerg Wunsch.Pp
7839fd0dafcSJoerg Wunsch.Bl -tag -width "-m newmembers"
784d6f907dcSJoerg Wunsch.It Fl l Ar name
785d6f907dcSJoerg WunschThis option allows changing of an existing group name to
786d6f907dcSJoerg Wunsch.Ql \&name .
787d6f907dcSJoerg WunschThe new name must not already exist, and any attempt to duplicate an existing group
788d6f907dcSJoerg Wunschname will be rejected.
789d6f907dcSJoerg Wunsch.El
790d6f907dcSJoerg Wunsch.Pp
791d6f907dcSJoerg WunschOptions for
792d6f907dcSJoerg Wunsch.Ar groupshow
793d6f907dcSJoerg Wunschare the same as for
794d6f907dcSJoerg Wunsch.Ar usershow ,
795d6f907dcSJoerg Wunschwith the
79608657612SRuslan Ermilov.Fl g Ar gid
797d6f907dcSJoerg Wunschreplacing
79808657612SRuslan Ermilov.Fl u Ar uid
799d6f907dcSJoerg Wunschto specify the group id.
8004731d076SDima DorfmanThe
8014731d076SDima Dorfman.Fl 7
8024731d076SDima Dorfmanoption does not apply to the
8034731d076SDima Dorfman.Ar groupshow
8044731d076SDima Dorfmancommand.
805d6f907dcSJoerg Wunsch.Pp
8069fd0dafcSJoerg WunschThe command
8079fd0dafcSJoerg Wunsch.Ar groupnext
8089fd0dafcSJoerg Wunschreturns the next available group id on standard output.
809e468afb4SDima Dorfman.Sh USER LOCKING
810490d5836SPhilippe CharnierThe
811490d5836SPhilippe Charnier.Nm
812490d5836SPhilippe Charnierutility
813e468afb4SDima Dorfmansupports a simple password locking mechanism for users; it works by
814e468afb4SDima Dorfmanprepending the string
815e468afb4SDima Dorfman.Ql *LOCKED*
816e468afb4SDima Dorfmanto the beginning of the password field in
817e468afb4SDima Dorfman.Pa master.passwd
818e468afb4SDima Dorfmanto prevent successful authentication.
819e468afb4SDima Dorfman.Pp
820e468afb4SDima DorfmanThe
821e468afb4SDima Dorfman.Ar lock
822e468afb4SDima Dorfmanand
823e468afb4SDima Dorfman.Ar unlock
824e468afb4SDima Dorfmancommands take a user name or uid of the account to lock or unlock,
82507bfccd7SRuslan Ermilovrespectively.
82607bfccd7SRuslan ErmilovThe
82708657612SRuslan Ermilov.Fl V ,
82808657612SRuslan Ermilov.Fl C ,
829e468afb4SDima Dorfmanand
83008657612SRuslan Ermilov.Fl q
831e468afb4SDima Dorfmanoptions as described above are accepted by these commands.
83259a3c79dSRuslan Ermilov.Sh NOTES
83359a3c79dSRuslan ErmilovFor a summary of options available with each command, you can use
83459a3c79dSRuslan Ermilov.Dl pw [command] help
83559a3c79dSRuslan ErmilovFor example,
83659a3c79dSRuslan Ermilov.Dl pw useradd help
83759a3c79dSRuslan Ermilovlists all available options for the useradd operation.
83859a3c79dSRuslan Ermilov.Pp
83959a3c79dSRuslan ErmilovThe
84059a3c79dSRuslan Ermilov.Nm
84159a3c79dSRuslan Ermilovutility allows 8-bit characters in the passwd GECOS field (user's full name,
84259a3c79dSRuslan Ermilovoffice, work and home phone number subfields), but disallows them in
84359a3c79dSRuslan Ermilovuser login and group names.
84459a3c79dSRuslan ErmilovUse 8-bit characters with caution, as connection to the Internet will
84559a3c79dSRuslan Ermilovrequire that your mail transport program supports 8BITMIME, and will
84659a3c79dSRuslan Ermilovconvert headers containing 8-bit characters to 7-bit quoted-printable
84759a3c79dSRuslan Ermilovformat.
84859a3c79dSRuslan Ermilov.Xr sendmail 8
84959a3c79dSRuslan Ermilovdoes support this.
85059a3c79dSRuslan ErmilovUse of 8-bit characters in the GECOS field should be used in
85159a3c79dSRuslan Ermilovconjunction with the user's default locale and character set
85259a3c79dSRuslan Ermilovand should not be implemented without their use.
85359a3c79dSRuslan ErmilovUsing 8-bit characters may also affect other
85459a3c79dSRuslan Ermilovprograms that transmit the contents of the GECOS field over the
85559a3c79dSRuslan ErmilovInternet, such as
85659a3c79dSRuslan Ermilov.Xr fingerd 8 ,
85759a3c79dSRuslan Ermilovand a small number of TCP/IP clients, such as IRC, where full names
85859a3c79dSRuslan Ermilovspecified in the passwd file may be used by default.
85959a3c79dSRuslan Ermilov.Pp
86059a3c79dSRuslan ErmilovThe
86159a3c79dSRuslan Ermilov.Nm
86259a3c79dSRuslan Ermilovutility writes a log to the
86359a3c79dSRuslan Ermilov.Pa /var/log/userlog
86459a3c79dSRuslan Ermilovfile when actions such as user or group additions or deletions occur.
86559a3c79dSRuslan ErmilovThe location of this logfile can be changed in
86659a3c79dSRuslan Ermilov.Xr pw.conf 5 .
86759a3c79dSRuslan Ermilov.Sh FILES
86859a3c79dSRuslan Ermilov.Bl -tag -width /etc/master.passwd.new -compact
86959a3c79dSRuslan Ermilov.It Pa /etc/master.passwd
87059a3c79dSRuslan ErmilovThe user database
87159a3c79dSRuslan Ermilov.It Pa /etc/passwd
87259a3c79dSRuslan ErmilovA Version 7 format password file
87359a3c79dSRuslan Ermilov.It Pa /etc/login.conf
87459a3c79dSRuslan ErmilovThe user capabilities database
87559a3c79dSRuslan Ermilov.It Pa /etc/group
87659a3c79dSRuslan ErmilovThe group database
87759a3c79dSRuslan Ermilov.It Pa /etc/master.passwd.new
87859a3c79dSRuslan ErmilovTemporary copy of the master password file
87959a3c79dSRuslan Ermilov.It Pa /etc/passwd.new
88059a3c79dSRuslan ErmilovTemporary copy of the Version 7 password file
88159a3c79dSRuslan Ermilov.It Pa /etc/group.new
88259a3c79dSRuslan ErmilovTemporary copy of the group file
88359a3c79dSRuslan Ermilov.It Pa /etc/pw.conf
88459a3c79dSRuslan ErmilovPw default options file
88559a3c79dSRuslan Ermilov.It Pa /var/log/userlog
88659a3c79dSRuslan ErmilovUser/group modification logfile
88759a3c79dSRuslan Ermilov.El
888a866e170SRuslan Ermilov.Sh EXIT STATUS
889490d5836SPhilippe CharnierThe
890490d5836SPhilippe Charnier.Nm
891490d5836SPhilippe Charnierutility returns EXIT_SUCCESS on successful operation, otherwise
892137db389SSteve Price.Nm
893137db389SSteve Pricereturns one of the
8949fd0dafcSJoerg Wunschfollowing exit codes defined by
8959fd0dafcSJoerg Wunsch.Xr sysexits 3
8969fd0dafcSJoerg Wunschas follows:
8979fd0dafcSJoerg Wunsch.Bl -tag -width xxxx
8989fd0dafcSJoerg Wunsch.It EX_USAGE
8999fd0dafcSJoerg Wunsch.Bl -bullet -compact
9009fd0dafcSJoerg Wunsch.It
9011dcc6ec7SPhilippe CharnierCommand line syntax errors (invalid keyword, unknown option).
9029fd0dafcSJoerg Wunsch.El
9039fd0dafcSJoerg Wunsch.It EX_NOPERM
9049fd0dafcSJoerg Wunsch.Bl -bullet -compact
9059fd0dafcSJoerg Wunsch.It
9069fd0dafcSJoerg WunschAttempting to run one of the update modes as non-root.
9079fd0dafcSJoerg Wunsch.El
9089fd0dafcSJoerg Wunsch.It EX_OSERR
9099fd0dafcSJoerg Wunsch.Bl -bullet -compact
9109fd0dafcSJoerg Wunsch.It
9119fd0dafcSJoerg WunschMemory allocation error.
9129fd0dafcSJoerg Wunsch.It
9139fd0dafcSJoerg WunschRead error from password file descriptor.
9149fd0dafcSJoerg Wunsch.El
9159fd0dafcSJoerg Wunsch.It EX_DATAERR
9169fd0dafcSJoerg Wunsch.Bl -bullet -compact
9179fd0dafcSJoerg Wunsch.It
9189fd0dafcSJoerg WunschBad or invalid data provided or missing on the command line or
919137db389SSteve Pricevia the password file descriptor.
9209fd0dafcSJoerg Wunsch.It
9219fd0dafcSJoerg WunschAttempted to remove, rename root account or change its uid.
9229fd0dafcSJoerg Wunsch.El
9239fd0dafcSJoerg Wunsch.It EX_OSFILE
9249fd0dafcSJoerg Wunsch.Bl -bullet -compact
9259fd0dafcSJoerg Wunsch.It
9269fd0dafcSJoerg WunschSkeleton directory is invalid or does not exist.
9279fd0dafcSJoerg Wunsch.It
9289fd0dafcSJoerg WunschBase home directory is invalid or does not exist.
9299fd0dafcSJoerg Wunsch.It
930137db389SSteve PriceInvalid or non-existent shell specified.
9319fd0dafcSJoerg Wunsch.El
9329fd0dafcSJoerg Wunsch.It EX_NOUSER
9339fd0dafcSJoerg Wunsch.Bl -bullet -compact
9349fd0dafcSJoerg Wunsch.It
9359fd0dafcSJoerg WunschUser, user id, group or group id specified does not exist.
9369fd0dafcSJoerg Wunsch.It
937137db389SSteve PriceUser or group recorded, added, or modified unexpectedly disappeared.
9389fd0dafcSJoerg Wunsch.El
9399fd0dafcSJoerg Wunsch.It EX_SOFTWARE
9409fd0dafcSJoerg Wunsch.Bl -bullet -compact
9419fd0dafcSJoerg Wunsch.It
9429fd0dafcSJoerg WunschNo more group or user ids available within specified range.
9439fd0dafcSJoerg Wunsch.El
9449fd0dafcSJoerg Wunsch.It EX_IOERR
9459fd0dafcSJoerg Wunsch.Bl -bullet -compact
9469fd0dafcSJoerg Wunsch.It
9479fd0dafcSJoerg WunschUnable to rewrite configuration file.
9489fd0dafcSJoerg Wunsch.It
9499fd0dafcSJoerg WunschError updating group or user database files.
9509fd0dafcSJoerg Wunsch.It
9519fd0dafcSJoerg WunschUpdate error for passwd or group database files.
9529fd0dafcSJoerg Wunsch.El
9539fd0dafcSJoerg Wunsch.It EX_CONFIG
9549fd0dafcSJoerg Wunsch.Bl -bullet -compact
9559fd0dafcSJoerg Wunsch.It
9569fd0dafcSJoerg WunschNo base home directory configured.
9579fd0dafcSJoerg Wunsch.El
9589fd0dafcSJoerg Wunsch.El
959d6f907dcSJoerg Wunsch.Sh SEE ALSO
960d6f907dcSJoerg Wunsch.Xr chpass 1 ,
961053375e8SMike Pritchard.Xr passwd 1 ,
962d6f907dcSJoerg Wunsch.Xr group 5 ,
963bfd34a4aSWolfram Schneider.Xr login.conf 5 ,
964053375e8SMike Pritchard.Xr passwd 5 ,
965053375e8SMike Pritchard.Xr pw.conf 5 ,
966d6f907dcSJoerg Wunsch.Xr pwd_mkdb 8 ,
967053375e8SMike Pritchard.Xr vipw 8
968d6f907dcSJoerg Wunsch.Sh HISTORY
969490d5836SPhilippe CharnierThe
970490d5836SPhilippe Charnier.Nm
971490d5836SPhilippe Charnierutility was written to mimic many of the options used in the SYSV
972d6f907dcSJoerg Wunsch.Em shadow
9739fd0dafcSJoerg Wunschsupport suite, but is modified for passwd and group fields specific to
974053375e8SMike Pritchardthe
975053375e8SMike Pritchard.Bx 4.4
9769fd0dafcSJoerg Wunschoperating system, and combines all of the major elements
9779fd0dafcSJoerg Wunschinto a single command.
978