web-dev-qa-db-fra.com

Différence entre EUID et UID?

EUID n'est pas la même chose que UID . Dans quel contexte ces deux sont-ils utilisés dans le script?

J'ai essayé d'obtenir les valeurs par echo "UID is $UID and EUID is $EUID", mais seul l'espace est venu en sortie. Ma machine fonctionne sous Ubuntu 12.04 LTS. Vu sur certains sites, cela est généralement utilisé pour vérifier s'il s'agit d'un utilisateur root et tout mais pas en mesure d'obtenir la bonne différence.

15
Arun Chettoor

Cela ne fonctionne que sur bash, pas dans dash (dans les distributions basées sur Debian car Ubuntu sh est généralement un lien symbolique vers dash).

Si vous exécutez le script de manière interactive, il se peut que bash ne soit pas configuré comme shell par défaut, exécutez bash avant d'essayer.

Si vous l'exécutez à partir de la console:

bash script.sh

Si vous l'exécutez en utilisant son chemin (par exemple ./script.sh) assurez-vous que la première ligne du script est:

#!/bin/bash

Et pas:

#!/bin/sh

Pour une manière plus générique de le faire, vérifiez: https://askubuntu.com/questions/15853/how-can-a-script-check-if-its-being-run-as-root

Dans ce message, la commande id est mentionnée, où:

id -u    # is the EUID
id -u -r # is the UID
11
Fernando

Ils sont différents lorsqu'un programme exécute set-uid. L'UID effectif est l'utilisateur que vous avez changé en, l'UID est l'utilisateur d'origine.

19
Barmar