Forum Linux.général Configuration avancée sudoers / sudo

Posté par  .
Étiquettes : aucune
0
18
nov.
2008

Bonjour à tous .
Je suis en train de buter sur deux problèmes concernant la configuration du sudo ( fichier de configuration /etc/sudoers )

1 )Je cherche la solution pour ne plus avoir à taper la commande sudo à chaque foi.
Pour être plus clair
Actuellement un utilisateur défini peu lancer une commande définie pour un second utilisateur par la commande suivante :
[user1@machine ~]$ sudo -u users2 /home/users2/command1.sh

passwd:( ma configuration me permet de rentrer le mot de passe de l'utilisateur 2 et non pas de l'administrateur )
==> cette partie fonctionne sans aucun problème.

Maintenant je veux lancer une seconde commande toujours définit dans le sudoers et pour l'utilisateur user2
[user1@machine ~]$ sudo -u users2 /home/users2/command2.sh

pas de mot de passe demandé ( variable timestamp_timeout mise à 5 min )
==> cette partie fonctionne sans aucun problème.

Maintenant j'en ai marre de devoir tapper sudo tout le temps et je voudrai que "la session sudo + mot de passe soit retenue"
[user1@machine ~]$ ./home/users2/command2.sh

==> et la bien sur cela ne fonctionne pas

Existe t-il une solution ? voila pour la première question


2) Si cette solution existe , alors je voudrais à ce moment la pouvoir visualiser la pseudo session sudo dans le prompt

Exemple complet :
[user1@machine ~]$ sudo -u users2 /home/users2/command1.sh

passwd:
[user1@machine[b]@sudo-user2[/b] ~]$ sudo -u users2 /home/users2/command2.sh
[user1@machine[b]@sudo-user2[/b] ~]$ ./home/users2/command2.sh

session qui disparaîtra au bout de timestamp_timeout mise à 5 min
.
.
.

Merci d'avance pour votre aide
  • # Impossible

    Posté par  (site web personnel) . Évalué à 3.

    C'est impossible car il faut bien à un moment ou à un autre que la commande sudo soit lancée pour te donner les droits de l'utilisateur 2.

    Tu peux faire ce genre de chose avec sudo -i ou sudo -s, mais cela implique que tu puisse lancer un shell et donc n'importe quelle commande en tant qu'utilisateur 2
    • [^] # Re: Impossible

      Posté par  . Évalué à 1.

      Grande illusion, va falloir que je script à fond
      D'accord avec toi pour le sudo -i / -s mais c'est tu as bien compris le problème par la suite chose que je ne veux surtout pas
  • # shebang

    Posté par  (site web personnel) . Évalué à 1.

    tu peux en mettant le shebang sur /usr/bin/sudo (ou là où il se trouve chez toi) :


    $cat /tmp/ls.sh
    #!/bin/bash
    ls -m /root
    $/tmp/ls.sh
    ls: cannot open directory /root/: Permission denied


    Une petite édition plus tard :


    $cat /tmp/ls.sh
    #!/usr/bin/sudo /bin/bash
    ls -m /root
    $/tmp/ls.sh
    anaconda-ks.cfg, ...
    • [^] # Re: shebang

      Posté par  . Évalué à 1.

      Je pense que c'est une bonne piste.

      je suis en train de partir dans l'optique suivante :
      Lorsque l'utilisateur user1 va se connecter il va tomber sur un menu :
      1) utilisation sudo ou 2 ) utilisation normal ou 3 ) sortir

      "Je tappe 1"
      ==> entrer un utilisateur pour le sudo
      user2
      à ce moment la il faudrait que je charge dasn l'environnement aussi bien le /bin/bash que le /bin/sudo mais avec l'argument : -u user2

      ( en sachant bien sur que cela reste en sécurité avec la configuration du fichier /etc/sudoers donc limitation des commandes à exécuter en endossement de droit sur l'utilisateur user2


      Maintenant va falloir trouver comment .... charger dans l'env
      • [^] # Re: shebang

        Posté par  (site web personnel) . Évalué à 2.

        Si tu maîtrise le shell qui appellera sudo tu peux aussi faire des alias. Tant que le nombre de commande est limité, c'est gérable.
        • [^] # Re: shebang

          Posté par  . Évalué à 1.

          nombre de commandes trop grand ==> je ne sais pas encore combien de commande mais je sais le nombre de serveur ( 150 )
          Mon but étant de limiter les modification et ne pas avoir à gerer trop d'alias.

          J'ai tout de même testé avant de partir ce soir le sudo en déclaration de shell mais ce n'est pas efficace ....

          En chargement dans le PATH non plus. Le problème c'est que je ne sais pas si le PATH aime bien le
          export PATH=$PATH:"/usr/bin/sudo -u user"

          Je reste bloqué pour le moment
          • [^] # Re: shebang

            Posté par  (site web personnel) . Évalué à 2.

            Marchera pas ton PATH, $PATH est vraiment une donnée qui sert pour une recherche.

            Je n'ai pas bien saisi si tes serveurs sont les machines qui ont des shell ou les paramètres de des commandes.

            Dans le premier cas il faudra bien que tu distribue les sudoers, tu peux surement utiliser la même techno pour les alias

            Dans le 2e cas, tu peux faire un alias qui prend en paramètre le nom de la machine et autoriser une commande sans limiter les paramètres dans le sudoers.

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.