PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : frage zu gruppenrechten



msi
13.05.03, 14:18
Hallo,

wenn ich einen user thomas in mehrere gruppen eintragen ( users (hauptgruppe, steht in /etc/passwd), users2 und users3 (steht nur in group)), und dann habe ich datei test die dem user test1 und der gruppe users3 gehört mit folgenden permissions: r-xr-x---, woher weiß der kernel, dann das der user das recht hat diese datei zu lesen, der kernel erfährt doch nur seine uid und seine gid aber nicht seine zusätzlichen gids.
Früher musste man deshalb newgrp users3 eingeben, aber jetzt geht das auch ohne. Wieso??

danke Markus

tomes
14.05.03, 17:30
Also definiert wird das ganze hier --> /usr/src/linux/fs/namei.c in den Kernelsourcen.
Funktion permission()
Wenn du als user test1 einfach mal ein # id machst, siehst du welche Rechte dieser user hat.
Seit wann das so ist ?
Steht auch in der File ;)
Die einzelnen File-Systeme haben auch solche Function implementiert.
Gibt es diese, wird die Kernel-Function ausser acht gelassen.

T;o)Mes

msi
15.05.03, 16:16
Original geschrieben von tomes
Also definiert wird das ganze hier --> /usr/src/linux/fs/namei.c in den Kernelsourcen.
Funktion permission()
Wenn du als user test1 einfach mal ein # id machst, siehst du welche Rechte dieser user hat.
Seit wann das so ist ?
Steht auch in der File ;)
Die einzelnen File-Systeme haben auch solche Function implementiert.
Gibt es diese, wird die Kernel-Function ausser acht gelassen.

T;o)Mes

das war nicht ganz meine Frage, ich wollte nur wissen, woher der kernel weiß, zu welchhen gruppen ein best. user gehört.
er wird wohl kaum selber die /etc/group auslesen und wenn der user ein prog ausführt ist bei dem nur die gid und uid festgelegt. Diese werden für die permissions überprüft, aber wenn der user in mehreren gruppen ist, kriegt das doch der kernel gar nicht mit..

tomes
15.05.03, 19:14
Original geschrieben von msi
das war nicht ganz meine Frage, ich wollte nur wissen, woher der kernel weiß, zu welchhen gruppen ein best. user gehört.
er wird wohl kaum selber die /etc/group auslesen und wenn der user ein prog ausführt ist bei dem nur die gid und uid festgelegt. Diese werden für die permissions überprüft, aber wenn der user in mehreren gruppen ist, kriegt das doch der kernel gar nicht mit..
Achso ;)
Du suchst eine Beschreibung fuer ACL Access Control List
# man -k acl auf dem System
siehe hier --> http://acl.bestbits.at im Netz
Ich hoffe mal das es das war ;)

T;o)Mes

P.S.: Achso, die Rechte werden durch das login abgerufen und gesetzt --> pam

msi
15.05.03, 19:54
Original geschrieben von tomes
Achso ;)
Du suchst eine Beschreibung fuer ACL Access Control List
# man -k acl auf dem System
siehe hier --> http://acl.bestbits.at im Netz
Ich hoffe mal das es das war ;)

T;o)Mes

P.S.: Achso, die Rechte werden durch das login abgerufen und gesetzt --> pam

mit ACL hat das glaub ich wenig zu tun, da der aktuelle linux kernel 2.4.20 dies nicht integriert hat.
Bin ich wirklich so schwer zu verstehen?? Ich meine die ganz normalen Gruppenrechte.

tomes
15.05.03, 20:54
Also noch ein Versuch :D
Mal sehn ob es jetzt klappt ;)
Du machst ein login, dabei werden die pam Module durchlaufen.
Hier werden einige Umgebungsvariable gesetzt, wie z.B. die uid und gid.
Woher kommen diese. Aus den dazugehoerigen Files. In der group steht ja zu jeder Gruppe die User.
Diese werden dann der Shell vererbt. Ein # id zeigt jetzt alles auf.
Also einfach gesagt, werden durch den pam die "Umgebungsvariablen" erweitert.
Du kann sogar ueber die /etc/security/group.conf bestimmte Gruppen einem User zuordnen, zu der er garn nicht gehoert.
Dem Kernel interessiert das ganze doch garn nicht. Die Shell ist doch fuer den User verantwortlich und weiss jetzt was der User ist.

Uebrigens, bei SuSE ist ACL schon seit mindestens 2.4.19 dabei. Ansonsten kann man auch seinen Kernel patchen.

T;o)Mes

msi
16.05.03, 23:31
das heißt wenn ein user mehreren gruppen angehört, wird das dem kernel gleich übermittelt, wenn der usere auf systemfunktionen zugreift??

RapidMax
18.05.03, 15:22
Wenn du einen User in eine zusätzliche Gruppe in /etc/group einträgst, dann musst sich der User erst ein/ausloggen, damit die Änderung Wirkung zeigt. D.h. IMHO beim einloggen wird irgendwo festgehalten, welchen Gruppen der User angehört.

Gruss, Andy

msi
18.05.03, 15:25
das würde heißen, dass der kernel auch mehr als nur eine gid einem prozess zuordnen kann.

Der User muss sich neu einloggen, damit seine shell diese gruppenids auch bekommt (davor hatte sie ja nur die alten) und neu ausgeführte Programme erben diese Rechte.

aha so geht das...