Forum des développeurs  

Le forum de référence en programmation et développement. Articles, cours et tutoriels du débutant au chef de projet et DBA confirmé.
Précédent   Forum des développeurs > Hardware, Systèmes et Logiciels > Linux > Applications > Shell

Shell Vos questions sur l'utilisation des commandes shell

Réponse
 
Outils de la discussion
Vieux 02/07/2008, 11h42   #1 (permalink)
Candidat au titre de Membre du Club
 
Date d'inscription: juin 2006
Localisation: nantes
Âge: 25
Messages: 25
Par défaut lancement en root

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
ketzaldev est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 02/07/2008, 11h55   #2 (permalink)
Membre éprouvé
 
Avatar de KindPlayer
 
Date d'inscription: février 2007
Messages: 451
Par défaut ceci peut etre

Code :
[[ ps-ef | grep $0 | awk '{print $1}' = "root" ]] && echo "processus root"

Dernière modification par gorgonite ; 03/07/2008 à 20h29
KindPlayer est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 02/07/2008, 11h58   #3 (permalink)
Candidat au titre de Membre du Club
 
Date d'inscription: juin 2006
Localisation: nantes
Âge: 25
Messages: 25
Par défaut

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...

Dernière modification par ketzaldev ; 02/07/2008 à 14h23
ketzaldev est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 02/07/2008, 14h22   #4 (permalink)
Candidat au titre de Membre du Club
 
Date d'inscription: juin 2006
Localisation: nantes
Âge: 25
Messages: 25
Par défaut

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:
Code :
#include <sys/types.h>
#include <unistd.h>
main(){
        if (getuid() == 0) return 0;
        return 1;
}
Je l'ai compilé, et ajouté dans /usr/bin (le nom que j'ai donné est isroot)

Ensuite, voici la fonction que j'ai ajouté dans mon script shell:

Code :
isRootUser(){
        isroot
        [ $? -eq 1 ] && echo "You must be root to launch this daemon" && exit 1
}
C'est peut être un peu lourd, mais ça marche bien...
ketzaldev est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 02/07/2008, 15h30   #5 (permalink)
ALT
Membre chevronné
 
Avatar de ALT
 
Date d'inscription: octobre 2002
Localisation: Banlieue lutécienne
Âge: 49
Messages: 604
Par défaut

Quelque chose du genre :
Code :
if [ $UID -eq 0 ]...
ou :
Code :
 [ "$USER" == "root" ] && echo "admin" || echo "perdu"
ALT est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 02/07/2008, 15h42   #6 (permalink)
Candidat au titre de Membre du Club
 
Date d'inscription: juin 2006
Localisation: nantes
Âge: 25
Messages: 25
Par défaut

Oui, c'est vrai que c'est beaucoup plus simple, merci ALT
ketzaldev est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 02/07/2008, 16h54   #7 (permalink)
ALT
Membre chevronné
 
Avatar de ALT
 
Date d'inscription: octobre 2002
Localisation: Banlieue lutécienne
Âge: 49
Messages: 604
Par défaut

Boarf !
De rien !
ALT est déconnecté   Envoyer un message privé Réponse avec citation
Réponse

Précédent   Forum des développeurs > Hardware, Systèmes et Logiciels > Linux > Applications > Shell



Outils de la discussion

Règles de messages
Vous ne pouvez pas créer de nouvelles discussions
Vous ne pouvez pas envoyer des réponses
Vous ne pouvez pas envoyer des pièces jointes
Vous ne pouvez pas modifier vos messages

Les balises BB sont activées : oui
Les smileys sont activés : oui
La balise [IMG] est activée : oui
Le code HTML peut être employé : non
Trackbacks are non
Pingbacks are non
Refbacks are non
Navigation rapide