sbase

suckless unix tools
git clone git://git.2f30.org/sbase.git
Log | Files | Refs | README | LICENSE

commit 246564cb7059e0b9be528a98fa2eec7a20d68d7c
parent 1ea570d74ee016efda4591b1680cd1c24d01b021
Author: FRIGN <dev@frign.de>
Date:   Mon Dec 14 10:55:25 +0100

Add whoami(1)

including manpage and other stuff. This program is a no-brainer.
This was inspired by an initial commit by e@bestmx.net. Thanks!

Diffstat:
Makefile | 1+
README | 1+
whoami.1 | 9+++++++++
whoami.c | 37+++++++++++++++++++++++++++++++++++++
4 files changed, 48 insertions(+), 0 deletions(-)
diff --git a/Makefile b/Makefile @@ -157,6 +157,7 @@ BIN =\ uuencode\ wc\ which\ + whoami\ xargs\ yes diff --git a/README b/README @@ -95,6 +95,7 @@ The following tools are implemented: =*|o uuencode . #*|o wc . =*|x which . +=*|x whoami . =*|o xargs (-p) =*|x yes . diff --git a/whoami.1 b/whoami.1 @@ -0,0 +1,9 @@ +.Dd 2015-12-14 +.Dt WHOAMI 1 +.Os sbase +.Sh NAME +.Nm whoami +.Nd show effective uid +.Sh SYNOPSIS +.Nm +writes the name of the effective uid to stdout. diff --git a/whoami.c b/whoami.c @@ -0,0 +1,37 @@ +/* See LICENSE file for copyright and license details. */ +#include <errno.h> +#include <stdio.h> +#include <unistd.h> +#include <pwd.h> + +#include "util.h" + +static void +usage (void) +{ + eprintf("usage: %s\n", argv0); +} + +int +main (int argc, char *argv[]) +{ + uid_t uid; + struct passwd *pw; + + argv0 = argv[0], argc--, argv++; + + if (argc) + usage(); + + uid = geteuid(); + errno = 0; + if (!(pw = getpwuid(uid))) { + if (errno) + eprintf("getpwuid %d:", uid); + else + eprintf("getpwuid %d: no such user\n", uid); + } + puts(pw->pw_name); + + return fshut(stdout, "<stdout>"); +}