Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit ce34551c authored by Elliott Hughes's avatar Elliott Hughes Committed by Gerrit Code Review
Browse files

Merge "Lose id to toybox."

parents 45c4c06f 1bf50543
Loading
Loading
Loading
Loading
+0 −1
Original line number Diff line number Diff line
@@ -57,7 +57,6 @@ OUR_TOOLS := \
    getevent \
    getprop \
    getsebool \
    id \
    iftop \
    ioctl \
    ionice \

toolbox/id.c

deleted100644 → 0
+0 −57
Original line number Diff line number Diff line
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <sys/types.h>
#include <pwd.h>
#include <grp.h>
#include <selinux/selinux.h>

static void print_uid(uid_t uid)
{
    struct passwd *pw = getpwuid(uid);

    if (pw) {
        printf("%d(%s)", uid, pw->pw_name);
    } else {
        printf("%d",uid);
    }
}

static void print_gid(gid_t gid)
{
    struct group *gr = getgrgid(gid);
    if (gr) {
        printf("%d(%s)", gid, gr->gr_name);
    } else {
        printf("%d",gid);
    }
}

int id_main(int argc, char **argv)
{
    gid_t list[64];
    int n, max;
    char *secctx;

    max = getgroups(64, list);
    if (max < 0) max = 0;

    printf("uid=");
    print_uid(getuid());
    printf(" gid=");
    print_gid(getgid());
    if (max) {
        printf(" groups=");
        print_gid(list[0]);
        for(n = 1; n < max; n++) {
            printf(",");
            print_gid(list[n]);
        }
    }
    if (getcon(&secctx) == 0) {
        printf(" context=%s", secctx);
        free(secctx);
    }
    printf("\n");
    return 0;
}