-
Notifications
You must be signed in to change notification settings - Fork 252
Description
I propose that we deprecate the groupmems utility in an upcoming release, with the goal of removing it completely in a subsequent release (e.g., 2-3 releases later).
The utility's use cases are split between root and regular users, and it fails to provide significant value for either.
-
For root users, the functionality of
groupmemsis largely redundant. Administrative tasks like managing group memberships can be accomplished with more common and powerful tools likeusermod. Removing it would not cause a loss of functionality for administrators. -
For regular users, the utility is designed to manage their own primary group membership. However, this requires the binary to be
setuid, which presents a security risk and is not the default behavior in major distributions. This leaves the tool non-functional for its primary non-root use case.
The intended functionality for regular users is already broken or disabled in several key distributions:
- Fedora: the man page explicitly states that
groupmemsis not setuid, rendering it unusable for its intended non-root purpose.
In this operating system the groupmems executable is not setuid and regular users cannot
use it to manipulate the membership of their own group.
-
Debian: the situation is confusing. The binary is not configured in a way that allows regular users to manage their groups, a situation highlighted in this bug report: https://groups.google.com/g/linux.debian.bugs.dist/c/hDArHoYe9Dk
-
openSUSE: as noted in issue #999, openSUSE has already removed the
groupmemsbinary, setting a precedent for its removal.
Proposed plan
-
Next release: mark
groupmemsas deprecated in the release notes. -
Future release (2-3 releases later): remove the
groupmemsbinary and its associated man page entirely.
Given that the utility is redundant for root and effectively broken for regular users across major distributions, its continued maintenance adds complexity for little to no benefit.
I'm opening this issue to gather feedback on this proposal. Are there any objections or use cases I might have missed?