Je suis relativement nouveau dans les concepts mentionnés dans la question et les lire à partir de différentes sources ne fait que les rendre plus confus. Voici donc ce que j'ai compris jusqu'à présent:
Quand on nous donne des autorisations pour un fichier, ils ressemblent à ceci:
-rwsr-xr-- 1 user1 users 190 Oct 12 14:23 file.bin
Nous supposons qu'un utilisateur user2
faisant partie du groupe users
essaie de s'exécuter file.bin
. Si le bit setuid n'était pas défini, cela signifierait que le RUID et l'EUID de file.bin
étaient égaux à l'UID de user2
. Mais puisque le bit setuid est défini, cela signifie que le RUID est maintenant égal à l'UID user2
, alors que EUID est l'UID du propriétaire du fichier, user1
.
Mes questions sont:
- Quelle est la différence entre le propriétaire du fichier et
root
? Aroot
les mêmes autorisations que le propriétaire? Ou aurions-nous besoin d'une entrée distincte dans la liste des autorisations pourroot
? - Différence entre RUID et EUID?
- Si je comprends bien, le RUID et l'EUID ne s'appliquent qu'aux processus. Si tel est le cas, pourquoi ont-ils la valeur des identifiants utilisateur?
- Si RUID est l'utilisateur qui crée le processus et EUID est l'utilisateur qui exécute actuellement le processus, la première phrase de la première réponse de cette question n'a aucun sens pour moi.
- Ai-je bien compris ce que fait le bit setuid?
setuid
bit défini.root
) peut définir et RUID à EUID des valeurs arbitraires (par exemple, lelogin
,su
et lessudo
programmes le faire). Généralement, une fois qu'un processus privilégié change ses UID en valeurs non nulles, il n'est plus privilégié et ne peut pas redevenirroot
. Consultez les pages de manuel setuid (2) , seteuid (2) et setreuid (2) .setfsuid()
est de nos jours inutile et devrait être évité dans les nouvelles applications."