[so2] [vm] Problema getpwuid

Octavian Purdila tavi.purdila at gmail.com
Sun Jun 11 13:46:03 EEST 2017


2017-06-10 17:39 GMT+03:00 Mihai-Valentin DUMITRU via so2
<so2 at cursuri.cs.pub.ro>:
> Salut,
>
> Din mașina virtuală de so2, încerc să folosesc minicom, care îmi aruncă
> mesajul "You don't exist. Go away."
> Eroarea are loc din cauză că un apel către "getpwuid" returnează NULL (și
> setează errno la ENOENT).
>
> == Snippet ==
> #include <stdio.h>
> #include <errno.h>
> #include <sys/types.h>
> #include <pwd.h>
> #include <unistd.h>
>
> int main()
> {
>         // rulat ca root, "getuid()" chiar intoarce 0
>         if (getpwuid(getuid()) == NULL) {
>                 printf("errno: %s\n", strerror(errno));
>                 return 1;
>         }
>
>         return 0;
> }
> ====
>
> == Result ==
> errno: No such file or directory
> ====
>
> Din ce am înțeles din manual, problema ar fi de la "/etc/passwd", care însă
> există, e citibil și conține intrarea:
> root::0:0:root:/:/bin/sh
>
> Are cineva idee cum aș putea rezolva această problemă?
>

Salut Mihai,

Banuiesc ca programul il linkezi static si ar trebui sa primesti
urmatorul warning:

/tmp/ccYXTI3L.o: In function `main':
a.c:(.text+0xc): warning: Using 'getpwuid' in statically linked
applications requires at runtime the shared libraries from the glibc
version used for linking

care ar trebui sa explice cauza problemei tale.


More information about the so2 mailing list