Prenons par exemple le code source d'Unix V6. Celui de Linux est introuvable. Jetez un œil à la userstructure
.
struct user
{
// ...
char u_uid; // 实效用户id(effective user id)
char u_gid; // 实效用户组id(effective group id)
char u_ruid; // 实际用户id(real user id)
char u_rgid; // 实际用户组id(real group id)
// ...
} u;
En prenant comme exemple les utilisateurs effectifs et les utilisateurs réels, l'utilisateur réel a été déterminé lors de la connexion au système. Par exemple, le ubuntu de l'utilisateur id est 108, et le www-data de est id. Si vous exécutez le programme en tant qu'utilisateur 105, l'utilisateur effectif est ubuntu ; si vous utilisez la commande 108 pour passer à l'exécution en tant que sudo, l'utilisateur effectif est www-data, mais l'utilisateur réel est toujours 105, donc 108Ou des utilisateurs réels$USER. ubuntu
Prenons par exemple le code source d'Unix V6. Celui de Linux est introuvable. Jetez un œil à la
.user
structureEn prenant comme exemple les utilisateurs effectifs et les utilisateurs réels, l'utilisateur réel a été déterminé lors de la connexion au système. Par exemple, le
ubuntu
de l'utilisateurid
est108
, et lewww-data
de estid
. Si vous exécutez le programme en tant qu'utilisateur105
, l'utilisateur effectif estubuntu
; si vous utilisez la commande108
pour passer à l'exécution en tant quesudo
, l'utilisateur effectif estwww-data
, mais l'utilisateur réel est toujours105
, donc108
Ou des utilisateurs réels$USER
.ubuntu