OVH Cloud OVH Cloud

Différence entre euid/uid

5 réponses
Avatar
Anthony HOCQUET
Bonjour,

Je cherche à savoir quel est la différence entre l'EUID et l'UID. Le
manuel de bash me donne ceci :

UID Contient l'ID de l'utilisateur, initialise au demarrage
du shell. C'est une variable en lecture seulement
EUID Contient l'UID effectif de l'utilisateur, initialise au
demarrage du shell. Cette variable est en lecture seule.

Je n'arrive pas a saisir le sens du mot "effectif". Pour moi,
l'utilisateur dispose d'un UID, définit dans /etc/passwd.

Merci par avance,
Anthony

5 réponses

Avatar
Nicolas George
Anthony HOCQUET wrote in message
<43272477$0$15878$:
UID Contient l'ID de l'utilisateur, initialise au demarrage
du shell. C'est une variable en lecture seulement
EUID Contient l'UID effectif de l'utilisateur, initialise au
demarrage du shell. Cette variable est en lecture seule.


Le manuel dit une connerie, un utilisateur n'a pas d'EUID. En revanche, un
processus possède un EUID, en plus de son UID. En général c'est le même,
mais ça change lors de l'exécution de binaires SUID. L'UID reste le même,
l'EUID est celui donné par le binaire. Toutes les opérations se font avec
les droits indiqués par l'EUID.

Avatar
Yves Lambert
Anthony HOCQUET wrote:

Je cherche à savoir quel est la différence entre l'EUID et l'UID. Le
manuel de bash me donne ceci :

UID Contient l'ID de l'utilisateur, initialise au demarrage
du shell. C'est une variable en lecture seulement
EUID Contient l'UID effectif de l'utilisateur, initialise au
demarrage du shell. Cette variable est en lecture seule.


Quand l'utilisateur 501 lance une application avec suid, je suppose que
uid contient 1 et euid 501..

Je n'arrive pas a saisir le sens du mot "effectif".


Son *vrai* uid

Pour moi, l'utilisateur dispose d'un UID, définit dans /etc/passwd.


sans doute, oui. Quand il y a un suid l'uid du propriétaire du processus
est root donc 1 et l'euid l'uid de l'utilisateur.

Merci par avance,


Je peux me gourrer...

--
http://fr.comp.infosystemes.free.fr/www/referencement

Avatar
Anthony HOCQUET
Anthony HOCQUET wrote:

Je cherche à savoir quel est la différence entre l'EUID et l'UID. Le
manuel de bash me donne ceci :

UID Contient l'ID de l'utilisateur, initialise au demarrage
du shell. C'est une variable en lecture seulement
EUID Contient l'UID effectif de l'utilisateur, initialise au
demarrage du shell. Cette variable est en lecture seule.



Quand l'utilisateur 501 lance une application avec suid, je suppose que
uid contient 1 et euid 501..


Oki c'est ce que j'avais cru comprendre. Maintenant, ça peut être
l'inverse si tu n'es pas sûr :)


Je n'arrive pas a saisir le sens du mot "effectif".



Son *vrai* uid

Pour moi, l'utilisateur dispose d'un UID, définit dans /etc/passwd.



sans doute, oui. Quand il y a un suid l'uid du propriétaire du processus
est root donc 1 et l'euid l'uid de l'utilisateur.

Merci par avance,



Je peux me gourrer...



Merci si tu te gourres pas, et merci quand même d'avoir répondu.


Avatar
lhabert
Anthony HOCQUET :

Je cherche à savoir quel est la différence entre l'EUID et l'UID.


L'EUID (effective UID) est l'uid dont les droits sont consultés par le noyau
lorsque le process fait un appel système. L'UID tout court (aka RUID, Real
UID), est une sorte de réserve : il peut être différent de l'EUID, et un
process peut alterner son EUID entre les deux. Ça arrive par exemple quand
un programme à un bit s : quand on le lance, son RUID est celle de
l'utilisateur qui le lance, et son EUID est celle du propriétaire du
programme.

Enfin, il y a aussi la notion de saved uid, c'est pas bien clair dans ma
tête comment ça marche, et les pages de man sont assez obscures.

Avatar
Anthony HOCQUET
Anthony HOCQUET :


Je cherche à savoir quel est la différence entre l'EUID et l'UID.



L'EUID (effective UID) est l'uid dont les droits sont consultés par le noyau
lorsque le process fait un appel système. L'UID tout court (aka RUID, Real
UID), est une sorte de réserve : il peut être différent de l'EUID, et un
process peut alterner son EUID entre les deux. Ça arrive par exemple quand
un programme à un bit s : quand on le lance, son RUID est celle de
l'utilisateur qui le lance, et son EUID est celle du propriétaire du
programme.

Enfin, il y a aussi la notion de saved uid, c'est pas bien clair dans ma
tête comment ça marche, et les pages de man sont assez obscures.


Ok j'ai pigé. l'EUID est par défaut notre UID lorsqu'on se connecte.
Cependant, l'EUID peut etre modifié durant l'utilisation d'un programme
SUID. En revanche, notre UID reste toujours le même.

Merci!

Anthony