Commit Graph

68 Commits

Author SHA1 Message Date
bapt
8fa8b523a2 Partial revert of r286152
More work needed on the cli validation
2015-08-01 12:18:48 +00:00
bapt
9a71628c9f Validate expiration days and password days from commmand line and pw.conf 2015-08-01 10:25:55 +00:00
bapt
4eb9f59af4 Create a strtounum function using the same API as strtonum
This function returns uintmax_t
Use this function to convert to gid_t/uid_t
2015-07-29 06:22:41 +00:00
bapt
ae6e75a036 Check uid/gid used when creating a user/group are not larger than UID_MAX/GID_MAX
PR:		173977
Reported by:	nvass@gmx.com
2015-07-28 21:10:58 +00:00
bapt
6a2604d875 when -n is passed to any pw subcommand it is always expected to be considered as
a name so do not try to convert it to an id if it is a numeric value

PR:		31933
Reported by:	ted@impulse.net
Sponsored by:	gandi.net
2015-07-28 12:20:57 +00:00
bapt
ba90467d76 Really fix -o 2015-07-13 09:12:05 +00:00
bapt
7f2e5a63d2 Fix logic of check duplicates that has been inverted 2015-07-13 09:07:38 +00:00
bapt
8621997ee9 Rework the home directory creation and copy or the skel content to use *at
functions

This allows to simplify the code a bit for -R by not having to keep modifying
path and also prepare the code to improve support -R in userdel

While here, add regression tests for the functionality
2015-07-12 20:29:51 +00:00
bapt
f15eb75bd0 Make getarg return NULL if args is NULL 2015-07-12 00:02:43 +00:00
bapt
394857c344 check the gecos format early: at the moment the -c option is parsed 2015-07-11 21:09:50 +00:00
bapt
4c8679fa34 Make a separate groupdel/userdel from the main function 2015-07-11 19:07:47 +00:00
bapt
0ee1498c18 Make separate functions to show users and groups 2015-07-11 18:09:27 +00:00
bapt
4567491257 Move the quiet flag into the configuration structure 2015-07-11 17:01:08 +00:00
bapt
f97075fb60 Do not try to set password on group if the group is added as a consequence of
of creating a user (regression from r285136)

Reported by:	Fabian Keil <fk@fabiankeil.de>
2015-07-09 14:14:44 +00:00
bapt
af8a9dfc9a Validate input of pw usermod -h and pwusermod -H
Push the code that set the password into a separate function to improve
readability

Add regression tests about pw usermod -h and pw usermod -H
2015-07-04 15:27:04 +00:00
bapt
ec480fe320 backout remove of -q option for pw [user|group] next
While the return code is broken, some corner case usage depends on the
functionnality, so backout until we get better regression tests covering those
corner case usage.
2015-06-08 05:27:34 +00:00
bapt
2bc43a746d Fix mistakes than came along with r284139 2015-06-07 21:59:43 +00:00
bapt
65b30fab70 Remove '-q' support for pw [user|group] next
the intent of -q in this command is to return as exit status the value of the
next group/user id, which does not make sense given exit status are limited to
values between 0 and 255.
2015-06-07 21:57:20 +00:00
bapt
b0235ac2ee Fix setting uid/gid min/max via pw 2015-06-07 20:59:59 +00:00
bapt
fc781f489d Fix generating configuration file 2015-06-07 20:44:06 +00:00
bapt
302d4b4363 Fix duplicate checking 2015-06-07 19:59:01 +00:00
bapt
4a60f5b2aa In case of rename validate the length of the new name
Check early that the new name fits MAXLOGNAME and store it in pwconf
2015-06-07 19:33:25 +00:00
bapt
3be2bba5d7 Refactor input validation
Mutualize code to validate inputs of both 'user' and 'group' command
Test that the input name fits into MAXLOGNAME
2015-06-07 19:03:41 +00:00
bapt
87cd2261fe Handle -7 via gloval pwconf 2015-06-07 15:33:08 +00:00
bapt
9f5d2c6d19 Initialize conf using menset(3) 2015-06-07 15:29:58 +00:00
bapt
4ca3925ed2 Handle pretty print (-P) via global pwconf 2015-06-07 15:27:17 +00:00
bapt
720254061f Handle dryrun (-N) via global pwconf 2015-06-07 15:09:53 +00:00
bapt
c79845f9d0 Handle -C and -Y locally and stop adding them to arglist 2015-06-07 14:54:07 +00:00
bapt
c6afeed630 Add a new global struct pwconf to store etcpath, rootdir and struct userconf
Do not add anymore -R and -V to arglist
Add an error message if both -V and -R are set in arguments
2015-06-07 14:34:38 +00:00
bapt
c6995b5046 New pw -R rootdir option
This allows to set an alternate root directory in which the users/groups will be
manipulated

