commit 09c279285ac44ada82c792d88fb246fd98a14e03
parent bb7427f6c1c95fc6b02ee90ca124dff50fcff9c5
Author: FRIGN <dev@frign.de>
Date: Mon, 14 Dec 2015 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:
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>");
+}