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

Shell et commandes GNU Discussion :

Shell d'arret/relance de plateforme sous AIX


Sujet :

Shell et commandes GNU

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    56
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 56
    Par défaut Shell d'arret/relance de plateforme sous AIX
    Bonjour,
    Alors alors déjà je suis une quiche en shell (je suis expert Business Objects),
    je dois développer un shell d'arret relance d'une plateforme SAS sous AIX.
    Le shell , à partir d'un argument (stop ou start ou status) , doit donc arreter dans un ordre précis 9 services et relancer ces mm services ds l'ordre inverse.
    Mon probleme :

    Certains services doivent etre arreter/relancer avec un certains users.
    D'autre services avec un 2eme users.
    Et peut etre mm , ce shell d'arret relance , aura les droits d'un 3eme user.

    Comment faire , dans mon shell , qu'une partie de mes commandes devront etre executer/traiter par tel user et d'autres parties de mon shell avec un autres user?

    En fait j'aimerais pouvoir changer de compte selon l'endroit de mon shell , sans que le script me demande le mot de passe.
    Exemple :
    Mon shel d'arret/relance s'execute en root(ou un user de qualif) par exemple.
    Un bout du code, je dois etre/changer sur un compte admin websphere et je fais mon arret/relance du service (je peux executer une succession de commandes avec ce compte )
    et pour cet autre bout de code un peu plus loin, je dois repasser sur un compte admin SAS pour faire mon autre arret/relance (je peux executer une succession de commandes avec cet autre compte).
    Et tous ces changements doivent se faire sans me demander de mot de passe...evidemment c'est de l'automatisation d'arret/relance...

    ça commence à etre trop dur pour moi cette aventure, aidez-moi ! au secours !

    Si quelqu'un sait comment faire et peut m'expliquer ça clairement , car le monde de l'exploitation unix , c'est pas du tout mon univers.

    Merci d'avance à ceux qui pourront me faire avancer.

    A bientot

  2. #2
    Membre averti
    Inscrit en
    Août 2007
    Messages
    49
    Détails du profil
    Informations forums :
    Inscription : Août 2007
    Messages : 49
    Par défaut
    Salut !

    Je pense que la clé de la solution est la commande "su".

    Lorsque le serveur boot (ou s'arrête), c'est root qui execute tous les scripts d'arrêt/relance des applications sur le serveur.
    Donc dans ton script, il faut que tu séquence tes phases/ordres de démarrage des tes différents services (ah SAS 8 et 9 !!! J'ai donné pendant 5 ans !! Mais sur HP-UX, pas AIX, mais ça ne doit pas changer grand chose je pense ...)

    Pour chacun de tes services, tu as donc un user spécifique.

    Imaginons que pour le service1 (svc1) tu doives utiliser le user1:

    Alors dans ton script de démarrage/arrêt tu devras utiliser la syntaxe:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    su - user1 -c "commande d'arrêt ou de démarrage svc1"
    C'est pas plus compliquer que celà ! Il te suffit simplement de bien étudier ton script pour que les dépendances entre services s'effectuent et le tour est joué !

    C'est du SAS9 ? (objectspawner, metadataserver, etc ...)

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    56
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 56
    Par défaut
    Salut Bruno,

    Oui c'est bien ces services là (entre autres...):
    En fait voici l'ordre d'arret :

    1-Websphere --> compte "wasadmin"
    2-Xythos --> compte "sas"
    3-postgresql --> compte "sas"
    4-RemoteService --> compte "sas"
    5-Shareserver --> compte "sas"
    6-Connectserver --> compte "sas"
    7-OLAPserver --> compte "sas"
    8-ObjectSpawner --> compte "sas"
    9-Metadataserver --> compte "sas"

    Et inversement pour l'ordre de redemarrage.

    En fait tous les services sont arrétés/démarrés par un compte nommé "sas" saufwebsphere , c'est un compte nommé "wasadmin".
    Le shell d'arret/relance est prevu pour etre lancé avec le compte "sas".
    D

    Le problème de ta solution , c'est que la commande "su" demande forcement le mot de passe et donc arretera mon shell durant l'arret/relance , et ce n'est pas ce que je souhaite, j'ai pas envie d'etre embetté par les mots de passe.

  4. #4
    Membre chevronné Avatar de Pilru
    Homme Profil pro
    Dev ASP.NET/jQuery ; Admin ORACLE
    Inscrit en
    Septembre 2007
    Messages
    491
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Dev ASP.NET/jQuery ; Admin ORACLE

    Informations forums :
    Inscription : Septembre 2007
    Messages : 491
    Par défaut
    c'est que la commande "su" demande forcement le mot de passe
    Sauf si c'est root que exécute la commande.

    Une autre solution serait de faire 2 scripts appelé depuis un 3ème.
    chacun de 2 scripts appartenant aux users qui vont bien et ayant le bit setuid activé.

    Cette solution est une faille de sécurité a ne pas négliger, mais je n'en vois pas d'autre. Ou alors faudra utiliser autre chose qu'un simple script shell.

  5. #5
    Membre averti
    Inscrit en
    Août 2007
    Messages
    49
    Détails du profil
    Informations forums :
    Inscription : Août 2007
    Messages : 49
    Par défaut
    Si le script qui contient les "su" est lancé par root, il ne te demandera pas les mots de passe !
    root n'a pas besoin du mot de passe des utilisateurs pour pouvoir prendre leur identité ^^
    Essaie, tu verras !

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    56
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 56
    Par défaut
    En effet si je lance le shell avec root , en effet , je peux faire des su sans qu'il me demande quoi que ce soit comme mot de passe.
    Si je lance mon script d'arrete/relance avec root , alors plus besoin de me poser la question de changer de compte, plus besoin de su dans mon shell , "root" a tous les droits d'execution dc plus besoin de faire des tours de passe passe entre les comptes, non?


    PS :
    Je crois avoir lu que c'était pas genial de lancer en root , j'ai pas compris pourquoi.

    Qu'est qui est un problème de sécurité ?
    D'exécuter le shell en root ou alors de casser en plusieurs shell avec cette histoire de setuid activé ?

    Question : Un shell père enregistré avec les droits d'un compte "sas" qui appelle un shell fils enregistré avec les droits d'un compte "wasadmin" , va executer les commande du shell fils en "wasadmin"? Est ce que c'est ça qu'il faut comprendre avec la solution de casser les shell et d'activé ce bit setuid ?

    Je suis tombé sur un post avec une histoire de commande "sudo" mais j'ai rien compris non plus , le "man" est inmangeable pour le simple mortel que je suis , je suis pas du tout de l'univers Unix moi....sniff...

  7. #7
    Membre averti
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    56
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 56
    Par défaut
    pour les problème de failles de securité , comme ce n'est pas moi qui ai le dernier mot : La machine unix est infogérée à l'autre bout de la france par un prestataire et je crois pas qu'ils seront chauds , sachant qu'à mon avis ils sont bien callé en sécurité dc ça va pas les faire rire et ne me permettront pas des scénario à risques , ils sont supers pointilleux

  8. #8
    Membre chevronné Avatar de Pilru
    Homme Profil pro
    Dev ASP.NET/jQuery ; Admin ORACLE
    Inscrit en
    Septembre 2007
    Messages
    491
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Dev ASP.NET/jQuery ; Admin ORACLE

    Informations forums :
    Inscription : Septembre 2007
    Messages : 491
    Par défaut
    Je crois avoir lu que c'était pas genial de lancer en root , j'ai pas compris pourquoi.
    L'utilisation de root doit être réserver aux taches d'aministration et de maintenance. Maintenant passer des commandes en tant que root n'est pas prohiber (heureusement), faut juste être conscient que tu peux casse ton système si tu fait une boulette.

    Qu'est qui est un problème de sécurité ?
    D'exécuter le shell en root ou alors de casser en plusieurs shell avec cette histoire de setuid activé ?
    L'activation du bit setuid.

    Je suis tombé sur un post avec une histoire de commande "sudo" mais j'ai rien compris non plus , le "man" est inmangeable pour le simple mortel que je suis , je suis pas du tout de l'univers Unix moi....sniff...
    Laisse tomber sudo, si tu a accès au compte root, ne te pose plus de questions.

  9. #9
    Membre averti
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    56
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 56
    Par défaut
    pour l'accès root , cf mon message juste avant ton dernier message.

    Si j'ai bien compris : Si execution en root alors pas besoin de su dans mon shell ? vrai?

    Mais bon j'y crois pas trop sur le fait que l'equipe d'exploitation système Unix accepte ça...... :-/....malheureusement....Je bosse pour une très grosse banque.....et en ce moment la sécurité...... ;-)

  10. #10
    Membre averti
    Inscrit en
    Août 2007
    Messages
    49
    Détails du profil
    Informations forums :
    Inscription : Août 2007
    Messages : 49
    Par défaut
    Ca ne veut pas dire que tes différents services sas tourneront en tant que root !
    Mais celà veut dire que c'est root qui lancera les services en prenant l'identité de chaque utilisateur.
    Quand tu feras un ps -ef, tu verras par exemple que ton objectspawner appartiendra au user "sas", et non pas à root.
    Sans ça, tu ne peux pas te passer des mots de passe ... en tout cas pas à ma connaissance ...

  11. #11
    Membre chevronné Avatar de Pilru
    Homme Profil pro
    Dev ASP.NET/jQuery ; Admin ORACLE
    Inscrit en
    Septembre 2007
    Messages
    491
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Dev ASP.NET/jQuery ; Admin ORACLE

    Informations forums :
    Inscription : Septembre 2007
    Messages : 491
    Par défaut
    Citation Envoyé par silversatch62 Voir le message
    Si j'ai bien compris : Si execution en root alors pas besoin de su dans mon shell ? vrai?
    Si ton script sera lancé par root, alors tu peux faire des par exemple, dans ton shell pour exécuter certaine commande sous l'identité du user sas.

    Mais bon j'y crois pas trop sur le fait que l'equipe d'exploitation système Unix accepte ça...... :-/....malheureusement....Je bosse pour une très grosse banque.....et en ce moment la sécurité...... ;-)
    A toi de voir dans quel contexte ton script sera exécuter.
    Si root => alors ca simplifie le problème
    Si pas root => alors quel user ?
    Je doute que ton script sera lancé par un user lambda, quand même.

  12. #12
    Membre chevronné Avatar de Pilru
    Homme Profil pro
    Dev ASP.NET/jQuery ; Admin ORACLE
    Inscrit en
    Septembre 2007
    Messages
    491
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Dev ASP.NET/jQuery ; Admin ORACLE

    Informations forums :
    Inscription : Septembre 2007
    Messages : 491
    Par défaut
    Mais celà veut dire que c'est root qui lancera les services en prenant l'identité de chaque utilisateur.
    Tout dépend de la méthode utilisé pour faire le restart des services.
    Sous linux, généralement nous avons des scripts dans /etc/init.d qui permettent de stopper et (re)démarrer un deamon.

    C'est root qui initie l'opération puis dans certains cas, root finit par "lacher" le deamon qui prend alors l'identité d'un user avec moins privilèges (ex: postfix, amavis, clamav).

    Donc tout dépend de la façon dont seront redemarrer les services. Si on lui demande d'éxécuter ces opérations sous l'identité précise des users sas et wsasadmin, ce n'est peut-être pas innocent.

  13. #13
    Membre averti
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    56
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 56
    Par défaut
    Le shell d'arrete relance est prevu d'etre lancé avec le compte "sas".
    Dans ce shell , 8 services sur 9 sont exécutés avec le compte "sas" et le dernier service restant (websphere) , doit être executé avec le compte "wasadmin".

    Pour info :
    Lors de l'arret de la plateforme, le service websphere sera le 1er arrété et lors de la relance de la plateforme , il sera le dernier à etre relancé

    En bref , on lance un shell avec un compte "sas" et dans le shell , on fait un aller/retour avec le compte "wasadmin" pour juste demarrer un des 9 services (celui de websphere).

  14. #14
    Membre chevronné Avatar de Pilru
    Homme Profil pro
    Dev ASP.NET/jQuery ; Admin ORACLE
    Inscrit en
    Septembre 2007
    Messages
    491
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Dev ASP.NET/jQuery ; Admin ORACLE

    Informations forums :
    Inscription : Septembre 2007
    Messages : 491
    Par défaut
    Donc, pas le choix. Dans le script exécuté par sas, une commande "su wasadmin -c ..." sera obligatoire pour effectuer la relance de websphere.
    Et la demande de mot de passe ne pourra pas être évité.

  15. #15
    Membre averti
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    56
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 56
    Par défaut
    Ok Pilru et Bruno,
    merci pour votre aide.

    Pilru, si les gars du systeme ne veulent pas l'executer en root , pourrais-tu m'expliquer comment utiliser la fonctionnalité setuid/setgid avec un shell pere et 2 shell fils ? je vois pas trop comment faire.

    Bon ok niveau sécurité , apparemment c pas top non plus

    ==>

    Sinon le sudo , avec son fichier sudouser mais là le man pour moi , est incomprehensible....qcq1 sait comment utiliser le sudo?


    Merci d'avance
    @+

  16. #16
    Membre averti
    Inscrit en
    Mars 2008
    Messages
    16
    Détails du profil
    Informations forums :
    Inscription : Mars 2008
    Messages : 16
    Par défaut
    salut,

    pour sudo il faut avoir une vue générale de la structure.

    en installant sudo, un fichier sudoers est créé sous /etc (sous AIX)
    Ce fichier est le fichier de config de sudo, et tu le modifies en utilisant la commande visudo.

    la structure est :

    Host_Alias CONSOLE=(le nom de ton serveur)

    User_Alias USERS(un nom que tu choisis)=usernames (compte utilisateur AIX)

    Cmnd_Alias COMMAND(là tu mets le nom de la cde à executer)=command (chemin de ta commande)

    # User privilege specification
    root ALL=(ALL) ALL
    USERS CONSOLE(autorise le passage de la commande uniquement sur la console) =(root) NOPASSWD:COMMAND

    USERS ALL (autorise le passage de la commande de partout)=USERS NOPASSWD(permet de passer la commande sans password): COMMAND

    voilà, j'espère que ça t'éclaire un peu

  17. #17
    Membre chevronné Avatar de Pilru
    Homme Profil pro
    Dev ASP.NET/jQuery ; Admin ORACLE
    Inscrit en
    Septembre 2007
    Messages
    491
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Dev ASP.NET/jQuery ; Admin ORACLE

    Informations forums :
    Inscription : Septembre 2007
    Messages : 491
    Par défaut
    Sinon le sudo , avec son fichier sudouser mais là le man pour moi , est incomprehensible....qcq1 sait comment utiliser le sudo?
    Bah, si tu ne pourras pas exécuter ton script avec root, oublie sudo.
    sudo sert a prendre l'identité root le temps d'une commande, sans en connaitre le mot de passe.

    Pour les setuid/setgid, les pages man te renseigneront mieux que moi. Tu pourras aussi facilement trouvé des infos sur le net.

    Mais ceux qui te demande cela, savent-ils qu'il est impossible de passer d'un user a un autres sans taper de mdp, à moins d'être root ?

    La demande du mdp est-elle vraiment un point blocant ?

Discussions similaires

  1. rerouter la sortie standard sous AIX
    Par HRS dans le forum Langage
    Réponses: 6
    Dernier message: 10/03/2006, 14h23
  2. Insérer Date, Heure marche/arret d'un PC sous ACCESS
    Par preatorien dans le forum Access
    Réponses: 2
    Dernier message: 07/02/2006, 19h40
  3. Probleme de compilation Postgresql sous Aix 4.3.3
    Par bustaf dans le forum PostgreSQL
    Réponses: 4
    Dernier message: 16/12/2005, 12h04
  4. [cmde shell pour installation d'une base sous windows]
    Par Lady_jade dans le forum Installation
    Réponses: 2
    Dernier message: 24/10/2005, 10h29
  5. Librairies dynamique sous AIX en C++ : MaLib.so
    Par didierM dans le forum Autres éditeurs
    Réponses: 1
    Dernier message: 23/10/2003, 18h19

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