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; -} -