diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-19 17:20:00 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-19 17:20:00 +0000 |
commit | 8daa83a594a2e98f39d764422bfbdbc62c9efd44 (patch) | |
tree | 4099e8021376c7d8c05bdf8503093d80e9c7bad0 /testsuite/nsswitch/getpwuid.c | |
parent | Initial commit. (diff) | |
download | samba-8daa83a594a2e98f39d764422bfbdbc62c9efd44.tar.xz samba-8daa83a594a2e98f39d764422bfbdbc62c9efd44.zip |
Adding upstream version 2:4.20.0+dfsg.upstream/2%4.20.0+dfsg
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'testsuite/nsswitch/getpwuid.c')
-rw-r--r-- | testsuite/nsswitch/getpwuid.c | 43 |
1 files changed, 43 insertions, 0 deletions
diff --git a/testsuite/nsswitch/getpwuid.c b/testsuite/nsswitch/getpwuid.c new file mode 100644 index 0000000..3f364df --- /dev/null +++ b/testsuite/nsswitch/getpwuid.c @@ -0,0 +1,43 @@ +/* + * Lookup a user by uid. + */ + +#include <stdio.h> +#include <pwd.h> +#include <sys/types.h> + +int main(int argc, char **argv) +{ + struct passwd *pw; + uid_t uid; + + /* Check args */ + + if (argc != 2) { + printf("ERROR: no arg specified\n"); + exit(1); + } + + if ((uid = atoi(argv[1])) == 0) { + printf("ERROR: invalid uid specified\n"); + exit(1); + } + + /* Do getpwuid() */ + + if ((pw = getpwuid(uid)) == NULL) { + printf("FAIL: uid %d does not exist\n", uid); + exit(1); + } + + printf("PASS: uid %d exists\n", uid); + printf("pw_name = %s\n", pw->pw_name); + printf("pw_passwd = %s\n", pw->pw_passwd); + printf("pw_uid = %d\n", pw->pw_uid); + printf("pw_gid = %d\n", pw->pw_gid); + printf("pw_gecos = %s\n", pw->pw_gecos); + printf("pw_dir = %s\n", pw->pw_dir); + printf("pw_shell = %s\n", pw->pw_shell); + + exit(0); +} |