Alle dateien eines Verzeichnisses auflisten, die zur Gruppe "uucp" gehören?
-
Hi,
ich seh den Wald vor lauter "google" nich mehr.
ich mache...
curdir = opendir( dirname ); if( curdir == NULL) { cout<< "directory not open... "<<endl; return 0; } ... while(files = readdir(curdir)){ ... int ret = stat(files->d_name, &s); printf(" File uid : %u \n", s.st_uid); printf(" File gid : %u \n", s.st_gid ); ... } closedir(curdir);
ich habe dann diesen Code im Internet gefunden, der Gruppen listet...
#include<grp.h> #include<sys/types.h> main() { struct group *data; int i; while((data= getgrent())!=0){ i=0; printf(“%s:%s:%d:”,data->gr_name,data->gr_passwd,data->gr_gid); while(data->gr_mem[i])printf(“%s,”,data->gr_mem[i++]); printf(“\n”); } endgrent(); }
liefert ...
root0:root,
bin1:root,bin,daemon,
daemon2:root,bin,daemon,
sys3:root,bin,adm,
adm4:root,adm,daemon
tty5
disk6:root
lp7:daemon,lp
mem8
kmem9:
wheel10:root
mail12:mail
news13:news
uucp14:uucp
man15:
games20
gopher30
dip40
ftp50
nobody99welcher Gruppen id entpricht den nach meinem Code "uucp" oder "root"?
Mach ich das überhaupt richtig?Gruß
Franky
-
Ich würde es einmal mit <pwd.h> versuchen.
struct passwd *uucp = getpwnam("uucp"); uid_t user_id_von_uucp = uucp->pw_uid; gid_t group_id_von_uucp = uucp->pw_gid;
Über das Passwort musst du dir keine Sorgen machen, das wird bei "neuen" Systemen nicht übergeben.
-
Hi,
ich habe das mal gemacht...
struct passwd *uucp = getpwnam("uucp"); uid_t user_id_von_uucp = uucp->pw_uid; gid_t group_id_von_uucp = uucp->pw_gid; cout << "user_id_von_uucp: " << user_id_von_uucp << endl; cout << "group_id_von_uucp: " << user_id_von_uucp << endl; struct group * mygrp = getgrgid( s.st_gid ); cout << " mygrp (gid): " << mygrp->gr_gid << endl; struct passwd * mypwd = getpwuid( s.st_uid ); cout << " mypwd (uid): " << mypwd->pw_uid << endl; cout << " mypwd (gid): " << mypwd->pw_gid << endl;
Wenn ich das mal mit "/etc/passwd" oder mit "/etc/group" vergleiche...
in allen Fällen ist der Konqueror besser als ich. Ich kriege für jede Datei nur meine ID's und nicht die Grupen ID's die der Konqueror anzeigen kann.Gruß
Franky