IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

 C Discussion :

Exécuter une commande en root


Sujet :

C

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Octobre 2006
    Messages
    94
    Détails du profil
    Informations forums :
    Inscription : Octobre 2006
    Messages : 94
    Par défaut Exécuter une commande en root
    Bonjour @ tous,

    je remets encore mon problème entre vos mains d'experts


    J'explique : je fais une appli CGI :

    * Au départ je récupère le login et mot de passe de la personne via un formulaire (on considère que c'est root (login root, mot de pass : admin)).
    J'ai donc 2 variables dans mon script cgi qui se nomment loggin et pass contenant tous 2 après traitement, le login et le mot de passe.

    * Je souhaite exécuter une commande nécessitant d'être root : "useradd" mais ceci à partir de mon script cgi. Sachant que la session sous laquelle tourne le script est une session lambda, pas superutilisateur ni root.

    J'ai essayé comme ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    system("sudo urseradd (blabla) < ./pass.txt");
    Mais sans succès (le mot de passe "admin" est bien dans le fichier ./pass.txt). J'ai même essayé cette commande dans une konsole en étant pas connecté en root, et il me demande quand même le mot de passe . . . je dois le taper à la main quoi


    Comment faire pour exécuter une commande root dans un script C, en ayant le mot de passe root soit dans un fichier text soit dans une variable ?

    Merci encore,

    j'vous aime toujours

    Titmael

  2. #2
    Expert éminent
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 395
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 395
    Par défaut
    L'impossibilité de passer le mot de passe est volontaire, par mesure de sécurité.

    Si tu veux pouvoir exécuter programmatiquement une commande en root, tu dois créer un script en tant que root et régler son bit "set user ID" avec chmod...
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  3. #3
    Membre confirmé
    Inscrit en
    Octobre 2006
    Messages
    94
    Détails du profil
    Informations forums :
    Inscription : Octobre 2006
    Messages : 94
    Par défaut
    Hmmmm . . . marde

    Bon je comprends, trop de sécurité sous unix hihi

    Je teste ca de suite, merci

  4. #4
    Candidat au Club
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2008
    Messages : 2
    Par défaut Pas de mot de passe pour sudo avec /etc/sudoers
    Avec un paramétrage de sudoers tu peux faire en sorte qu'un utilisateur n'aie pas besoin de saisir un mot de passe pour exécuter une ou plusieurs commandes.
    Pour maintenir correctement un fichier /etc/sudoers : utiliser la commande visudo

  5. #5
    Membre chevronné Avatar de corentin59
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    462
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 462
    Par défaut
    Ceci dit, ne trouves-tu pas extrêmement dangereux de donner à un script CGI des droits de superutilisateur sur ta machine ?

  6. #6
    Expert éminent
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 395
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 395
    Par défaut
    En effet, je déconseille fortement sudo pour ça.
    Je pense qu'un script shell précis, que le script CGI peux exécuter en set-user-id mais pas modifier (d'ailleurs, ce serait encore mieux s'il ne pouvait pas le lire, mais j'ignore si c'est possible) sera plus sécurisé...
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

Discussions similaires

  1. Réponses: 1
    Dernier message: 28/02/2006, 12h43
  2. [Run]Exécuter une commande paramétrable
    Par nice dans le forum Eclipse Java
    Réponses: 3
    Dernier message: 31/01/2006, 14h27
  3. exécuter une commande de logiciel
    Par MrsFrizz dans le forum C
    Réponses: 4
    Dernier message: 17/01/2006, 10h48
  4. exécuter une commande système à partir de sqlplus?
    Par c_moi_c_moi dans le forum Oracle
    Réponses: 24
    Dernier message: 08/11/2005, 15h11
  5. Exécuter une commande linux.
    Par casafa dans le forum Linux
    Réponses: 4
    Dernier message: 20/07/2005, 23h13

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo