History log of /freebsd-current/usr.sbin/pw/pw_group.c
Revision Date Author Comments
# c8611932 06-May-2024 Dag-Erling Smørgrav <des@FreeBSD.org>

pw: Don't silently ignore unparsed command line arguments.

MFC after: 3 days
Reviewed by: allanjude
Differential Revision: https://reviews.freebsd.org/D45097


# a9ea647c 06-May-2024 Dag-Erling Smørgrav <des@FreeBSD.org>

pw: Rename some enums.

Rename `M_PRINT` and `M_UPDATE` to `M_SHOW` and `M_MODIFY` to match the
names of the commands they represent. No functional change intended.

MFC after: 3 days
Reviewed by: allanjude
Differential Revision: https://reviews.freebsd.org/D45096


# eba230af 25-Sep-2023 John Baldwin <jhb@FreeBSD.org>

Purge more stray embedded $FreeBSD$ strings

These do not use __FBSDID but instead use bare char arrays.

Reviewed by: imp, emaste
Differential Revision: https://reviews.freebsd.org/D41957


# 17839f45 19-Jul-2023 Naman Sood <mail@nsood.in>

pw: Ensure group membership is not duplicated

Fix the following problem:

1. A nonexistent user, someuser, is added to somegroup in /etc/group.
2. someuser is then created with membership in somegroup.

The entry for somegroup in /etc/group will then contain

somegroup:*:12345:someuser,someuser

With this fix, the entry will be

somegroup:*:12345:someuser

PR: 238995
Reviewed by: bapt, jrm
Sponsored by: The FreeBSD Foundation
Differential Revision: https://reviews.freebsd.org/D41076


# 4d846d26 10-May-2023 Warner Losh <imp@FreeBSD.org>

spdx: The BSD-2-Clause-FreeBSD identifier is obsolete, drop -FreeBSD

The SPDX folks have obsoleted the BSD-2-Clause-FreeBSD identifier. Catch
up to that fact and revert to their recommended match of BSD-2-Clause.

Discussed with: pfg
MFC After: 3 days
Sponsored by: Netflix


# 1055bedb 04-Dec-2022 John Baldwin <jhb@FreeBSD.org>

pw: Don't return a pointer to an on-stack buffer from grp_set_passwd.

Make 'line' static to move it to .bss instead as that pattern is used
elsewhere in pw(8) (e.g. the static buffer in pw_pwcrypt).

Reported by: GCC -Wdangling-pointer
Reviewed by: imp, emaste
Differential Revision: https://reviews.freebsd.org/D37534


# c0358afd 11-Oct-2022 Baptiste Daroussin <bapt@FreeBSD.org>

pw: exit with an error in case of using an illegal option

PR: 263188
Reported by: Dennis Clarke <dclarke@blastwave.org>
MFC After: 1 week


# 79c8ad83 01-Sep-2020 Mark Johnston <markj@FreeBSD.org>

pw: Fix terminal handling when setting a group password.

Reported by: Coverity
MFC after: 1 week
Sponsored by: NetApp, Inc.
Sponsored by: Klara, Inc.


# 1de7b4b8 27-Nov-2017 Pedro F. Giffuni <pfg@FreeBSD.org>

various: general adoption of SPDX licensing ID tags.

Mainly focus on files that use BSD 2-Clause license, however the tool I
was using misidentified many licenses so this was mostly a manual - error
prone - task.

The Software Package Data Exchange (SPDX) group provides a specification
to make it easier for automated tools to detect and summarize well known
opensource licenses. We are gradually adopting the specification, noting
that the tags are considered only advisory and do not, in any way,
superceed or replace the license texts.

No functional change intended.


# abd4699c 09-Dec-2016 Baptiste Daroussin <bapt@FreeBSD.org>

Fix pkg groupshow <gid>

PR: 204676
Submitted by: longwitz@incore.de
MFC after: 2 days


# e1fc61c1 04-Jun-2016 Baptiste Daroussin <bapt@FreeBSD.org>

Fix typo preventing pw {user,group}next -C from working as expected

Reported by: Mike Selnet via forums.freebsd.org
MFC after: 3 days


# 36a8b62f 28-Dec-2015 Baptiste Daroussin <bapt@FreeBSD.org>

Restore dryrun support for pw groupmod


# 0fbf8c60 19-Oct-2015 Enji Cooper <ngie@FreeBSD.org>

Initialize `quiet` to false so `pw groupnext` again prints out the next gid
by default

Reported by: Florian Degner <f.degner@gmx.de>
MFC after: 1 week
PR: 203876
Sponsored by: EMC / Isilon Storage Division


# fc6ab770 03-Aug-2015 Ed Schouten <ed@FreeBSD.org>

Avoid calling strlen() where we can use the strspn() return value.


# 8159e037 02-Aug-2015 Baptiste Daroussin <bapt@FreeBSD.org>

Split some extra long lines


# bcbdb01e 02-Aug-2015 Baptiste Daroussin <bapt@FreeBSD.org>

Cleanup a bit includes


# f4124312 01-Aug-2015 Baptiste Daroussin <bapt@FreeBSD.org>

Fix regression: report if a group already exists when creating it


# d2d022b9 01-Aug-2015 Baptiste Daroussin <bapt@FreeBSD.org>

Rewrite parsing subcommands arguments of pw(8)

Now each subcommands checks its arguments in a dedicated functions.

This helps improving input validation, code readability/maintainability
While here:
- Add a -y option to pw userdel/usermod so it can maintain NIS servers if
nispasswd is not defined in pw.conf(5)
- Allow pw -r <rootdir> to remove directory with userdel -r
- Fix bug when renaming a user which was not renaming the user name it groups
it is a member of.
- Only parse pw.conf(5) when needed.


# 50698e67 01-Aug-2015 Baptiste Daroussin <bapt@FreeBSD.org>

Cast uid/git to uintmax_t when using printf-like functions so the size of
uid/gid size remains a implementation detail


# 9c56d9c5 11-Jul-2015 Baptiste Daroussin <bapt@FreeBSD.org>

Remove now unused variable


# 5ebd525a 11-Jul-2015 Baptiste Daroussin <bapt@FreeBSD.org>

Rework groupmod modification:

Use gr_add(3) when possible to avoid code duplication.
Use a simpler logic to delete members of a group


# d14c4847 11-Jul-2015 Baptiste Daroussin <bapt@FreeBSD.org>

Make a separate groupdel/userdel from the main function


# ae73dd9f 11-Jul-2015 Baptiste Daroussin <bapt@FreeBSD.org>

Make separate functions to show users and groups


# 8daa3a67 11-Jul-2015 Baptiste Daroussin <bapt@FreeBSD.org>

Move the quiet flag into the configuration structure


# f936ccb5 11-Jul-2015 Baptiste Daroussin <bapt@FreeBSD.org>

Separate usernext/groupnext from the main functions


# 0fc58d14 09-Jul-2015 Baptiste Daroussin <bapt@FreeBSD.org>

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>


# 9d028e08 04-Jul-2015 Baptiste Daroussin <bapt@FreeBSD.org>

Also validate inputs of pw groupmod -h and groupmod -H


# 3bfc59e8 07-Jun-2015 Baptiste Daroussin <bapt@FreeBSD.org>

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.


# 6328a4be 07-Jun-2015 Baptiste Daroussin <bapt@FreeBSD.org>

Fix typo


# 0958dffd 07-Jun-2015 Baptiste Daroussin <bapt@FreeBSD.org>

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.


# 91860967 07-Jun-2015 Baptiste Daroussin <bapt@FreeBSD.org>

Fix duplicate checking


# bae068d2 07-Jun-2015 Baptiste Daroussin <bapt@FreeBSD.org>

In case of rename validate the length of the new name

Check early that the new name fits MAXLOGNAME and store it in pwconf


# a9237189 07-Jun-2015 Baptiste Daroussin <bapt@FreeBSD.org>

Refactor input validation

Mutualize code to validate inputs of both 'user' and 'group' command
Test that the input name fits into MAXLOGNAME


# 2166b4d1 07-Jun-2015 Baptiste Daroussin <bapt@FreeBSD.org>

Handle pretty print (-P) via global pwconf


# 363cefdb 07-Jun-2015 Baptiste Daroussin <bapt@FreeBSD.org>

Handle dryrun (-N) via global pwconf


# 2cc63cd1 07-Jun-2015 Baptiste Daroussin <bapt@FreeBSD.org>

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


# 1238a919 07-Jun-2015 Baptiste Daroussin <bapt@FreeBSD.org>

Instead of always casting the pw_checkname input to u_char * and casting it back
to char *, change pw_checkname to directly take char * in input


# 6138e089 31-May-2015 Baptiste Daroussin <bapt@FreeBSD.org>

Cast to gid_t for groups not uid_t


# 68cea7d5 31-May-2015 Baptiste Daroussin <bapt@FreeBSD.org>

Remove useless cast in printf and printf-like functions:
use %u for uid_t and gid_t


# ee2582c2 31-May-2015 Baptiste Daroussin <bapt@FreeBSD.org>

Cast -1 to uid_t and bump WARNING level to 3


# 5710dc53 31-May-2015 Baptiste Daroussin <bapt@FreeBSD.org>

Make pw_user()/pw_group() more consitent about errors

Some of errors were returned to the main function, some others caused a direct
exit via err(3).

The main function is only interested in EXIT_SUCCESS, so in all other cases
replace warn(3) + return err by err(3)


# 4b2b10bd 26-Jan-2015 Baptiste Daroussin <bapt@FreeBSD.org>

Revert r277652

uid and gid are never and should never be negative. The pw(8) manpage clearly
states the -u and -g arguments are for uids/gids, hence using negative values is
abusing a bug in former versions of pw(8)


# 70a89b85 24-Jan-2015 Baptiste Daroussin <bapt@FreeBSD.org>

Allow negative numbers in -u and -g options

PR: 196514
MFC after: 1 week


# 156ebc28 28-Oct-2014 Baptiste Daroussin <bapt@FreeBSD.org>

Do not delete the group wheel when bad argument is passed to pw groupdel -g

Check that the -g argument is actually a number, if not report an error.
This argument is converted without checking with atoi(3) later so without this
check it converts any alpha entries into 0 meaning it deletes the group wheel

Add a regression test about it

PR: 90114
Reported by: bkoenig@cs.tu-berlin.de
MFC after: 1 week


# fb783088 28-Oct-2014 Baptiste Daroussin <bapt@FreeBSD.org>

When a group is renamed then the group has been invalidated for sure.
In that case get the group information using the new name.

Add a regression test about this bug

PR: 193704
Reported by: az


# 5691bbf0 06-Mar-2014 Julian Elischer <julian@FreeBSD.org>

Stop pw(8) from segfaulting when given certain input

PR:187310
Submitted by: Kim Shrier
Obtained from: bug
MFC after: 1 week


# 0c503449 27-Dec-2012 Baptiste Daroussin <bapt@FreeBSD.org>

Fix a regression in "pw group show" introduced r242349:
print a newline after printing each group line.

PR: bin/174731
Submitted by: Jan Beich <jbeich@tormail.org>


# 61fd27bb 05-Dec-2012 Eitan Adler <eadler@FreeBSD.org>

Remove useless check for NULL prior to free.

Approved by: cperciva
MFC after: 2 weeks


# fb2db031 30-Oct-2012 Baptiste Daroussin <bapt@FreeBSD.org>

Teach pw(8) about how to use pw/gr API to reduce code duplication

MFC after: 2 months


# a7d5f7eb 19-Oct-2010 Jamie Gritton <jamie@FreeBSD.org>

A new jail(8) with a configuration file, to replace the work currently done
by /etc/rc.d/jail.


# fe0506d7 09-Mar-2010 Marcel Moolenaar <marcel@FreeBSD.org>

Create the altix project branch. The altix project will add support
for the SGI Altix 350 to FreeBSD/ia64. The hardware used for porting
is a two-module system, consisting of a base compute module and a
CPU expansion module. SGI's NUMAFlex architecture can be an excellent
platform to test CPU affinity and NUMA-aware features in FreeBSD.


# d7f03759 19-Oct-2008 Ulf Lilleengen <lulf@FreeBSD.org>

- Import the HEAD csup code which is the basis for the cvsmode work.


# bc991a6d 22-Feb-2008 Sean Farley <scf@FreeBSD.org>

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


# 72d1b828 22-Feb-2008 Sean Farley <scf@FreeBSD.org>

style(9) (verified no object changes)

Approved by: wes (mentor)
MFC after: 5 days


# 87d6b5ca 11-Jan-2004 Ian Dowse <iedowse@FreeBSD.org>

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


# e7161f36 22-Jun-2000 Andrey A. Chernov <ache@FreeBSD.org>

Localize time/date.
Use ISO 8601 date in logs.
Fix wrong argument type in ctype functions.


# 923dc0b2 14-Jan-2000 David Nugent <davidn@FreeBSD.org>

Portability fixes for other bsd4.4 derivatives.


# 2399cd14 26-Oct-1999 David Nugent <davidn@FreeBSD.org>

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.


# c190a0f5 25-Oct-1999 David Nugent <davidn@FreeBSD.org>

Clean up error handling in fileupdate(), which now returns 0 on success
instead of a boolean. This replicated through he front-end sub-functions
relating to add, delete, modify entries in passwd & group files
Errno is now preserved so output of errc()/warnc() will be less obfuscated
by subsequent errors when reporting the problem.

Add more intelligent error handling when attempting to modify/delete NIS
entries with no corresponding local database entry.

[MFC to stable in a couple of weeks to keep both in sync]


# 97d92980 27-Aug-1999 Peter Wemm <peter@FreeBSD.org>

$Id$ -> $FreeBSD$


# 5f12594a 23-Feb-1999 David Nugent <davidn@FreeBSD.org>

1) Do not blindly ignore file update errors which may occur due to concurrent
updating
2) Add -V <etcdir>, which allows maintaining user/group database in alternate
locations other than /etc.


# 1dcc6ec7 10-Oct-1997 Philippe Charnier <charnier@FreeBSD.org>

Use err(3) instead of local redefinition. Add rcsid string.


# 476602a9 22-Feb-1997 Peter Wemm <peter@FreeBSD.org>

Revert $FreeBSD$ to $Id$


# e56644ad 07-Feb-1997 David Nugent <davidn@FreeBSD.org>

Yet another formatting consistency check.


# 1130b656 14-Jan-1997 Jordan K. Hubbard <jkh@FreeBSD.org>

Make the long-awaited change from $Id$ to $FreeBSD$

This will make a number of things easier in the future, as well as (finally!)
avoiding the Id-smashing problem which has plagued developers for so long.

Boy, I'm glad we're not using sup anymore. This update would have been
insane otherwise.


# 0970881f 21-Dec-1996 David Nugent <davidn@FreeBSD.org>

1) 200 users per group limitation removed and pw
will handle lines of any length in /etc/group.
2) Fixed bug with usermod -d not updating user's home
directory.
3) Minor formatting display changes/fixes with *show -P.


# d9b711b7 19-Dec-1996 David Nugent <davidn@FreeBSD.org>

Allow 8-bit characters in the passwd gecos field, and adds a paragraph
to the mangpage explaining the consequences (to be updated at a later
date after login class conf support is added).


# ad7cf975 10-Dec-1996 Joerg Wunsch <joerg@FreeBSD.org>

Copyright update by the author, to be more in line with our sample
copyright.

Submitted by: David Nugent


# 48aee7f3 09-Dec-1996 Joerg Wunsch <joerg@FreeBSD.org>

Upgrade from the author, reflecting all my wishes resulting out of the
sysinstall use of this tool (plus some bug fixes).

2.2 candidate...

Submitted by: David Nugent <davidn@nserver.usn.blaze.net.au>


# d6f907dc 09-Dec-1996 Joerg Wunsch <joerg@FreeBSD.org>

pw(8) -- a backend utility to manage the user and group databases.

sysinstall's new User&group menu will use it, hence it's a 2.2
candidate despite of providing new functionality.

Submitted by: David L. Nugent, <davidn@blaze.net.au>