diff --git a/doc/HOWTO b/doc/HOWTO
index cc8ea780..bb4e052d 100644
--- a/doc/HOWTO
+++ b/doc/HOWTO
@@ -476,7 +476,7 @@
The package also contains the new programs:
chage, newusers, dpasswd, gpasswd, useradd, userdel, usermod,
- groupadd, groupdel, groupmod, groups, pwck, grpck, lastlog, pwconv,
+ groupadd, groupdel, groupmod, pwck, grpck, lastlog, pwconv,
and pwunconv
Additionally, the library: libshadow.a is included for writing and/or
@@ -1373,7 +1373,7 @@
users or changing the group password, the /etc/gshadow file will be
changed.
- The programs groups, groupadd, groupmod, and groupdel are provided as
+ The programs groupadd, groupmod, and groupdel are provided as
part of the Shadow Suite to modify groups.
The format of the /etc/group file is as follows:
diff --git a/man/Makefile.am b/man/Makefile.am
index 9f5e28ed..14055097 100644
--- a/man/Makefile.am
+++ b/man/Makefile.am
@@ -21,7 +21,6 @@ man_MANS = \
man8/groupdel.8 \
man8/groupmems.8 \
man8/groupmod.8 \
- man1/groups.1 \
man8/grpck.8 \
man8/grpconv.8 \
man8/grpunconv.8 \
@@ -90,7 +89,6 @@ man_XMANS = \
groupdel.8.xml \
groupmems.8.xml \
groupmod.8.xml \
- groups.1.xml \
grpck.8.xml \
gshadow.5.xml \
limits.5.xml \
diff --git a/man/cs/Makefile.am b/man/cs/Makefile.am
index 4ebd7778..45aec38f 100644
--- a/man/cs/Makefile.am
+++ b/man/cs/Makefile.am
@@ -9,7 +9,6 @@ man_MANS = \
man8/groupadd.8 \
man8/groupdel.8 \
man8/groupmod.8 \
- man1/groups.1 \
man8/grpck.8 \
man5/gshadow.5 \
man8/nologin.8 \
diff --git a/man/cs/man1/groups.1 b/man/cs/man1/groups.1
deleted file mode 100644
index 6deab53f..00000000
--- a/man/cs/man1/groups.1
+++ /dev/null
@@ -1,29 +0,0 @@
-.TH GROUPS 1 "GNU Shell Utilities" "FSF" \" \-*\- nroff \-*\-
-.do hla cs
-.do hpf hyphen.cs
-.SH JMÉNO
-groups \- vypíše skupiny, jichž je uživatel členem
-.SH POUŽITÍ
-\fBgroups\fR [\fIuživatel...\fR]
-.SH POPIS
-Tato dokumentace není dále udržována a může být nepřesná nebo neúplná.
-Autoritativním zdrojem je Texinfo dokumentace.
-.PP
-Tato manuálová stránka popisuje GNU verzi příkazu
-.BR groups .
-Příkaz
-.B groups
-vypíše jména všech skupin, v nichž je zadaný \fIuživatel\fR nebo aktuální proces,
-pokud uživatel není zadán, členem. Pokud jsou zadána jména uživatelů, potom bude
-jméno každého z uživatelů vypsáno před seznam skupin, jichž je členem.
-.PP
-Seznam skupin je ekvivalentní s výstupem příkazu `id \-Gn'.
-.SH VOLBY
-Když je GNU příkaz \fBgroups\fR vyvolán právě s jedním parametrem,
-jsou rozpoznávány následující volby:
-.TP
-.I "\-\-help"
-Vypíše návod k použití na standardní výstup a bezchybně skončí.
-.TP
-.I "\-\-version"
-Vypíše číslo verze na standardní výstup a bezchybně skončí.
diff --git a/man/da/Makefile.am b/man/da/Makefile.am
index 162b921e..c61b787d 100644
--- a/man/da/Makefile.am
+++ b/man/da/Makefile.am
@@ -5,7 +5,6 @@ mandir = @mandir@/da
man_MANS = \
man1/chfn.1 \
man8/groupdel.8 \
- man1/groups.1 \
man5/gshadow.5 \
man8/logoutd.8 \
man1/newgrp.1 \
diff --git a/man/de/Makefile.am b/man/de/Makefile.am
index b28e1c87..d3a6d6c1 100644
--- a/man/de/Makefile.am
+++ b/man/de/Makefile.am
@@ -16,7 +16,6 @@ man_MANS = \
man8/groupdel.8 \
man8/groupmems.8 \
man8/groupmod.8 \
- man1/groups.1 \
man8/grpck.8 \
man8/grpconv.8 \
man8/grpunconv.8 \
diff --git a/man/fr/Makefile.am b/man/fr/Makefile.am
index c675070f..2365e23b 100644
--- a/man/fr/Makefile.am
+++ b/man/fr/Makefile.am
@@ -16,7 +16,6 @@ man_MANS = \
man8/groupdel.8 \
man8/groupmems.8 \
man8/groupmod.8 \
- man1/groups.1 \
man8/grpck.8 \
man8/grpconv.8 \
man8/grpunconv.8 \
diff --git a/man/groups.1.xml b/man/groups.1.xml
deleted file mode 100644
index dcbedbaf..00000000
--- a/man/groups.1.xml
+++ /dev/null
@@ -1,108 +0,0 @@
-
-
-
-]>
-
-
-
-
- Julianne Frances
- Haugh
- Creation, 1991
-
-
- Thomas
- Kłoczko
- kloczek@pld.org.pl
- shadow-utils maintainer, 2000 - 2007
-
-
- Nicolas
- François
- nicolas.francois@centraliens.net
- shadow-utils maintainer, 2007 - now
-
-
-
- groups
- 1
- User Commands
- shadow-utils
- &SHADOW_UTILS_VERSION;
-
-
- groups
- display current group names
-
-
-
-
- groups
-
- user
-
-
-
-
-
- DESCRIPTION
-
- The groups command displays the current group names
- or ID values. If the value does not have a corresponding entry in
- /etc/group, the value will be displayed as the
- numerical group value. The optional user
- parameter will display the groups for the named user.
-
-
-
-
- NOTE
-
- Systems which do not support supplementary groups (see
- initgroups3
- ) will have the
- information from /etc/group reported. The user
- must use newgrp or sg to change
- his current real and effective group ID.
-
-
-
-
- FILES
-
-
- /etc/group
-
- Group account information.
-
-
-
-
-
-
- SEE ALSO
-
-
- newgrp1
- ,
-
- getgid2
- ,
-
- getgroups2
- ,
-
- getuid2
- ,
-
- initgroups3
- .
-
-
-
diff --git a/man/hu/Makefile.am b/man/hu/Makefile.am
index 205bb0a8..6bf68e8a 100644
--- a/man/hu/Makefile.am
+++ b/man/hu/Makefile.am
@@ -4,7 +4,6 @@ mandir = @mandir@/hu
man_MANS = \
man1/chsh.1 \
man1/gpasswd.1 \
- man1/groups.1 \
man1/login.1 \
man1/newgrp.1 \
man1/passwd.1 \
diff --git a/man/hu/man1/groups.1 b/man/hu/man1/groups.1
deleted file mode 100644
index c09a8bfd..00000000
--- a/man/hu/man1/groups.1
+++ /dev/null
@@ -1,35 +0,0 @@
-.\" SPDX-FileCopyrightText: 1991 \- 1994, Julianne Frances Haugh
-.\" SPDX-License-Identifier: BSD-3-Clause
-.\"
-.\" $Id$
-.\"
-.TH GROUPS 1
-.SH NÉV
-groups \- kiírja a jelenlegi csoportazonosító neveket
-.SH ÁTTEKINTÉS
-.B groups
-.RI [ felhasználó ]
-.SH LEÍRÁS
-A
-.B groups
-parancs kiírja a jelenlegi csoportazonosító neveket vagy számértékeket. Ha
-nincs az értéknek megfelelő bejegyzés a \fI/etc/group\fR fájlban, akkor a
-csoport azonosító számát írja ki. Az opcionális \fIfelhasználó\fR paraméter
-esetén azokat a csoportokat írja ki, amelyekbe a megadott \fIfelhasználó\fR
-tartozik.
-.SH MEGJEGYZÉS
-Azok a rendszerek, amelyek nem támogatják a konkurrens csoportbeállításokat,
-a kiírt információkat a \fI/etc/group\fR fájlból gyűjtik. A felhasználónak
-muszáj a \fBnewgrp\fR vagy a \fBsg\fR parancsot használniuk, hogy
-megváltoztassák a jelenlegi valódi és effektív csoportazonosítójukat.
-.SH FÁJLOK
-\fI/etc/group\fR \- információ a csoportokról
-.SH LÁSD MÉG
-.BR newgrp (1),
-.BR getgid (2),
-.BR getgroups (2),
-.BR getuid (2)
-.SH AUTHOR
-Julianne Frances Haugh (jfh@tab.com)
-.SH MAGYAR FORDÍTÁS
-ifj. Dyekiss Emil
diff --git a/man/it/Makefile.am b/man/it/Makefile.am
index e2aef4c9..736576c9 100644
--- a/man/it/Makefile.am
+++ b/man/it/Makefile.am
@@ -16,7 +16,6 @@ man_MANS = \
man8/groupdel.8 \
man8/groupmems.8 \
man8/groupmod.8 \
- man1/groups.1 \
man8/grpck.8 \
man8/grpconv.8 \
man8/grpunconv.8 \
diff --git a/man/ja/Makefile.am b/man/ja/Makefile.am
index 47bbe68f..b759726c 100644
--- a/man/ja/Makefile.am
+++ b/man/ja/Makefile.am
@@ -13,7 +13,6 @@ man_MANS = \
man8/groupadd.8 \
man8/groupdel.8 \
man8/groupmod.8 \
- man1/groups.1 \
man8/grpck.8 \
man8/grpconv.8 \
man8/grpunconv.8 \
diff --git a/man/ja/man1/groups.1 b/man/ja/man1/groups.1
deleted file mode 100644
index d316afee..00000000
--- a/man/ja/man1/groups.1
+++ /dev/null
@@ -1,39 +0,0 @@
-.\" SPDX-FileCopyrightText: 1991 - 1994 Julianne Frances Haugh
-.\" SPDX-FileCopyrightText: Copyright (c) 2001 Maki KURODA
-.\" SPDX-License-Identifier: BSD-3-Clause
-.\" Translated Tue Oct 30 11:58:18 JST 2001 by Maki KURODA
-.\" Modified Tue 16 Sep 2002 by NAKANO Takeo
-.\"
-.\" $Id$
-.\"
-.\"WORD: concurrent group set 同時所属グループ集合
-.\"WORD: real group ID 実グループ ID
-.\"WORD: effective group ID 実効グループ ID
-.\"
-.TH GROUPS 1
-.SH 名前
-groups \- 現在のグループ名の表示
-.SH 書式
-\fBgroups\fR [\fIuser\fR]
-.SH 説明
-.B groups
-は現在のグループの名前または ID 値を表示する。
-ID 値に対応する名前が \fI/etc/group\fR に登録されていなければ、
-数値のグループ ID で表示される。
-パラメータとして \fIuser\fR を与えると、
-指定した \fIuser\fR が所属するグループ名を表示する。
-.SH 注意
-同時所属グループ集合 (concurrent group set)
-をサポートしていないシステムでは、
-\fI/etc/group\fR の情報が報告される。
-ユーザが現在の実グループ ID や実効グループ ID を変更するには、
-\fBnewgrp\fR や \fBsg\fR を使用しなければならない。
-.SH ファイル
-/etc/group \- グループ情報
-.SH 関連項目
-.BR newgrp (1),
-.BR getuid (2),
-.BR getgid (2),
-.BR getgroups (2)
-.SH 著者
-Julianne Frances Haugh
diff --git a/man/ko/Makefile.am b/man/ko/Makefile.am
index c269f0bb..4f73651b 100644
--- a/man/ko/Makefile.am
+++ b/man/ko/Makefile.am
@@ -4,7 +4,6 @@ mandir = @mandir@/ko
man_MANS = \
man1/chfn.1 \
man1/chsh.1 \
- man1/groups.1 \
man1/login.1 \
man5/passwd.5 \
man1/su.1 \
diff --git a/man/ko/man1/groups.1 b/man/ko/man1/groups.1
deleted file mode 100644
index d407d3de..00000000
--- a/man/ko/man1/groups.1
+++ /dev/null
@@ -1,32 +0,0 @@
-.\"$Id$
-.TH GROUPS 1L "GNU 쉘 유틸리티" "FSF" \" \-*\- nroff \-*\-
-.SH 이름
-groups \- 사용자가 속한 그룹들을 출력한다
-.SH 개요
-.B groups
-[사용자명...]
-.br
-.B groups
-{\-\-help,\-\-version}
-.SH 설명
-이 맨페이지는 GNU 버전의
-.BR groups
-를 다룬다.
-.B groups
-는 주어진 각
-.IR username
-또는 프로세스
-가 속한 추가 그룹의 이름을 출력해준다.
-만약 사용자명이 주어졌다면 각 사용자명이 소속된 그룹 목록 앞에 표시된다.
-.PP
-그룹 목록은 `id \-Gn'의 결과와 같다.
-.SS 옵션
-GNU
-.B groups
-가 단 한 개의 인수를 가지고 실행되면 다음 옵션들을 인식한다:
-.TP
-.I "\-\-help"
-표준출력으로 사용법을 출력하고 정상적으로 종료한다.
-.TP
-.I "\-\-version"
-표준출력으로 버전정보를 출력하고 정상적으로 종료한다.
diff --git a/man/login.defs.5.xml b/man/login.defs.5.xml
index 05ef5125..7263395c 100644
--- a/man/login.defs.5.xml
+++ b/man/login.defs.5.xml
@@ -326,7 +326,6 @@
MAX_MEMBERS_PER_GROUP
-
grpck
diff --git a/man/pl/Makefile.am b/man/pl/Makefile.am
index 0fdcc370..2a015f3a 100644
--- a/man/pl/Makefile.am
+++ b/man/pl/Makefile.am
@@ -13,7 +13,6 @@ man_MANS = \
man8/groupdel.8 \
man8/groupmems.8 \
man8/groupmod.8 \
- man1/groups.1 \
man8/grpck.8 \
man8/logoutd.8 \
man1/newgrp.1 \
diff --git a/man/po/XMLFILES b/man/po/XMLFILES
index de7925df..bf08e6da 100644
--- a/man/po/XMLFILES
+++ b/man/po/XMLFILES
@@ -13,7 +13,6 @@ XMLFILES = \
$(top_srcdir)/man/groupdel.8.xml \
$(top_srcdir)/man/groupmems.8.xml \
$(top_srcdir)/man/groupmod.8.xml \
- $(top_srcdir)/man/groups.1.xml \
$(top_srcdir)/man/grpck.8.xml \
$(top_srcdir)/man/gshadow.5.xml \
$(top_srcdir)/man/lastlog.8.xml \
diff --git a/man/ru/Makefile.am b/man/ru/Makefile.am
index bceae79c..845a603e 100644
--- a/man/ru/Makefile.am
+++ b/man/ru/Makefile.am
@@ -16,7 +16,6 @@ man_MANS = \
man8/groupdel.8 \
man8/groupmems.8 \
man8/groupmod.8 \
- man1/groups.1 \
man8/grpck.8 \
man8/grpconv.8 \
man8/grpunconv.8 \
diff --git a/man/sv/Makefile.am b/man/sv/Makefile.am
index ba9ef3ec..1918af72 100644
--- a/man/sv/Makefile.am
+++ b/man/sv/Makefile.am
@@ -12,7 +12,6 @@ man_MANS = \
man8/groupdel.8 \
man8/groupmems.8 \
man8/groupmod.8 \
- man1/groups.1 \
man8/grpck.8 \
man5/gshadow.5 \
man8/logoutd.8 \
diff --git a/man/uk/Makefile.am b/man/uk/Makefile.am
index d34be069..a0f106d6 100644
--- a/man/uk/Makefile.am
+++ b/man/uk/Makefile.am
@@ -16,7 +16,6 @@ man_MANS = \
man8/groupdel.8 \
man8/groupmems.8 \
man8/groupmod.8 \
- man1/groups.1 \
man8/grpck.8 \
man8/grpconv.8 \
man8/grpunconv.8 \
diff --git a/man/zh_CN/Makefile.am b/man/zh_CN/Makefile.am
index b9a205d1..59d1072d 100644
--- a/man/zh_CN/Makefile.am
+++ b/man/zh_CN/Makefile.am
@@ -16,7 +16,6 @@ man_MANS = \
man8/groupdel.8 \
man8/groupmems.8 \
man8/groupmod.8 \
- man1/groups.1 \
man8/grpck.8 \
man8/grpconv.8 \
man8/grpunconv.8 \
diff --git a/po/POTFILES.in b/po/POTFILES.in
index b3513c7c..3aff87b2 100644
--- a/po/POTFILES.in
+++ b/po/POTFILES.in
@@ -90,7 +90,6 @@ src/groupadd.c
src/groupdel.c
src/groupmems.c
src/groupmod.c
-src/groups.c
src/grpck.c
src/grpconv.c
src/grpunconv.c
diff --git a/src/.gitignore b/src/.gitignore
index a0ee0ef6..9ae06b42 100644
--- a/src/.gitignore
+++ b/src/.gitignore
@@ -10,7 +10,6 @@
/groupdel
/groupmems
/groupmod
-/groups
/grpck
/grpconv
/grpunconv
diff --git a/src/Makefile.am b/src/Makefile.am
index c1268777..d4e6f3ab 100644
--- a/src/Makefile.am
+++ b/src/Makefile.am
@@ -26,7 +26,7 @@ AM_CFLAGS = $(LIBBSD_CFLAGS)
# and installation would be much simpler (just two directories,
# $prefix/bin and $prefix/sbin, no install-data hacks...)
-bin_PROGRAMS = groups login
+bin_PROGRAMS = login
sbin_PROGRAMS = nologin
ubin_PROGRAMS = faillog chage chfn chsh expiry gpasswd newgrp passwd
if ENABLE_SUBIDS
diff --git a/src/groups.c b/src/groups.c
deleted file mode 100644
index 5c9ce463..00000000
--- a/src/groups.c
+++ /dev/null
@@ -1,178 +0,0 @@
-/*
- * SPDX-FileCopyrightText: 1991 - 1993, Julianne Frances Haugh
- * SPDX-FileCopyrightText: 1996 - 2000, Marek Michałkiewicz
- * SPDX-FileCopyrightText: 2001 - 2006, Tomasz Kłoczko
- * SPDX-FileCopyrightText: 2007 - 2008, Nicolas François
- *
- * SPDX-License-Identifier: BSD-3-Clause
- */
-
-#include
-
-#ident "$Id$"
-
-#include
-#include
-#include
-
-#include "alloc/x/xmalloc.h"
-#include "defines.h"
-#include "prototypes.h"
-#include "shadowlog.h"
-
-/*
- * Global variables
- */
-static const char Prog[] = "groups";
-
-/* local function prototypes */
-static void print_groups (const char *member);
-
-/*
- * print_groups - print the groups which the named user is a member of
- *
- * print_groups() scans the groups file for the list of groups which
- * the user is listed as being a member of.
- */
-static void print_groups (const char *member)
-{
- int groups = 0;
- struct group *grp;
- struct passwd *pwd;
- bool flag = false;
-
- pwd = getpwnam (member); /* local, no need for xgetpwnam */
- if (NULL == pwd) {
- (void) fprintf (stderr, _("%s: unknown user %s\n"),
- Prog, member);
- exit (EXIT_FAILURE);
- }
-
- setgrent ();
- while ((grp = getgrent ()) != NULL) {
- if (is_on_list (grp->gr_mem, member)) {
- if (0 != groups) {
- (void) putchar (' ');
- }
- groups++;
-
- (void) printf ("%s", grp->gr_name);
- if (grp->gr_gid == pwd->pw_gid) {
- flag = true;
- }
- }
- }
- endgrent ();
-
- /* The user may not be in the list of members of its primary group */
- if (!flag) {
- grp = getgrgid (pwd->pw_gid); /* local, no need for xgetgrgid */
- if (NULL != grp) {
- if (0 != groups) {
- (void) putchar (' ');
- }
- groups++;
-
- (void) printf ("%s", grp->gr_name);
- }
- }
-
- if (0 != groups) {
- (void) putchar ('\n');
- }
-}
-
-/*
- * groups - print out the groups a process is a member of
- */
-int main (int argc, char **argv)
-{
- long sys_ngroups;
- GETGROUPS_T *groups;
-
- sys_ngroups = sysconf (_SC_NGROUPS_MAX);
- groups = XMALLOC(sys_ngroups, GETGROUPS_T);
-
- (void) setlocale (LC_ALL, "");
- (void) bindtextdomain (PACKAGE, LOCALEDIR);
- (void) textdomain (PACKAGE);
-
- log_set_progname(Prog);
- log_set_logfd(stderr);
-
- if (argc == 1) {
-
- /*
- * Called with no arguments - give the group set for the
- * current user.
- */
-
- int i;
- int pri_grp; /* TODO: should be GETGROUPS_T */
- /*
- * This system supports concurrent group sets, so I can ask
- * the system to tell me which groups are currently set for
- * this process.
- */
- int ngroups = getgroups (sys_ngroups, groups);
- if (ngroups < 0) {
- perror ("getgroups");
- exit (EXIT_FAILURE);
- }
-
- /*
- * The groupset includes the primary group as well.
- */
- pri_grp = getegid ();
- for (i = 0; i < ngroups; i++) {
- if (pri_grp == (int) groups[i]) {
- break;
- }
- }
-
- if (i != ngroups) {
- pri_grp = -1;
- }
-
- /*
- * Print out the name of every group in the current group
- * set. Unknown groups are printed as their decimal group ID
- * values.
- */
- if (-1 != pri_grp) {
- struct group *gr;
- /* local, no need for xgetgrgid */
- gr = getgrgid (pri_grp);
- if (NULL != gr) {
- (void) printf ("%s", gr->gr_name);
- } else {
- (void) printf ("%d", pri_grp);
- }
- }
-
- for (i = 0; i < ngroups; i++) {
- struct group *gr;
- if ((0 != i) || (-1 != pri_grp)) {
- (void) putchar (' ');
- }
-
- /* local, no need for xgetgrgid */
- gr = getgrgid (groups[i]);
- if (NULL != gr) {
- (void) printf ("%s", gr->gr_name);
- } else {
- (void) printf ("%ld", (long) groups[i]);
- }
- }
- (void) putchar ('\n');
- } else {
-
- /*
- * The invoker wanted to know about some other user. Use
- * that name to look up the groups instead.
- */
- print_groups (argv[1]);
- }
- return EXIT_SUCCESS;
-}
-