334 Commits

Author SHA1 Message Date
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
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
c668897924 Remove uneeded code (already done by pw_make_v7) 2015-06-07 19:39:06 +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
28b61e032c Finish converting -7 to pwconf 2015-06-07 15:54:57 +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