From 2441f208c64f61b83bf4cc60b5258be3dff3614e Mon Sep 17 00:00:00 2001 From: Bananymous Date: Tue, 15 Aug 2023 09:03:51 +0300 Subject: [PATCH] Userspace: Add basic whoami command --- userspace/CMakeLists.txt | 1 + userspace/whoami/CMakeLists.txt | 16 ++++++++++++++++ userspace/whoami/main.cpp | 16 ++++++++++++++++ 3 files changed, 33 insertions(+) create mode 100644 userspace/whoami/CMakeLists.txt create mode 100644 userspace/whoami/main.cpp diff --git a/userspace/CMakeLists.txt b/userspace/CMakeLists.txt index 7acbbd81..df446667 100644 --- a/userspace/CMakeLists.txt +++ b/userspace/CMakeLists.txt @@ -14,6 +14,7 @@ set(USERSPACE_PROJECTS test touch u8sum + whoami yes ) diff --git a/userspace/whoami/CMakeLists.txt b/userspace/whoami/CMakeLists.txt new file mode 100644 index 00000000..392d1c3a --- /dev/null +++ b/userspace/whoami/CMakeLists.txt @@ -0,0 +1,16 @@ +cmake_minimum_required(VERSION 3.26) + +project(whoami CXX) + +set(SOURCES + main.cpp +) + +add_executable(whoami ${SOURCES}) +target_compile_options(whoami PUBLIC -O2 -g) +target_link_libraries(whoami PUBLIC libc ban) + +add_custom_target(whoami-install + COMMAND cp ${CMAKE_CURRENT_BINARY_DIR}/whoami ${BANAN_BIN}/ + DEPENDS whoami +) diff --git a/userspace/whoami/main.cpp b/userspace/whoami/main.cpp new file mode 100644 index 00000000..a042c569 --- /dev/null +++ b/userspace/whoami/main.cpp @@ -0,0 +1,16 @@ +#include +#include +#include + +int main() +{ + auto* pw = getpwuid(geteuid()); + if (pw == nullptr) + { + printf("unknown user %d\n", geteuid()); + return 1; + } + printf("%s\n", pw->pw_name); + endpwent(); + return 0; +}