343 Commits

Author SHA1 Message Date
bapt
626fd041e6 Fix formatting of new code
Fix sorting or errstr
Remove useless initialisation or errstr

Reported by:	bde
2015-08-01 11:31:59 +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
10ba8e17a1 Validate the max_uid/max_gid boundaries and entry type in pw.conf 2015-08-01 10:10:13 +00:00
bapt
5acf1473e1 Cast uid/git to uintmax_t when using printf-like functions so the size of
uid/gid size remains a implementation detail
2015-08-01 09:55:47 +00:00
bapt
1567d1bb44 Improve strtounum
Fix many style bugs
Better variable naming
Use C99 'restrict' were apropriate
Fix potential errno race

Submitted by:	bde
2015-07-30 06:14:47 +00:00
bapt
d7ee5ad52d Cleanup includes 2015-07-29 23:26:18 +00:00
bapt
b34a90165d Actually set the proper license
Reported by:	trasz
2015-07-29 22:51:54 +00:00
bapt
dc24acf353 Actually add the new code 2015-07-29 06:23:06 +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
5d01982f6b Reject usermod and userdel if the user concerned is not on the user database
supposed to be manipulated

This prevent pw usermod creating a new local user when requesting to usermod on
a username is defined in LDAP.

This issue only happens when modifying the local user database (not inpacting
commands when -V or -R are used).

PR:		187653
Submitted by:	tmwalaszek@gmail.com
2015-07-28 21:49:38 +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
39f3813b41 Fix wrong warning printed after changing or updating NIS users
PR:		37672
Submitted by:	chris+freebsd@chrullrich.de
2015-07-28 20:52:10 +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
3137e99447 Add regression tests to ensure we keep allowing creating users with uid0 2015-07-13 09:09:09 +00:00
bapt
bfc5fcd1dc Regression fix: allow to create users with uid0
Reported by:	Jan Mikkelsen <janm@transactionware.com>
2015-07-13 09:08:27 +00:00
bapt
7f2e5a63d2 Fix logic of check duplicates that has been inverted 2015-07-13 09:07:38 +00:00
bapt
e657e72f8d Ensure skeldir is abolute path (relatively to the rootdir) 2015-07-12 22:08:58 +00:00
bapt
16b27ac1cf pw -R <rootdir> userdel can now cleanup installation
Rewrite rm_r to use *at function, allowing to remove home directories along with
users. only crontabs and at(1) installation are not removed

Relnotes:	yes
2015-07-12 21:43:57 +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
084e0d801a Add minimum regression tests for pw -R 2015-07-12 09:42:10 +00:00
bapt
f15eb75bd0 Make getarg return NULL if args is NULL 2015-07-12 00:02:43 +00:00
bapt
2f9218d542 Fix regression: ensure when try to create the group and the user with the same
id if possible and nothing in particular was specified
2015-07-11 23:56:55 +00:00
bapt
13da2b2c87 Remove now unused variable 2015-07-11 23:17:13 +00:00
bapt
be61586cab Replace custom string array with stringlist(3) 2015-07-11 23:07:17 +00:00
bapt
a2b16f4acb Rework groupmod modification:
Use gr_add(3) when possible to avoid code duplication.
Use a simpler logic to delete members of a group
2015-07-11 22:35:07 +00:00
bapt
e3326739a7 Remove unused argument from pm_passwd 2015-07-11 21:12:28 +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
1f1e46ef86 Remove useless use of goto 2015-07-11 20:18:34 +00:00
bapt
7267051897 Isolate pw lock/unlock into a separate function 2015-07-11 20:10:12 +00:00
bapt
120396cfc3 homedir can only be populate during useradd 2015-07-11 19:14:09 +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
032c1600ec Separate usernext/groupnext from the main functions 2015-07-11 16:58:47 +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
267e0f6761 pw: fail if an invalid entry is found while parsing master.passwd and group
PR:		198554
Reported by:	diaran <fbsd@centraltech.co.uk>
MFC after:	2 days
2015-07-07 21:05:20 +00:00
bapt
68ef3a03c5 Remove dead code 2015-07-05 10:14:34 +00:00
bapt
3023aa7e21 Also validate hours via strptime_l(3)
Simplify the code, by only using one parser, ensure the dates (hours and dates)
are valid
2015-07-05 10:11:35 +00:00
bapt
c4be172c20 Validate expiration dates
Use strptime_l(3) to validate the dates provided in input
2015-07-05 09:48:03 +00:00
bapt
db415bb5d6 Fix validation of crypted password
Small cleanups
2015-07-04 15:56:59 +00:00
bapt
f3cda7681e Also validate inputs of pw groupmod -h and groupmod -H 2015-07-04 15:54:11 +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
2a257e3a0f Change the documentation to reflect where the -V option should be used
Suggested by:	kientzle
2015-06-14 21:50:38 +00:00
sjg
008d7c831f Add META_MODE support.
Off by default, build behaves normally.
WITH_META_MODE we get auto objdir creation, the ability to
start build from anywhere in the tree.

Still need to add real targets under targets/ to build packages.

Differential Revision:       D2796
Reviewed by: brooks imp
2015-06-13 19:20:56 +00:00
sjg
75a137820d dirdeps.mk now sets DEP_RELDIR 2015-06-08 23:35:17 +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
6e327f9366 Fix typo 2015-06-08 05:06:17 +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