Requested by:	gjb, ian
Tested by:	gjb
2015-06-03 19:08:25 +00:00
bapt
23c55809b1 Use asprintf instead of malloc + snprintf and test the memory allocation 2015-05-31 10:02:01 +00:00
bapt
76d74e0d6c Fix wrong message when using pw -V with a non existent directory
Add a regression test about it

PR:		194971
Submitted by:	Freddy DISSAUX <bugzilla@dsx.bsdsx.fr>
2014-11-12 22:27:53 +00:00
bapt
cfea627c58 Teach pw(8) about how to use pw/gr API to reduce code duplication
MFC after:	2 months
2012-10-30 08:00:53 +00:00
scf
c88c109632 Add the groupmod '-d' option to pw to allow the deletion of existing users
from a group without the need to perform the same operation by replacing
the existing list via the '-M' option.  The '-M' option requires someone
to fetch the existing members with pw, deleting the undesired members from
the list and sending the altered list back to pw.

Approved by:	wes (mentor)
MFC after:	5 days
2008-02-23 01:25:22 +00:00
scf
9787c9bf4e style(9) (verified no object changes)
Approved by:	wes (mentor)
MFC after:	5 days
2008-02-23 01:17:42 +00:00
le
f17fbfd9be Add home directory creation mode to pw.conf(5) and be a bit
more specific about the effect of the current umask on -M.
2007-03-30 11:23:10 +00:00
le
2f93827b34 Add -M argument to usage() output. 2007-03-30 10:02:47 +00:00
le
b25ea91d22 Introduce the new option -M to allow to set the permissions of
the user's newly created home directory.  If omitted, it's derived
from the current umask.

PR:      bin/16880, bin/83253 (partially), bin/104248
MFC in:  1 month
2007-03-26 23:29:20 +00:00
maxim
4af3cb5278 o Fix groupadd getopt line and make 'pw groupadd -o' work.
PR:		bin/100684
Submitted by:	Devon H. O'Dell
MFC after:	3 weeks
2006-09-18 14:00:39 +00:00
iedowse
94e2d83c18 Add a -H <fd>' option that is like -h <fd>', but accepts an already
encrypted password on the specified file descriptor.

PR:		bin/22033
MFC after:	2 weeks
2004-01-11 18:28:08 +00:00
brian
8636b161b3 Fix the type of the NULL arg to execl()
Idea from: Theo de Raadt <deraadt@openbsd.org>
2001-07-09 09:24:06 +00:00
kris
5a1251c5ff Fix a harmless format string bogon and mark a function as __printflike().
There is still one instance of non-constant format string use inside that
function, but it's hard to fix.

MFC after:	1 week
2001-07-05 08:01:15 +00:00
dd
24b0122a84 Document the lock and unlock commands. This fixes a segmentation fault.
PR:		25187
Approved by:	nik
2001-03-14 03:24:30 +00:00
ben
aa10518020 Convert to use the <sys/queue.h> macros rather than fiddling with the queue
structure internals.

Reviewed by:	markm
2000-12-29 18:04:54 +00:00
obrien
c2ee1dcc02 Add `_PATH_DEVZERO'.
Use _PATH_* where where possible.
2000-12-09 09:35:55 +00:00
ache
659df59b0e Localize ctype too.
Add weekday to showuser expired fields
2000-06-24 13:36:13 +00:00
ache
77729ceb43 Localize time/date.
Use ISO 8601 date in logs.
Fix wrong argument type in ctype functions.
2000-06-22 16:48:41 +00:00
davidn
4a7877f9e8 Be a little more strict about handling command line args. This allows user and
group names like 'help' 'mod' 'user' 'group' etc. to work correctly without
requiring the -n style invocation.
PR:		misc/17069
2000-06-18 02:39:17 +00:00
davidn
1b86060031 Portability fixes for other bsd4.4 derivatives. 2000-01-15 00:20:22 +00:00
davidn
091d630070 Add new functionality "lock" and "unlock" to provide a simple password
locking mechanism for users. This works by prepending the string
"*LOCKED*" to the password field in master.passwd to prevent successful
decoding.
1999-10-26 08:34:09 +00:00