Bonjour,
Existe-t'il une commande permettant, dans un script, de savoir si celui-ci a été lancé avec l'utilisateur root ou non?
Merci beaucoup
Version imprimable
Bonjour,
Existe-t'il une commande permettant, dans un script, de savoir si celui-ci a été lancé avec l'utilisateur root ou non?
Merci beaucoup
Code:[[ ps-ef | grep $0 | awk '{print $1}' = "root" ]] && echo "processus root"
merci beaucoup
Ca ne marche pas chez moi, j'enquête :)
Le problème est que si plusieurs instances du programme sont lancées en même temps, ca bugge...:roll:
Pour ceux que ça intéresse, j'ai utilisé une autre solution en deux parties:
J'ai d'abord créé un fichier exécutable dont le code C est le suivant:
Je l'ai compilé, et ajouté dans /usr/bin (le nom que j'ai donné est isroot)Code:
1
2
3
4
5
6 #include <sys/types.h> #include <unistd.h> main(){ if (getuid() == 0) return 0; return 1; }
Ensuite, voici la fonction que j'ai ajouté dans mon script shell:
C'est peut être un peu lourd, mais ça marche bien...Code:
1
2
3
4 isRootUser(){ isroot [ $? -eq 1 ] && echo "You must be root to launch this daemon" && exit 1 }
Quelque chose du genre :ou :Code:if [ $UID -eq 0 ]...
Code:[ "$USER" == "root" ] && echo "admin" || echo "perdu"
Oui, c'est vrai que c'est beaucoup plus simple, merci ALT
Boarf !
De rien ! ;)