Users and Groups: Noob Frage

Hi,

bitte nicht auslachen ;)

Was ist eine "effective group id"? Okay ein User hat eine effective group id und ist ansonsten möglicherweise noch Mitglied in anderen Gruppen. Aber die effektive Gruppe hat doch keinen Einfluss auf beispielsweise die Zufgriffsrechte auf Dateien. Wozu ist die denn dann gut? Besteht der einzige Sinn darin, vorübergehend mit newgrp und nem gesetzten Gruppenpasswort in eine Gruppe einzusteigen?

cu
serow
 
Hallo,

für newgrp ist die Unterscheidung auch relevant, aber das kommt heute nicht mehr in dem Maße vor wie früher, als sich noch dutzende Leute einen Rechner teilen mussten (Timesharing).

Interessanter wirds bei Prozessen. Unter Unix laufen Prozesse bekanntlich mit den Rechten des Benutzers, der ihn gestartet hat. In dem Fall wären effektive und reale GID auch identisch. Die Unterscheidung wird dann wichtig, wenn bei der ausführbaren Datei setuid oder setgid Bits gesetzt sind (bekanntestes Beispiel sind Images die root gehören und setuid gesetzt haben: suid:root).

In dem Fall erbt das Programm zwar reale UID/GID vom aufrufenden Benutzer (bzw. Prozess, d.h. deine Shell), die effektive UID/GID gibt aber an, mit welchen Rechten das Programm tatsächlich läuft.

Hier ist dafür ein nettes Beispiel:
Wikipedia: setuid

MfG...
 
Interessanter wirds bei Prozessen. Unter Unix laufen Prozesse bekanntlich mit den Rechten des Benutzers, der ihn gestartet hat. In dem Fall wären effektive und reale GID auch identisch. Die Unterscheidung wird dann wichtig, wenn bei der ausführbaren Datei setuid oder setgid Bits gesetzt sind (bekanntestes Beispiel sind Images die root gehören und setuid gesetzt haben: suid:root).

In dem Fall erbt das Programm zwar reale UID/GID vom aufrufenden Benutzer (bzw. Prozess, d.h. deine Shell), die effektive UID/GID gibt aber an, mit welchen Rechten das Programm tatsächlich läuft.

Hier ist dafür ein nettes Beispiel:
Wikipedia: setuid
Danke!

für newgrp ist die Unterscheidung auch relevant, aber das kommt heute nicht mehr in dem Maße vor wie früher, als sich noch dutzende Leute einen Rechner teilen mussten (Timesharing).
http://en.wikipedia.org/wiki/Time-sharing#Time-sharing_systems
Time-sharing refers to sharing a computing resource among many users by multitasking.
Ist das nicht heute immernoch der Fall? Mach heutige Schedulre nicht alle Preemptive Multitasking und damit auch "Timesharing"?

Und die newgrp Sache hab ich ansonsten richtig verstanden ja?

cu
serow



EDIT: Ich habe gerade ein wenig mit newgrp rumgespielt und bin auf was seltsames gestoßen: Wenn ich per newgrp die Gruppe testgroup zu meiner effective group mache wechsel ich plötzlich die Shell bzw der Prompt ändert sich. Bin nicht sicher ob das was mit dem Thema hier zu tun habe. Aber bevor ich nen neuen Thread aufmache ... Splitten kann man den Thread ja immernoch.

Code:
mathias@Storage:~$ id
uid=1000(mathias) gid=1000(mathias) groups=100(users),1000(mathias)
mathias@Storage:~$ su
Password: 
Storage:/home/mathias# id
uid=0(root) gid=0(root) groups=0(root)
Storage:/home/mathias# groupadd testgroup
Storage:/home/mathias# gpasswd testgroup
Changing the password for group testgroup
New Password: 
Re-enter new password: 
Storage:/home/mathias# cat /etc/group | grep testgroup
testgroup:x:1003:
Storage:/home/mathias# cat /etc/gshadow | grep testgroup
testgroup:hG1aglMOg.KQU::
Storage:/home/mathias# exit
exit
mathias@Storage:~$ id
uid=1000(mathias) gid=1000(mathias) groups=100(users),1000(mathias)
mathias@Storage:~$ newgrp testgroup
Password: 
sh-3.2$ id
uid=1000(mathias) gid=1003(testgroup) groups=100(users),1000(mathias),1003(testgroup)
sh-3.2$ newgrp root
Password: 
Invalid password.
sh-3.2$ newgrp mathias
sh-3.2$ id
uid=1000(mathias) gid=1000(mathias) groups=100(users),1000(mathias),1003(testgroup)
sh-3.2$

Ich bin auf Debian Lenny, falls das was hilft.
 
.... und bin auf was seltsames gestoßen:

Passiert bei mir auch. Es sieht sogar so aus, als würde newgrp meine .cshrc aufrufen. Ich weiß aber nicht wie newgrp intern arbeitet und die Linux Manpages schweigen darüber, daher lieber nen Experten dazu befragen. In der Irix Manpage steht, die Umgebungsvariablen wie PS1, MAIL oder HOME werden zurückgesetzt, was den geänderten Prompt erklären würde, aber das muss unter Linux nicht genauso sein.

Von wegen Timesharing, du hast natürlich recht, ich meinte das aber im nicht-technischen Sinn. Das heißt die Situation (die es bis Mitte der 80er häufig gab), wo man sich nicht vor einen PC, sondern vor ein Terminal setzt und gleichzeitig mit ein paar hundert Leuten auf einem Großrechner arbeitet. Da braucht man Dinge wie newgrp öfter, als wenn jeder seinen eigenen PC benutzt. Wenn man unter TOPS-20 (70er Jahre rules!) einen Benutzer anlegt kann man 44 verschiedene Capabilities (zusätzlich zu den normalen Dateirechten) angeben, die der Neue haben soll, was ne Menge darüber aussagt, in welchem Rahmen so Systeme damals benutzt wurden.
 
Zurück
Oben