From bfb3d3b2fbc0d58fb30c3ceef36fa3cd3224f350 Mon Sep 17 00:00:00 2001 From: Your Name Date: Sun, 1 Sep 2024 16:43:41 +0300 Subject: [PATCH] added musuid --- clean.sh | 2 +- configs/config.h | 4 ++++ libmu/mode_to_str.c | 1 - scripts/build-box.sh | 1 + scripts/musuid.c | 27 +++++++++++++++++++++++++++ 5 files changed, 33 insertions(+), 2 deletions(-) create mode 100644 scripts/musuid.c diff --git a/clean.sh b/clean.sh index 7881c8e..fa34938 100755 --- a/clean.sh +++ b/clean.sh @@ -1,3 +1,3 @@ #!/bin/sh -rm -f obj/* bin/* mutils.c mutils +rm -f obj/* bin/* mutils.c mutils musuid diff --git a/configs/config.h b/configs/config.h index 7acf35d..2d501ff 100644 --- a/configs/config.h +++ b/configs/config.h @@ -4,6 +4,10 @@ /* (cat tee wc xargs rev split cp) text buffer */ #define BUF_SIZE 32000 +#ifdef _MUSUID_C + #define MUTILS_PATH "/bin/mutils" +#endif + #ifdef _SHRED_C /* source of random (shred) */ #define RAND_SOURCE "/dev/urandom" diff --git a/libmu/mode_to_str.c b/libmu/mode_to_str.c index fe04137..aba596f 100644 --- a/libmu/mode_to_str.c +++ b/libmu/mode_to_str.c @@ -51,4 +51,3 @@ char *mu_mode_2_str(mode_t file_mode) { return mode; } - diff --git a/scripts/build-box.sh b/scripts/build-box.sh index 0941afc..d1f0cdf 100755 --- a/scripts/build-box.sh +++ b/scripts/build-box.sh @@ -42,3 +42,4 @@ int main(int argc, char **argv) { EOF echo $CFLAGS | xargs $CC -Iconfigs -Ilibmu mutils.c obj/*.o bin/*.c -o mutils +echo $CFLAGS | xargs $CC -Iconfigs scripts/musuid.c -o musuid diff --git a/scripts/musuid.c b/scripts/musuid.c new file mode 100644 index 0000000..fca2b3d --- /dev/null +++ b/scripts/musuid.c @@ -0,0 +1,27 @@ +#include +#include +#include +#include +#include +#define _MUSUID_C +#include "config.h" + +const char *progs[] = {"su", "ping"}; + +int main(int argc, char **argv) { + if (argc == 1) { + fputs("musuid: missing operand\n", stderr); + return 1; + } + + argc--; + argv++; + + /* RUN */ + for (size_t i = 0; i < sizeof(progs) / sizeof(char *); i++) + if (!strcmp(argv[0], progs[i])) + execv(MUTILS_PATH, argv); + + fprintf(stderr, "musuid: unknown command: %s\n", argv[0]); + return 1; +}