>From e76c1e9268c7bb28598ff1dbc36b0ca7e1729abb Mon Sep 17 00:00:00 2001 From: Tanguy Pruvot <[email protected]> Date: Mon, 20 Jun 2011 16:07:31 +0200 Subject: [PATCH] implement groups applet (v2)
Signed-off-by: Tanguy Pruvot <[email protected]> --- coreutils/Config.src | 7 +++++++ coreutils/Kbuild.src | 1 + coreutils/groups.c | 40 ++++++++++++++++++++++++++++++++++++++++ include/applets.src.h | 1 + 4 files changed, 49 insertions(+), 0 deletions(-) create mode 100644 coreutils/groups.c diff --git a/coreutils/Config.src b/coreutils/Config.src index 1843e8b..a234b38 100644 --- a/coreutils/Config.src +++ b/coreutils/Config.src @@ -269,6 +269,13 @@ config FEATURE_FANCY_HEAD help This enables the head options (-c, -q, and -v). +config GROUPS + bool "groups" + default y + depends on ID + help + Print the group names associated with the current user id + config HOSTID bool "hostid" default y diff --git a/coreutils/Kbuild.src b/coreutils/Kbuild.src index 6a41c83..361f3e6 100644 --- a/coreutils/Kbuild.src +++ b/coreutils/Kbuild.src @@ -44,6 +44,7 @@ lib-$(CONFIG_LN) += ln.o lib-$(CONFIG_LOGNAME) += logname.o lib-$(CONFIG_LS) += ls.o lib-$(CONFIG_FTPD) += ls.o +lib-$(CONFIG_GROUPS) += groups.o lib-$(CONFIG_MD5SUM) += md5_sha1_sum.o lib-$(CONFIG_MKDIR) += mkdir.o lib-$(CONFIG_MKFIFO) += mkfifo.o diff --git a/coreutils/groups.c b/coreutils/groups.c new file mode 100644 index 0000000..ab07ee2 --- /dev/null +++ b/coreutils/groups.c @@ -0,0 +1,40 @@ +/* vi: set sw=4 ts=4: */ +/* + * Mini groups implementation for busybox + * + * Copyright (C) 2011 Tanguy Pruvot <[email protected]>. + * + * Licensed under GPLv2 or later, see file LICENSE in this source tree. + */ + +/* BB_AUDIT SUSv3 N/A -- Matches GNU behavior. */ + +//usage:#define groups_trivial_usage +//usage: "" +//usage:#define groups_full_usage "\n\n" +//usage: "Print the group names associated with the current user id" + +#include "libbb.h" + +extern int id_main(int argc, char **argv); + +int groups_main(int argc, char **argv) MAIN_EXTERNALLY_VISIBLE; +int groups_main(int argc UNUSED_PARAM, char **argv UNUSED_PARAM) +{ + char *id_argv[3]; + int ret; + + if (argv[1]) + bb_show_usage(); + + id_argv[0] = xstrdup("id"); + id_argv[1] = xstrdup("-Gn"); + id_argv[2] = 0; + + ret = id_main(2, id_argv); + + free(id_argv[1]); + free(id_argv[0]); + + return ret; +} diff --git a/include/applets.src.h b/include/applets.src.h index 133f376..c3775fb 100644 --- a/include/applets.src.h +++ b/include/applets.src.h @@ -170,6 +170,7 @@ IF_GETENFORCE(APPLET(getenforce, BB_DIR_USR_SBIN, BB_SUID_DROP)) IF_GETOPT(APPLET(getopt, BB_DIR_BIN, BB_SUID_DROP)) IF_GETSEBOOL(APPLET(getsebool, BB_DIR_USR_SBIN, BB_SUID_DROP)) IF_GETTY(APPLET(getty, BB_DIR_SBIN, BB_SUID_DROP)) +IF_GROUPS(APPLET_NOEXEC(groups, groups, BB_DIR_USR_BIN, BB_SUID_DROP, groups)) IF_GUNZIP(APPLET(gunzip, BB_DIR_BIN, BB_SUID_DROP)) IF_GZIP(APPLET(gzip, BB_DIR_BIN, BB_SUID_DROP)) IF_HD(APPLET_NOEXEC(hd, hexdump, BB_DIR_USR_BIN, BB_SUID_DROP, hd)) -- 1.7.5.3
0001-implement-groups-applet--v2.patch
Description: Binary data
_______________________________________________ busybox mailing list [email protected] http://lists.busybox.net/mailman/listinfo/busybox
