xref: /freebsd/usr.sbin/pw/pw.8 (revision f2e366a1057c0492a8abdf936898879a630e633e)
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.\"
279fd0dafcSJoerg Wunsch.Dd December 9, 1996
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
34d6f907dcSJoerg Wunsch.Nm pw
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
50d6f907dcSJoerg Wunsch.Op Fl s Ar shell
51d6f907dcSJoerg Wunsch.Op Fl o
52d6f907dcSJoerg Wunsch.Op Fl L Ar class
53d6f907dcSJoerg Wunsch.Op Fl h Ar fd
549fd0dafcSJoerg Wunsch.Op Fl N
559fd0dafcSJoerg Wunsch.Op Fl P
56f1d684faSDavid Nugent.Op Fl Y
57d6f907dcSJoerg Wunsch.Nm pw
585f12594aSDavid Nugent.Op Fl V Ar etcdir
59d6f907dcSJoerg Wunsch.Ar useradd
60d6f907dcSJoerg Wunsch.Op name|uid
61f1d684faSDavid Nugent.Fl D
62d6f907dcSJoerg Wunsch.Op Fl C Ar config
63d6f907dcSJoerg Wunsch.Op Fl q
64d6f907dcSJoerg Wunsch.Op Fl b Ar dir
65d6f907dcSJoerg Wunsch.Op Fl e Ar days
66d6f907dcSJoerg Wunsch.Op Fl p Ar days
67d6f907dcSJoerg Wunsch.Op Fl g Ar group
68d6f907dcSJoerg Wunsch.Op Fl G Ar grouplist
69d6f907dcSJoerg Wunsch.Op Fl k Ar dir
70d6f907dcSJoerg Wunsch.Op Fl u Ar min,max
71d6f907dcSJoerg Wunsch.Op Fl i Ar min,max
72d6f907dcSJoerg Wunsch.Op Fl w Ar method
73d6f907dcSJoerg Wunsch.Op Fl s Ar shell
74f1d684faSDavid Nugent.Op Fl y Ar path
75d6f907dcSJoerg Wunsch.Nm pw
765f12594aSDavid Nugent.Op Fl V Ar etcdir
77d6f907dcSJoerg Wunsch.Ar userdel
78d6f907dcSJoerg Wunsch.Op name|uid
79d6f907dcSJoerg Wunsch.Op Fl n Ar name
80d6f907dcSJoerg Wunsch.Op Fl u Ar uid
81d6f907dcSJoerg Wunsch.Op Fl r
82f1d684faSDavid Nugent.Op Fl Y
83d6f907dcSJoerg Wunsch.Nm pw
845f12594aSDavid Nugent.Op Fl V Ar etcdir
85d6f907dcSJoerg Wunsch.Ar usermod
86d6f907dcSJoerg Wunsch.Op name|uid
87d6f907dcSJoerg Wunsch.Op Fl C Ar config
88d6f907dcSJoerg Wunsch.Op Fl q
89d6f907dcSJoerg Wunsch.Op Fl n Ar name
90d6f907dcSJoerg Wunsch.Op Fl u Ar uid
91d6f907dcSJoerg Wunsch.Op Fl c Ar comment
92d6f907dcSJoerg Wunsch.Op Fl d Ar dir
93d6f907dcSJoerg Wunsch.Op Fl e Ar date
94d6f907dcSJoerg Wunsch.Op Fl p Ar date
95d6f907dcSJoerg Wunsch.Op Fl g Ar group
96d6f907dcSJoerg Wunsch.Op Fl G Ar grouplist
97d6f907dcSJoerg Wunsch.Op Fl l Ar name
98d6f907dcSJoerg Wunsch.Op Fl m
99d6f907dcSJoerg Wunsch.Op Fl k Ar dir
1009fd0dafcSJoerg Wunsch.Op Fl w Ar method
101d6f907dcSJoerg Wunsch.Op Fl s Ar shell
102d6f907dcSJoerg Wunsch.Op Fl L Ar class
103d6f907dcSJoerg Wunsch.Op Fl h Ar fd
1049fd0dafcSJoerg Wunsch.Op Fl N
1059fd0dafcSJoerg Wunsch.Op Fl P
106f1d684faSDavid Nugent.Op Fl Y
107d6f907dcSJoerg Wunsch.Nm pw
1085f12594aSDavid Nugent.Op Fl V Ar etcdir
109d6f907dcSJoerg Wunsch.Ar usershow
110d6f907dcSJoerg Wunsch.Op name|uid
111d6f907dcSJoerg Wunsch.Op Fl n Ar name
112d6f907dcSJoerg Wunsch.Op Fl u Ar uid
113d6f907dcSJoerg Wunsch.Op Fl F
1149fd0dafcSJoerg Wunsch.Op Fl P
115d6f907dcSJoerg Wunsch.Op Fl a
116d6f907dcSJoerg Wunsch.Nm pw
1175f12594aSDavid Nugent.Op Fl V Ar etcdir
1189fd0dafcSJoerg Wunsch.Ar usernext
1199fd0dafcSJoerg Wunsch.Op Fl C Ar config
1209fd0dafcSJoerg Wunsch.Op Fl q
1219fd0dafcSJoerg Wunsch.Nm pw
1225f12594aSDavid Nugent.Op Fl V Ar etcdir
123d6f907dcSJoerg Wunsch.Ar groupadd
124d6f907dcSJoerg Wunsch.Op group|gid
125d6f907dcSJoerg Wunsch.Op Fl C Ar config
126d6f907dcSJoerg Wunsch.Op Fl q
127d6f907dcSJoerg Wunsch.Op Fl n Ar group
128d6f907dcSJoerg Wunsch.Op Fl g Ar gid
1299fd0dafcSJoerg Wunsch.Op Fl M Ar members
130d6f907dcSJoerg Wunsch.Op Fl o
131d6f907dcSJoerg Wunsch.Op Fl h Ar fd
1329fd0dafcSJoerg Wunsch.Op Fl N
1339fd0dafcSJoerg Wunsch.Op Fl P
134f1d684faSDavid Nugent.Op Fl Y
135d6f907dcSJoerg Wunsch.Nm pw
1365f12594aSDavid Nugent.Op Fl V Ar etcdir
137d6f907dcSJoerg Wunsch.Ar groupdel
13806f64964SJoseph Koshy.Op group|gid
139d6f907dcSJoerg Wunsch.Op Fl n Ar name
140d6f907dcSJoerg Wunsch.Op Fl g Ar gid
141f1d684faSDavid Nugent.Op Fl Y
142d6f907dcSJoerg Wunsch.Nm pw
1435f12594aSDavid Nugent.Op Fl V Ar etcdir
144d6f907dcSJoerg Wunsch.Ar groupmod
14506f64964SJoseph Koshy.Op group|gid
146d6f907dcSJoerg Wunsch.Op Fl C Ar config
147d6f907dcSJoerg Wunsch.Op Fl q
148d6f907dcSJoerg Wunsch.Op Fl F
149d6f907dcSJoerg Wunsch.Op Fl n Ar name
150d6f907dcSJoerg Wunsch.Op Fl g Ar gid
151d6f907dcSJoerg Wunsch.Op Fl l Ar name
1529fd0dafcSJoerg Wunsch.Op Fl M Ar members
1539fd0dafcSJoerg Wunsch.Op Fl m Ar newmembers
154d6f907dcSJoerg Wunsch.Op Fl h Ar fd
1559fd0dafcSJoerg Wunsch.Op Fl N
1569fd0dafcSJoerg Wunsch.Op Fl P
157f1d684faSDavid Nugent.Op Fl Y
158d6f907dcSJoerg Wunsch.Nm pw
1595f12594aSDavid Nugent.Op Fl V Ar etcdir
160d6f907dcSJoerg Wunsch.Ar groupshow
16106f64964SJoseph Koshy.Op group|gid
162d6f907dcSJoerg Wunsch.Op Fl n Ar name
163d6f907dcSJoerg Wunsch.Op Fl g Ar gid
164d6f907dcSJoerg Wunsch.Op Fl F
1659fd0dafcSJoerg Wunsch.Op Fl P
166d6f907dcSJoerg Wunsch.Op Fl a
1679fd0dafcSJoerg Wunsch.Nm pw
1685f12594aSDavid Nugent.Op Fl V Ar etcdir
1699fd0dafcSJoerg Wunsch.Ar groupnext
1709fd0dafcSJoerg Wunsch.Op Fl C Ar config
1719fd0dafcSJoerg Wunsch.Op Fl q
172d6f907dcSJoerg Wunsch.Sh DESCRIPTION
1731dcc6ec7SPhilippe Charnier.Nm Pw
174d6f907dcSJoerg Wunschis a command-line based editor for the system
1751dcc6ec7SPhilippe Charnier.Ar user
176d6f907dcSJoerg Wunschand
1771dcc6ec7SPhilippe Charnier.Ar group
1783a7e7077SDaniel O'Callaghanfiles, allowing the superuser an easy to use and standardized way of adding,
179d6f907dcSJoerg Wunschmodifying and removing users and groups.
180d6f907dcSJoerg WunschNote that
1811dcc6ec7SPhilippe Charnier.Nm
182137db389SSteve Priceonly operates on the local user and group files.  NIS users and groups must be
183d6f907dcSJoerg Wunschmaintained on the NIS server.
1841dcc6ec7SPhilippe Charnier.Nm Pw
185053375e8SMike Pritchardhandles updating the
186053375e8SMike Pritchard.Pa passwd ,
187053375e8SMike Pritchard.Pa master.passwd ,
188053375e8SMike Pritchard.Pa group
189053375e8SMike Pritchardand the secure and insecure
190d6f907dcSJoerg Wunschpassword database files, and must be run as root.
191d6f907dcSJoerg Wunsch.Pp
192137db389SSteve PriceThe first one or two keywords provided to
193137db389SSteve Price.Nm
194137db389SSteve Priceon the command line provide the context for the remainder of the arguments.
195137db389SSteve PriceThe keywords
196d6f907dcSJoerg Wunsch.Ar user
197d6f907dcSJoerg Wunschand
198d6f907dcSJoerg Wunsch.Ar group
199137db389SSteve Pricemay be combined with
200d6f907dcSJoerg Wunsch.Ar add ,
201d6f907dcSJoerg Wunsch.Ar del ,
2029fd0dafcSJoerg Wunsch.Ar mod ,
203d6f907dcSJoerg Wunsch.Ar show ,
2049fd0dafcSJoerg Wunschor
205137db389SSteve Price.Ar next
206137db389SSteve Pricein any order. (For example,
207137db389SSteve Price.Ar showuser ,
208137db389SSteve Price.Ar usershow ,
209137db389SSteve Price.Ar show user , and
210137db389SSteve Price.Ar user show
211137db389SSteve Priceall mean the same thing.)
212137db389SSteve PriceThis flexibility is useful for interactive scripts calling
2131dcc6ec7SPhilippe Charnier.Nm
214137db389SSteve Pricefor user and group database manipulation.
215d6f907dcSJoerg WunschFollowing these keywords, you may optionally specify the user or group name or numeric
216d6f907dcSJoerg Wunschid as an alternative to using the
217d6f907dcSJoerg Wunsch.Fl n Ar name ,
218d6f907dcSJoerg Wunsch.Fl u Ar uid ,
219d6f907dcSJoerg Wunsch.Fl g Ar gid
2209fd0dafcSJoerg Wunschoptions.
221d6f907dcSJoerg Wunsch.Pp
2225f12594aSDavid NugentThe following flags are common to most or all modes of operation;
223d6f907dcSJoerg Wunsch.Pp
2249fd0dafcSJoerg Wunsch.Bl -tag -width "-G grouplist"
2255f12594aSDavid Nugent.It Fl V Ar etcdir
2265f12594aSDavid NugentThis flag sets an alternate location for the password, group and configuration files,
2275f12594aSDavid Nugentand may be used to maintain a user/group database in an alternate location.
2285f12594aSDavid NugentIf this switch is specified, the system
2295f12594aSDavid Nugent.Pa /etc/pw.conf
2305f12594aSDavid Nugentwill not be sourced for default configuration data, but the file pw.conf in the
2315f12594aSDavid Nugentspecified directory will be used instead (or none, if it does not exist).
2325f12594aSDavid NugentThe
2335f12594aSDavid Nugent.Fl C
2345f12594aSDavid Nugentflag may be used to override this behaviour.
2355f12594aSDavid NugentAs an exception to the general rule where options must follow the operation
2365f12594aSDavid Nugenttype, the
2375f12594aSDavid Nugent.Fl V
2385f12594aSDavid Nugentflag may be used on the command line before the operation keyword.
239d6f907dcSJoerg Wunsch.It Fl C Ar config
240d6f907dcSJoerg WunschBy default,
2411dcc6ec7SPhilippe Charnier.Nm
242d6f907dcSJoerg Wunschreads the file
243d6f907dcSJoerg Wunsch.Pa /etc/pw.conf
244137db389SSteve Priceto obtain policy information on how new user accounts and groups are to be created.
245137db389SSteve PriceThe
2469fd0dafcSJoerg Wunsch.Fl C
2479fd0dafcSJoerg Wunschoption specifies a different configuration file.
248137db389SSteve PriceWhile most of the contents of the configuration file may be overridden via
249137db389SSteve Pricecommand-line options, it may be more convenient to keep standard information in a
250137db389SSteve Priceconfiguration file.
251d6f907dcSJoerg Wunsch.It Fl q
252d6f907dcSJoerg WunschUse of this option causes
2531dcc6ec7SPhilippe Charnier.Nm
254d6f907dcSJoerg Wunschto suppress error messages, which may be useful in interactive environments where it
255d6f907dcSJoerg Wunschis preferable to interpret status codes returned by
2561dcc6ec7SPhilippe Charnier.Nm
257d6f907dcSJoerg Wunschrather than messing up a carefully formatted display.
2589fd0dafcSJoerg Wunsch.It Fl N
259137db389SSteve PriceThis option is available in
260137db389SSteve Price.Ar add
261137db389SSteve Priceand
262137db389SSteve Price.Ar modify
263137db389SSteve Priceoperations, and tells
2641dcc6ec7SPhilippe Charnier.Nm
265137db389SSteve Priceto output the result of the operation without updating the user or group
266137db389SSteve Pricedatabases.
2679fd0dafcSJoerg WunschYou may use the
2689fd0dafcSJoerg Wunsch.Fl P
2699fd0dafcSJoerg Wunschoption to switch between standard passwd and readable formats.
270f1d684faSDavid Nugent.It Fl Y
271f1d684faSDavid NugentUsing this option with any of the update modes causes
2721dcc6ec7SPhilippe Charnier.Nm
273f1d684faSDavid Nugentto run
274f1d684faSDavid Nugent.Xr make 1
275f1d684faSDavid Nugentafter changing to the directory
276f1d684faSDavid Nugent.Pa /var/yp .
277137db389SSteve PriceThis is intended to allow automatic updating of NIS database files.
278f1d684faSDavid NugentIf separate passwd and group files are being used by NIS, then use the
279f1d684faSDavid Nugent.Fl y Ar path
280137db389SSteve Priceoption to specify the location of the NIS passwd database so that
281137db389SSteve Price.Nm
282137db389SSteve Pricewill concurrently update it with the system password
283f1d684faSDavid Nugentdatabases.
284d6f907dcSJoerg Wunsch.El
285d6f907dcSJoerg Wunsch.Pp
286d6f907dcSJoerg Wunsch.Sh USER OPTIONS
287d6f907dcSJoerg WunschThe following options apply to the
288137db389SSteve Price.Ar useradd
289d6f907dcSJoerg Wunschand
290137db389SSteve Price.Ar usermod
291d6f907dcSJoerg Wunschcommands:
292d6f907dcSJoerg Wunsch.Pp
2939fd0dafcSJoerg Wunsch.Bl -tag -width "-G grouplist"
294d6f907dcSJoerg Wunsch.It Fl n Ar name
2951dcc6ec7SPhilippe CharnierSpecify the user/account name.
296d6f907dcSJoerg Wunsch.It Fl u Ar uid
2971dcc6ec7SPhilippe CharnierSpecify the user/account numeric id.
298d6f907dcSJoerg Wunsch.Pp
299137db389SSteve PriceUsually, you only need to provide one or the other of these options, as the account
300137db389SSteve Pricename will imply the uid, or vice versa.
301137db389SSteve PriceHowever, there are times when you need to provide both.
302d6f907dcSJoerg WunschFor example, when changing the uid of an existing user with
303d6f907dcSJoerg Wunsch.Ar usermod ,
304d6f907dcSJoerg Wunschor overriding the default uid when creating a new account.
305d6f907dcSJoerg WunschIf you wish
3061dcc6ec7SPhilippe Charnier.Nm
307137db389SSteve Priceto automatically allocate the uid to a new user with
308d6f907dcSJoerg Wunsch.Ar useradd ,
309d6f907dcSJoerg Wunschthen you should
310d6f907dcSJoerg Wunsch.Em not
311d6f907dcSJoerg Wunschuse the
312d6f907dcSJoerg Wunsch.Ql Fl u
3139fd0dafcSJoerg Wunschoption.
314137db389SSteve PriceYou may also provide either the account or userid immediately after the
315137db389SSteve Price.Ar useradd ,
316137db389SSteve Price.Ar userdel ,
317137db389SSteve Price.Ar usermod
318137db389SSteve Priceor
319137db389SSteve Price.Ar usershow
320137db389SSteve Pricekeywords on the command line without using the
321137db389SSteve Price.Ql Fl n
322137db389SSteve Priceor
323137db389SSteve Price.Ql Fl u
324137db389SSteve Priceoptions.
325d6f907dcSJoerg Wunsch.El
326d6f907dcSJoerg Wunsch.Pp
327d6f907dcSJoerg Wunsch.Bl -tag -width "-G grouplist"
328d6f907dcSJoerg Wunsch.It Fl c Ar comment
329d6f907dcSJoerg WunschThis field sets the contents of the passwd GECOS field, which normally contains up
330d6f907dcSJoerg Wunschto four comma-separated fields containing the user's full name, office or location,
331137db389SSteve Priceand work and home phone numbers.
332d6f907dcSJoerg WunschThese sub-fields are used by convention only, however, and are optional.
333d6f907dcSJoerg WunschIf this field is to contain spaces, you need to quote the comment itself with double
334d6f907dcSJoerg Wunschquotes
335d6f907dcSJoerg Wunsch.Ql \&" .
336d6f907dcSJoerg WunschAvoid using commas in this field as these are used as sub-field separators, and the
337d6f907dcSJoerg Wunschcolon
338d6f907dcSJoerg Wunsch.Ql \&:
339137db389SSteve Pricecharacter also cannot be used as this is the field separator for the passwd
340137db389SSteve Pricefile itself.
341d6f907dcSJoerg Wunsch.It Fl d Ar dir
342d6f907dcSJoerg WunschThis option sets the account's home directory.
343d6f907dcSJoerg WunschNormally, you will only use this if the home directory is to be different from the
344137db389SSteve Pricedefault determined from
345137db389SSteve Price.Pa /etc/pw.conf
3461dcc6ec7SPhilippe Charnier- normally
3471dcc6ec7SPhilippe Charnier.Pa /home
348137db389SSteve Pricewith the account name as a subdirectory.
349d6f907dcSJoerg Wunsch.It Fl e Ar date
3501dcc6ec7SPhilippe CharnierSet the account's expiration date.
351d6f907dcSJoerg WunschFormat of the date is either a UNIX time in decimal, or a date in
352137db389SSteve Price.Ql dd-mmm-yy[yy]
353d6f907dcSJoerg Wunschformat, where dd is the day, mmm is the month, either in numeric or alphabetic format
3541dcc6ec7SPhilippe Charnier('Jan', 'Feb', etc) and year is either a two or four digit year.
355d6f907dcSJoerg WunschThis option also accepts a relative date in the form
356d6f907dcSJoerg Wunsch.Ql \&+n[mhdwoy]
357d6f907dcSJoerg Wunschwhere
358d6f907dcSJoerg Wunsch.Ql \&n
359d6f907dcSJoerg Wunschis a decimal, octal (leading 0) or hexadecimal (leading 0x) digit followed by the
360053375e8SMike Pritchardnumber of Minutes, Hours, Days, Weeks, Months or Years from the current date at
361137db389SSteve Pricewhich the expiration date is to be set.
362d6f907dcSJoerg Wunsch.It Fl p Ar date
3631dcc6ec7SPhilippe CharnierSet the account's password expiration date.
364137db389SSteve PriceThis field is similar to the account expiration date option, except that it
365d6f907dcSJoerg Wunschapplies to forced password changes.
366137db389SSteve PriceThis is set in the same manner as the
367137db389SSteve Price.Ql Fl e
368137db389SSteve Priceoption.
369d6f907dcSJoerg Wunsch.It Fl g Ar group
3701dcc6ec7SPhilippe CharnierSet the account's primary group to the given group.
371d6f907dcSJoerg Wunsch.Ar group
372137db389SSteve Pricemay be defined by either its name or group number.
373d6f907dcSJoerg Wunsch.It Fl G Ar grouplist
374137db389SSteve PriceSets additional group memberships for an account.
375d6f907dcSJoerg Wunsch.Ar grouplist
376137db389SSteve Priceis a comma-separated list of group names or group numbers.
377137db389SSteve PriceThe user's name is added to the group lists in
378d6f907dcSJoerg Wunsch.Pa /etc/group ,
379137db389SSteve Priceand
380d6f907dcSJoerg Wunschremoved from any groups not specified in
381d6f907dcSJoerg Wunsch.Ar grouplist .
382137db389SSteve PriceNote: a user should not be added to their primary group with
383137db389SSteve Price.Ar grouplist .
384137db389SSteve PriceAlso, group membership changes do not take effect for current user login
385137db389SSteve Pricesessions, requiring the user to reconnect to be affected by the changes.
3869fd0dafcSJoerg Wunsch.It Fl L Ar class
3879fd0dafcSJoerg WunschThis option sets the login class for the user being created.
3889fd0dafcSJoerg WunschSee
3899fd0dafcSJoerg Wunsch.Xr login.conf 5
390137db389SSteve Pricefor more information on user login classes.
391d6f907dcSJoerg Wunsch.It Fl m
392d6f907dcSJoerg WunschThis option instructs
3931dcc6ec7SPhilippe Charnier.Nm
394d6f907dcSJoerg Wunschto attempt to create the user's home directory.
395d6f907dcSJoerg WunschWhile primarily useful when adding a new account with
396d6f907dcSJoerg Wunsch.Ar useradd ,
397d6f907dcSJoerg Wunschthis may also be of use when moving an existing user's home directory elsewhere on
398d6f907dcSJoerg Wunschthe filesystem.
399d6f907dcSJoerg WunschThe new home directory is populated with the contents of the
400d6f907dcSJoerg Wunsch.Ar skeleton
401d6f907dcSJoerg Wunschdirectory, which typically contains a set of shell configuration files that the
402053375e8SMike Pritcharduser may personalize to taste.
403d6f907dcSJoerg WunschWhen
404d6f907dcSJoerg Wunsch.Ql Fl m
405d6f907dcSJoerg Wunschis used on an account with
406d6f907dcSJoerg Wunsch.Ar usermod ,
407137db389SSteve Priceexisting configuration files in the user's home directory are
408d6f907dcSJoerg Wunsch.Em not
409137db389SSteve Priceoverwritten from the skeleton files.
410d6f907dcSJoerg Wunsch.Pp
411137db389SSteve PriceWhen a user's home directory is created, it will by default be a subdirectory of the
412d6f907dcSJoerg Wunsch.Ar basehome
413137db389SSteve Pricedirectory as specified by the
414137db389SSteve Price.Ql Fl b
415137db389SSteve Priceoption (see below), bearing the name of the new account.
416137db389SSteve PriceThis can be overridden by the
417137db389SSteve Price.Ql Fl d
418d6f907dcSJoerg Wunschoption on the command line, if desired.
419d6f907dcSJoerg Wunsch.It Fl k Ar dir
4201dcc6ec7SPhilippe CharnierSet the
421d6f907dcSJoerg Wunsch.Ar skeleton
422137db389SSteve Pricedirectory, from which basic startup and configuration files are copied when
423d6f907dcSJoerg Wunschthe user's home directory is created.
424137db389SSteve PriceThis option only has meaning when used with the
425137db389SSteve Price.Ql Fl d
426137db389SSteve Priceor
427137db389SSteve Price.Ql Fl m
428137db389SSteve Priceflags.
429d6f907dcSJoerg Wunsch.It Fl s Ar shell
4301dcc6ec7SPhilippe CharnierSet or changes the user's login shell to
431d6f907dcSJoerg Wunsch.Ar shell .
432d6f907dcSJoerg WunschIf the path to the shell program is omitted,
4331dcc6ec7SPhilippe Charnier.Nm
434d6f907dcSJoerg Wunschsearches the
435d6f907dcSJoerg Wunsch.Ar shellpath
436d6f907dcSJoerg Wunschspecified in
437d6f907dcSJoerg Wunsch.Pa /etc/pw.conf
438d6f907dcSJoerg Wunschand fills it in as appropriate.
439d6f907dcSJoerg WunschNote that unless you have a specific reason to do so, you should avoid
440d6f907dcSJoerg Wunschspecifying the path - this will allow
4411dcc6ec7SPhilippe Charnier.Nm
442d6f907dcSJoerg Wunschto validate that the program exists and is executable.
443d6f907dcSJoerg WunschSpecifying a full path (or supplying a blank "" shell) avoids this check
444d6f907dcSJoerg Wunschand allows for such entries as
4451dcc6ec7SPhilippe Charnier.Pa /nonexistent
446d6f907dcSJoerg Wunschthat should be set for accounts not intended for interactive login.
447d6f907dcSJoerg Wunsch.It Fl L Ar class
4481dcc6ec7SPhilippe CharnierSet the
449d6f907dcSJoerg Wunsch.Em class
450d6f907dcSJoerg Wunschfield in the user's passwd record.
451137db389SSteve PriceThis field is not currently used, but will be used in the future to specify a
452d6f907dcSJoerg Wunsch.Em termcap
453f2e366a1SSheldon Hearnentry like tag.
454f2e366a1SSheldon HearnSee
455d6f907dcSJoerg Wunsch.Xr passwd 5
456137db389SSteve Pricefor details.
457d6f907dcSJoerg Wunsch.It Fl h Ar fd
458d6f907dcSJoerg WunschThis option provides a special interface by which interactive scripts can
459d6f907dcSJoerg Wunschset an account password using
460d6f907dcSJoerg Wunsch.Nm pw .
461137db389SSteve PriceBecause the command line and environment are fundamentally insecure mechanisms
462d6f907dcSJoerg Wunschby which programs can accept information,
4631dcc6ec7SPhilippe Charnier.Nm
464d6f907dcSJoerg Wunschwill only allow setting of account and group passwords via a file descriptor
465d6f907dcSJoerg Wunsch(usually a pipe between an interactive script and the program).
466d6f907dcSJoerg Wunsch.Ar sh ,
467d6f907dcSJoerg Wunsch.Ar bash ,
468d6f907dcSJoerg Wunsch.Ar ksh
469d6f907dcSJoerg Wunschand
470d6f907dcSJoerg Wunsch.Ar perl
471137db389SSteve Priceall possess mechanisms by which this can be done.
472d6f907dcSJoerg WunschAlternatively,
473325970a9SPhilippe Charnier.Nm
474d6f907dcSJoerg Wunschwill prompt for the user's password if
475d6f907dcSJoerg Wunsch.Ql Fl h Ar 0
476d6f907dcSJoerg Wunschis given, nominating
477d6f907dcSJoerg Wunsch.Em stdin
478d6f907dcSJoerg Wunschas the file descriptor on which to read the password.
479137db389SSteve PriceNote that this password will be read only once and is intended
480137db389SSteve Pricefor use by a script rather than for interactive use.
481d6f907dcSJoerg WunschIf you wish to have new password confirmation along the lines of
482d6f907dcSJoerg Wunsch.Xr passwd 1 ,
483137db389SSteve Pricethis must be implemented as part of an interactive script that calls
484d6f907dcSJoerg Wunsch.Nm pw .
485d6f907dcSJoerg Wunsch.Pp
486d6f907dcSJoerg WunschIf a value of
487d6f907dcSJoerg Wunsch.Ql \&-
488d6f907dcSJoerg Wunschis given as the argument
489d6f907dcSJoerg Wunsch.Ar fd ,
490d6f907dcSJoerg Wunschthen the password will be set to
491d6f907dcSJoerg Wunsch.Ql \&* ,
492137db389SSteve Pricerendering the account inaccessible via password-based login.
493d6f907dcSJoerg Wunsch.El
494d6f907dcSJoerg Wunsch.Pp
495d6f907dcSJoerg WunschIt is possible to use
496d6f907dcSJoerg Wunsch.Ar useradd
497d6f907dcSJoerg Wunschto create a new account that duplicates an existing user id.
498d6f907dcSJoerg WunschWhile this is normally considered an error and will be rejected, the
499d6f907dcSJoerg Wunsch.Ql Fl o
5009fd0dafcSJoerg Wunschoption overrides the check for duplicates and allows the duplication of
5019fd0dafcSJoerg Wunschthe user id.
5029fd0dafcSJoerg WunschThis may be useful if you allow the same user to login under
5039fd0dafcSJoerg Wunschdifferent contexts (different group allocations, different home
5049fd0dafcSJoerg Wunschdirectory, different shell) while providing basically the same
5059fd0dafcSJoerg Wunschpermissions for access to the user's files in each account.
506d6f907dcSJoerg Wunsch.Pp
507d6f907dcSJoerg WunschThe
508d6f907dcSJoerg Wunsch.Ar useradd
509d6f907dcSJoerg Wunschcommand also has the ability to set new user and group defaults by using the
510d6f907dcSJoerg Wunsch.Ql Fl D
5119fd0dafcSJoerg Wunschoption.
512d6f907dcSJoerg WunschInstead of adding a new user,
5131dcc6ec7SPhilippe Charnier.Nm
514d6f907dcSJoerg Wunschwrites a new set of defaults to its configuration file,
515d6f907dcSJoerg Wunsch.Pa /etc/pw.conf .
516d6f907dcSJoerg WunschWhen using the
517d6f907dcSJoerg Wunsch.Ql Fl D
5189fd0dafcSJoerg Wunschoption, you must not use either
519d6f907dcSJoerg Wunsch.Ql Fl n Ar name
520d6f907dcSJoerg Wunschor
521d6f907dcSJoerg Wunsch.Ql Fl u Ar uid
522d6f907dcSJoerg Wunschor an error will result.
523d6f907dcSJoerg WunschUse of
524d6f907dcSJoerg Wunsch.Ql Fl D
5259fd0dafcSJoerg Wunschchanges the meaning of several command line switches in the
526d6f907dcSJoerg Wunsch.Ar useradd
527d6f907dcSJoerg Wunschcommand.
528d6f907dcSJoerg WunschThese are:
529d6f907dcSJoerg Wunsch.Bl -tag -width "-G grouplist"
530d6f907dcSJoerg Wunsch.It Fl D
531d6f907dcSJoerg WunschSet default values in
532d6f907dcSJoerg Wunsch.Pa /etc/pw.conf
533d6f907dcSJoerg Wunschconfiguration file, or a different named configuration file if the
534d6f907dcSJoerg Wunsch.Ql Fl C Ar config
5359fd0dafcSJoerg Wunschoption is used.
536d6f907dcSJoerg Wunsch.It Fl b Ar dir
5371dcc6ec7SPhilippe CharnierSet the root directory in which user home directories are created.
538d6f907dcSJoerg WunschThe default value for this is
5391dcc6ec7SPhilippe Charnier.Pa /home ,
540d6f907dcSJoerg Wunschbut it may be set elsewhere as desired.
541d6f907dcSJoerg Wunsch.It Fl e Ar days
5421dcc6ec7SPhilippe CharnierSet the default account expiration period in days.
543d6f907dcSJoerg WunschUnlike use without
544d6f907dcSJoerg Wunsch.Ql Fl D ,
545d6f907dcSJoerg Wunschthe argument must be numeric, which specifies the number of days after creation when
546d6f907dcSJoerg Wunschthe account is to expire.
547d6f907dcSJoerg WunschA value of 0 suppresses automatic calculation of the expiry date.
548d6f907dcSJoerg Wunsch.It Fl p Ar days
5491dcc6ec7SPhilippe CharnierSet the default password expiration period in days.
550d6f907dcSJoerg Wunsch.It Fl g Ar group
5511dcc6ec7SPhilippe CharnierSet the default group for new users.
552d6f907dcSJoerg WunschIf a blank group is specified using
553d6f907dcSJoerg Wunsch.Ql Fl g Ar \&"" ,
554137db389SSteve Pricethen new users will be allocated their own private primary group
555137db389SSteve Pricewith the same name as their login name.
556d6f907dcSJoerg WunschIf a group is supplied, either its name or uid may be given as an argument.
557d6f907dcSJoerg Wunsch.It Fl G Ar grouplist
558137db389SSteve PriceSet the default groups in which new users are granted membership.
559d6f907dcSJoerg WunschThis is a separate set of groups from the primary group, and you should avoid
560137db389SSteve Pricenominating the same group as both primary and extra groups.
561d6f907dcSJoerg WunschIn other words, these extra groups determine membership in groups
562d6f907dcSJoerg Wunsch.Em other than
563d6f907dcSJoerg Wunschthe primary group.
564d6f907dcSJoerg Wunsch.Ar grouplist
565137db389SSteve Priceis a comma-separated list of group names or ids, and are always
566d6f907dcSJoerg Wunschstored in
567d6f907dcSJoerg Wunsch.Pa /etc/pw.conf
568d6f907dcSJoerg Wunschby their symbolic names.
5699fd0dafcSJoerg Wunsch.It Fl L Ar class
5709fd0dafcSJoerg WunschThis option sets the default login class for new users.
571d6f907dcSJoerg Wunsch.It Fl k Ar dir
5721dcc6ec7SPhilippe CharnierSet the default
573d6f907dcSJoerg Wunsch.Em skeleton
574053375e8SMike Pritcharddirectory, from which prototype shell and other initialization files are copied when
5751dcc6ec7SPhilippe Charnier.Nm
576d6f907dcSJoerg Wunschcreates a user's home directory.
5779fd0dafcSJoerg Wunsch.It Fl u Ar min,max , Fl i Ar min,max
5789fd0dafcSJoerg WunschThese options set the minimum and maximum user and group ids allocated for new accounts
579d6f907dcSJoerg Wunschand groups created by
580d6f907dcSJoerg Wunsch.Nm pw .
581d6f907dcSJoerg WunschThe default values for each is 1000 minimum and 32000 maximum.
582d6f907dcSJoerg Wunsch.Ar min
583d6f907dcSJoerg Wunschand
584d6f907dcSJoerg Wunsch.Ar max
585d6f907dcSJoerg Wunschare both numbers, where max must be greater than min, and both must be between 0
586d6f907dcSJoerg Wunschand 32767.
587d6f907dcSJoerg WunschIn general, user and group ids less than 100 are reserved for use by the system,
588d6f907dcSJoerg Wunschand numbers greater than 32000 may also be reserved for special purposes (used by
589d6f907dcSJoerg Wunschsome system daemons).
590d6f907dcSJoerg Wunsch.It Fl w Ar method
591d6f907dcSJoerg WunschThe
592d6f907dcSJoerg Wunsch.Ql Fl w
5939fd0dafcSJoerg Wunschoption sets the default method used to set passwords for newly created user accounts.
594d6f907dcSJoerg Wunsch.Ar method
595d6f907dcSJoerg Wunschis one of:
596d6f907dcSJoerg Wunsch.Pp
597d6f907dcSJoerg Wunsch.Bl -tag -width random -offset indent -compact
598d6f907dcSJoerg Wunsch.It no
5991dcc6ec7SPhilippe Charnierdisable login on newly created accounts
600d6f907dcSJoerg Wunsch.It yes
6011dcc6ec7SPhilippe Charnierforce the password to be the account name
602d6f907dcSJoerg Wunsch.It none
6031dcc6ec7SPhilippe Charnierforce a blank password
604d6f907dcSJoerg Wunsch.It random
6051dcc6ec7SPhilippe Charniergenerate a random password
606d6f907dcSJoerg Wunsch.El
607d6f907dcSJoerg Wunsch.Pp
608d6f907dcSJoerg WunschThe
609d6f907dcSJoerg Wunsch.Ql \&random
610d6f907dcSJoerg Wunschor
611d6f907dcSJoerg Wunsch.Ql \&no
612d6f907dcSJoerg Wunschmethods are the most secure; in the former case,
6131dcc6ec7SPhilippe Charnier.Nm
614d6f907dcSJoerg Wunschgenerates a password and prints it to stdout, which is suitable where you issue
615d6f907dcSJoerg Wunschusers with passwords to access their accounts rather than having the user nominate
616d6f907dcSJoerg Wunschtheir own (possibly poorly chosen) password.
617d6f907dcSJoerg WunschThe
618d6f907dcSJoerg Wunsch.Ql \&no
619d6f907dcSJoerg Wunschmethod requires that the superuser use
620d6f907dcSJoerg Wunsch.Xr passwd 1
621d6f907dcSJoerg Wunschto render the account accessible with a password.
622f1d684faSDavid Nugent.It Fl y Ar path
623f1d684faSDavid NugentThis sets the pathname of the database used by NIS if you are not sharing
624f1d684faSDavid Nugentthe information from
625f1d684faSDavid Nugent.Pa /etc/master.passwd
626f1d684faSDavid Nugentdirectly with NIS.
627137db389SSteve PriceYou should only set this option for NIS servers.
628d6f907dcSJoerg Wunsch.El
629d6f907dcSJoerg Wunsch.Pp
630d6f907dcSJoerg WunschThe
631d6f907dcSJoerg Wunsch.Ar userdel
632f2e366a1SSheldon Hearncommand has only three valid options.
633f2e366a1SSheldon HearnThe
634d6f907dcSJoerg Wunsch.Ql Fl n Ar name
635d6f907dcSJoerg Wunschand
636d6f907dcSJoerg Wunsch.Ql Fl u Ar uid
6379fd0dafcSJoerg Wunschoptions have already been covered above.
6389fd0dafcSJoerg WunschThe additional option is:
6399fd0dafcSJoerg Wunsch.Bl -tag -width "-G grouplist"
640d6f907dcSJoerg Wunsch.It Fl r
641d6f907dcSJoerg WunschThis tells
6421dcc6ec7SPhilippe Charnier.Nm
643d6f907dcSJoerg Wunschto remove the user's home directory and all of its contents.
6441dcc6ec7SPhilippe Charnier.Nm Pw
645d6f907dcSJoerg Wunscherrs on the side of caution when removing files from the system.
646d6f907dcSJoerg WunschFirstly, it will not do so if the uid of the account being removed is also used by
647d6f907dcSJoerg Wunschanother account on the system, and the 'home' directory in the password file is
648d6f907dcSJoerg Wunscha valid path that commences with the character
649d6f907dcSJoerg Wunsch.Ql \&/ .
650d6f907dcSJoerg WunschSecondly, it will only remove files and directories that are actually owned by
651d6f907dcSJoerg Wunschthe user, or symbolic links owned by anyone under the user's home directory.
652d6f907dcSJoerg WunschFinally, after deleting all contents owned by the user only empty directories
653d6f907dcSJoerg Wunschwill be removed.
654053375e8SMike PritchardIf any additional cleanup work is required, this is left to the administrator.
655d6f907dcSJoerg Wunsch.El
656d6f907dcSJoerg Wunsch.Pp
657d6f907dcSJoerg WunschMail spool files and crontabs are always removed when an account is deleted as these
658d6f907dcSJoerg Wunschare unconditionally attached to the user name.
659d6f907dcSJoerg WunschJobs queued for processing by
660d6f907dcSJoerg Wunsch.Ar at
661137db389SSteve Priceare also removed if the user's uid is unique and not also used by another account on the
662137db389SSteve Pricesystem.
663d6f907dcSJoerg Wunsch.Pp
664d6f907dcSJoerg WunschThe
665d6f907dcSJoerg Wunsch.Ar usershow
666d6f907dcSJoerg Wunschcommand allows viewing of an account in one of two formats.
667d6f907dcSJoerg WunschBy default, the format is identical to the format used in
668d6f907dcSJoerg Wunsch.Pa /etc/master.passwd
669d6f907dcSJoerg Wunschwith the password field replaced with a
670d6f907dcSJoerg Wunsch.Ql \&* .
671d6f907dcSJoerg WunschIf the
6729fd0dafcSJoerg Wunsch.Ql Fl P
6739fd0dafcSJoerg Wunschoption is used, then
6741dcc6ec7SPhilippe Charnier.Nm
675d6f907dcSJoerg Wunschoutputs the account details in a more human readable form.
676d6f907dcSJoerg WunschThe
677d6f907dcSJoerg Wunsch.Ql Fl a
6789fd0dafcSJoerg Wunschoption lists all users currently on file.
6799fd0dafcSJoerg Wunsch.Pp
6809fd0dafcSJoerg WunschThe command
6819fd0dafcSJoerg Wunsch.Ar usernext
6829fd0dafcSJoerg Wunschreturns the next available user and group ids separated by a colon.
6839fd0dafcSJoerg WunschThis is normally of interest only to interactive scripts or front-ends
6849fd0dafcSJoerg Wunschthat use
6859fd0dafcSJoerg Wunsch.Nm pw .
686d6f907dcSJoerg Wunsch.Pp
687d6f907dcSJoerg Wunsch.Sh GROUP OPTIONS
688d6f907dcSJoerg WunschThe
689137db389SSteve Price.Ql Fl C
690d6f907dcSJoerg Wunschand
691d6f907dcSJoerg Wunsch.Ql Fl q
6929fd0dafcSJoerg Wunschoptions (explained at the start of the previous section) are available
6939fd0dafcSJoerg Wunschwith the group manipulation commands.
694d6f907dcSJoerg WunschOther common options to all group-related commands are:
6959fd0dafcSJoerg Wunsch.Bl -tag -width "-m newmembers"
696d6f907dcSJoerg Wunsch.It Fl n Ar name
6971dcc6ec7SPhilippe CharnierSpecify the group name.
698d6f907dcSJoerg Wunsch.It Fl g Ar gid
6991dcc6ec7SPhilippe CharnierSpecify the group numeric id.
700d6f907dcSJoerg Wunsch.Pp
7019fd0dafcSJoerg WunschAs with the account name and id fields, you will usually only need
7029fd0dafcSJoerg Wunschto supply one of these, as the group name implies the uid and vice
7039fd0dafcSJoerg Wunschversa.
7049fd0dafcSJoerg WunschYou will only need to use both when setting a specific group id
7059fd0dafcSJoerg Wunschagainst a new group or when changing the uid of an existing group.
7067ecd7a42SJoseph Koshy.It Fl M Ar memberlist
7079fd0dafcSJoerg WunschThis option provides an alternative way to add existing users to a
7089fd0dafcSJoerg Wunschnew group (in groupadd) or replace an existing membership list (in
7099fd0dafcSJoerg Wunschgroupmod).
7109fd0dafcSJoerg Wunsch.Ar memberlist
7119fd0dafcSJoerg Wunschis a comma separated list of valid and existing user names or uids.
7129fd0dafcSJoerg Wunsch.It Fl m Ar newmembers
7139fd0dafcSJoerg WunschSimilar to
714137db389SSteve Price.Ql Fl M ,
7159fd0dafcSJoerg Wunschthis option allows the
7169fd0dafcSJoerg Wunsch.Em addition
717137db389SSteve Priceof existing users to a group without replacing the existing list of
7189fd0dafcSJoerg Wunschmembers.
719137db389SSteve PriceLogin names or user ids may be used, and duplicate users are
720137db389SSteve Pricesilently eliminated.
721d6f907dcSJoerg Wunsch.El
722d6f907dcSJoerg Wunsch.Pp
723d6f907dcSJoerg Wunsch.Ar groupadd
724d6f907dcSJoerg Wunschalso has a
725d6f907dcSJoerg Wunsch.Ql Fl o
726137db389SSteve Priceoption that allows allocation of an existing group id to a new group.
727d6f907dcSJoerg WunschThe default action is to reject an attempt to add a group, and this option overrides
728d6f907dcSJoerg Wunschthe check for duplicate group ids.
729d6f907dcSJoerg WunschThere is rarely any need to duplicate a group id.
730d6f907dcSJoerg Wunsch.Pp
731d6f907dcSJoerg WunschThe
732d6f907dcSJoerg Wunsch.Ar groupmod
733137db389SSteve Pricecommand adds one additional option:
734d6f907dcSJoerg Wunsch.Pp
7359fd0dafcSJoerg Wunsch.Bl -tag -width "-m newmembers"
736d6f907dcSJoerg Wunsch.It Fl l Ar name
737d6f907dcSJoerg WunschThis option allows changing of an existing group name to
738d6f907dcSJoerg Wunsch.Ql \&name .
739d6f907dcSJoerg WunschThe new name must not already exist, and any attempt to duplicate an existing group
740d6f907dcSJoerg Wunschname will be rejected.
741d6f907dcSJoerg Wunsch.El
742d6f907dcSJoerg Wunsch.Pp
743d6f907dcSJoerg WunschOptions for
744d6f907dcSJoerg Wunsch.Ar groupshow
745d6f907dcSJoerg Wunschare the same as for
746d6f907dcSJoerg Wunsch.Ar usershow ,
747d6f907dcSJoerg Wunschwith the
748d6f907dcSJoerg Wunsch.Ql Fl g Ar gid
749d6f907dcSJoerg Wunschreplacing
750d6f907dcSJoerg Wunsch.Ql Fl u Ar uid
751d6f907dcSJoerg Wunschto specify the group id.
752d6f907dcSJoerg Wunsch.Pp
7539fd0dafcSJoerg WunschThe command
7549fd0dafcSJoerg Wunsch.Ar groupnext
7559fd0dafcSJoerg Wunschreturns the next available group id on standard output.
7569fd0dafcSJoerg Wunsch.Sh DIAGNOSTICS
7571dcc6ec7SPhilippe Charnier.Nm Pw
758137db389SSteve Pricereturns EXIT_SUCCESS on successful operation, otherwise
759137db389SSteve Price.Nm
760137db389SSteve Pricereturns one of the
7619fd0dafcSJoerg Wunschfollowing exit codes defined by
7629fd0dafcSJoerg Wunsch.Xr sysexits 3
7639fd0dafcSJoerg Wunschas follows:
7649fd0dafcSJoerg Wunsch.Bl -tag -width xxxx
7659fd0dafcSJoerg Wunsch.It EX_USAGE
7669fd0dafcSJoerg Wunsch.Bl -bullet -compact
7679fd0dafcSJoerg Wunsch.It
7681dcc6ec7SPhilippe CharnierCommand line syntax errors (invalid keyword, unknown option).
7699fd0dafcSJoerg Wunsch.El
7709fd0dafcSJoerg Wunsch.It EX_NOPERM
7719fd0dafcSJoerg Wunsch.Bl -bullet -compact
7729fd0dafcSJoerg Wunsch.It
7739fd0dafcSJoerg WunschAttempting to run one of the update modes as non-root.
7749fd0dafcSJoerg Wunsch.El
7759fd0dafcSJoerg Wunsch.It EX_OSERR
7769fd0dafcSJoerg Wunsch.Bl -bullet -compact
7779fd0dafcSJoerg Wunsch.It
7789fd0dafcSJoerg WunschMemory allocation error.
7799fd0dafcSJoerg Wunsch.It
7809fd0dafcSJoerg WunschRead error from password file descriptor.
7819fd0dafcSJoerg Wunsch.El
7829fd0dafcSJoerg Wunsch.It EX_DATAERR
7839fd0dafcSJoerg Wunsch.Bl -bullet -compact
7849fd0dafcSJoerg Wunsch.It
7859fd0dafcSJoerg WunschBad or invalid data provided or missing on the command line or
786137db389SSteve Pricevia the password file descriptor.
7879fd0dafcSJoerg Wunsch.It
7889fd0dafcSJoerg WunschAttempted to remove, rename root account or change its uid.
7899fd0dafcSJoerg Wunsch.El
7909fd0dafcSJoerg Wunsch.It EX_OSFILE
7919fd0dafcSJoerg Wunsch.Bl -bullet -compact
7929fd0dafcSJoerg Wunsch.It
7939fd0dafcSJoerg WunschSkeleton directory is invalid or does not exist.
7949fd0dafcSJoerg Wunsch.It
7959fd0dafcSJoerg WunschBase home directory is invalid or does not exist.
7969fd0dafcSJoerg Wunsch.It
797137db389SSteve PriceInvalid or non-existent shell specified.
7989fd0dafcSJoerg Wunsch.El
7999fd0dafcSJoerg Wunsch.It EX_NOUSER
8009fd0dafcSJoerg Wunsch.Bl -bullet -compact
8019fd0dafcSJoerg Wunsch.It
8029fd0dafcSJoerg WunschUser, user id, group or group id specified does not exist.
8039fd0dafcSJoerg Wunsch.It
804137db389SSteve PriceUser or group recorded, added, or modified unexpectedly disappeared.
8059fd0dafcSJoerg Wunsch.El
8069fd0dafcSJoerg Wunsch.It EX_SOFTWARE
8079fd0dafcSJoerg Wunsch.Bl -bullet -compact
8089fd0dafcSJoerg Wunsch.It
8099fd0dafcSJoerg WunschNo more group or user ids available within specified range.
8109fd0dafcSJoerg Wunsch.El
8119fd0dafcSJoerg Wunsch.It EX_IOERR
8129fd0dafcSJoerg Wunsch.Bl -bullet -compact
8139fd0dafcSJoerg Wunsch.It
8149fd0dafcSJoerg WunschUnable to rewrite configuration file.
8159fd0dafcSJoerg Wunsch.It
8169fd0dafcSJoerg WunschError updating group or user database files.
8179fd0dafcSJoerg Wunsch.It
8189fd0dafcSJoerg WunschUpdate error for passwd or group database files.
8199fd0dafcSJoerg Wunsch.El
8209fd0dafcSJoerg Wunsch.It EX_CONFIG
8219fd0dafcSJoerg Wunsch.Bl -bullet -compact
8229fd0dafcSJoerg Wunsch.It
8239fd0dafcSJoerg WunschNo base home directory configured.
8249fd0dafcSJoerg Wunsch.El
8259fd0dafcSJoerg Wunsch.El
8269fd0dafcSJoerg Wunsch.Pp
827d6f907dcSJoerg Wunsch.Sh NOTES
828d6f907dcSJoerg WunschFor a summary of options available with each command, you can use
829d6f907dcSJoerg Wunsch.Dl pw [command] help
830d6f907dcSJoerg WunschFor example,
831d6f907dcSJoerg Wunsch.Dl pw useradd help
832d6f907dcSJoerg Wunschlists all available options for the useradd operation.
833d9b711b7SDavid Nugent.Pp
8341dcc6ec7SPhilippe Charnier.Nm Pw
835137db389SSteve Priceallows 8-bit characters in the passwd GECOS field (user's full name,
836d9b711b7SDavid Nugentoffice, work and home phone number subfields), but disallows them in
837d9b711b7SDavid Nugentuser login and group names.
838137db389SSteve PriceUse 8-bit characters with caution, as connection to the Internet will
839d9b711b7SDavid Nugentrequire that your mail transport program supports 8BITMIME, and will
840d9b711b7SDavid Nugentconvert headers containing 8-bit characters to 7-bit quoted-printable
841d9b711b7SDavid Nugentformat.
842d9b711b7SDavid Nugent.Xr sendmail 8
843d9b711b7SDavid Nugentdoes support this.
844137db389SSteve PriceUse of 8-bit characters in the GECOS field should be used in
845d9b711b7SDavid Nugentconjunction with the user's default locale and character set
846d9b711b7SDavid Nugentand should not be implemented without their use.
847d9b711b7SDavid NugentUsing 8-bit characters may also affect other
848137db389SSteve Priceprograms that transmit the contents of the GECOS field over the
849137db389SSteve PriceInternet, such as
850d9b711b7SDavid Nugent.Xr fingerd 8 ,
851137db389SSteve Priceand a small number of TCP/IP clients, such as IRC, where full names
852d9b711b7SDavid Nugentspecified in the passwd file may be used by default.
853d6f907dcSJoerg Wunsch.Sh FILES
854d6f907dcSJoerg Wunsch.Bl -tag -width /etc/master.passwd.new -compact
855d6f907dcSJoerg Wunsch.It Pa /etc/master.passwd
856d6f907dcSJoerg WunschThe user database
857d6f907dcSJoerg Wunsch.It Pa /etc/passwd
858d6f907dcSJoerg WunschA Version 7 format password file
8599fd0dafcSJoerg Wunsch.It Pa /etc/login.conf
8609fd0dafcSJoerg WunschThe user capabilities database
861d6f907dcSJoerg Wunsch.It Pa /etc/group
862d6f907dcSJoerg WunschThe group database
863d6f907dcSJoerg Wunsch.It Pa /etc/master.passwd.new
864d6f907dcSJoerg WunschTemporary copy of the master password file
865d6f907dcSJoerg Wunsch.It Pa /etc/passwd.new
866d6f907dcSJoerg WunschTemporary copy of the Version 7 password file
867d6f907dcSJoerg Wunsch.It Pa /etc/group.new
868d6f907dcSJoerg WunschTemporary copy of the group file
869d6f907dcSJoerg Wunsch.It Pa /etc/pw.conf
870d6f907dcSJoerg WunschPw default options file
871d6f907dcSJoerg Wunsch.El
872d6f907dcSJoerg Wunsch.Sh SEE ALSO
873d6f907dcSJoerg Wunsch.Xr chpass 1 ,
874053375e8SMike Pritchard.Xr passwd 1 ,
875d6f907dcSJoerg Wunsch.Xr group 5 ,
876bfd34a4aSWolfram Schneider.Xr login.conf 5 ,
877053375e8SMike Pritchard.Xr passwd 5 ,
878053375e8SMike Pritchard.Xr pw.conf 5 ,
879d6f907dcSJoerg Wunsch.Xr pwd_mkdb 8 ,
880053375e8SMike Pritchard.Xr vipw 8
881d6f907dcSJoerg Wunsch.Sh HISTORY
8821dcc6ec7SPhilippe Charnier.Nm Pw
8839fd0dafcSJoerg Wunschwas written to mimic many of the options used in the SYSV
884d6f907dcSJoerg Wunsch.Em shadow
8859fd0dafcSJoerg Wunschsupport suite, but is modified for passwd and group fields specific to
886053375e8SMike Pritchardthe
887053375e8SMike Pritchard.Bx 4.4
8889fd0dafcSJoerg Wunschoperating system, and combines all of the major elements
8899fd0dafcSJoerg Wunschinto a single command.
890