Forum Linux.debian/ubuntu Script de prise de personnalité

Posté par  .
Étiquettes :
0
8
juil.
2005

Bonjour à tous.

J'ai actuellement une machine qui sert à effectuer des builds pour des applis java. Une debian 3.1 tourne dessus.

Plusieurs utilisateurs 'standards' y sont référencés.

J'ai aussi un utilisateur spécial, appelons-le 'runtime', qui doit être utilisé afin de lancer les process de build.

Mon souhait serait d'avoir un script de 'prise de personnalité', je m'explique :

Tous les utilisateurs standards peuvent se loguer, mais on ne peut pas se loguer directement avec l'utilisateur 'runtime', car j'ai défini (dans /etc/passwd) que le shell par défaut de cet utilisateur soit '/bin/false'.

Le but est d'avoir un script du genre 'set_runtime' qui permette, de façon transparente, d'effectuer un '$ su runtime --shell=/bin/bash'. Ceci afin de prendre la personnalité 'runtime' et lancer les process adéquats.

Or cette commande ne fonctionne pas, car l'option '--shell=/bin/bash' ne paraît pas fonctionner lorsqu'on l'utilise et qu'on est connecté avec un utilisateur standard. Je dis ça parce que si je suis en root et que je fais exactement la même commande (càd '# su runtime --shell=/bin/bash') ça marche parfaitement.

je me demande si ça ne pourrais pas venir d'une configuration de PAM, ….

J'espère que mon explication est assez claire :) …

Si vous z'avez des propositions…merci d'avance :)

  • # sudo

    Posté par  . Évalué à 2.

    Tu ne peux pas utiliser sudo pour parvenir a tes fins ?
  • # ...

    Posté par  . Évalué à 2.

    On a le droit de changer de shell si et seulement si le shell courant est déjà dans /etc/shells.
  • # chmod u+s

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

    Tu peux écrire un petit script comme ça:
    #!/bin/sh
    exec su runtime --shell=/bin/bash
    Et le mettre SUID root (chown root.truc lescript.sh && chmod u+xs,g+x lescript.sh avec "truc" le groupe des utilisateurs qui ont le droit d'utiliser le shell de "runtime").

    Une autre méthode c'est de faire en sorte que "runtime" puisse se logger en utilisant la clé SSH de n'importe quel utilisateur autorisé mais de ne pas lui donner de mot de passe. Suffit de mettre la clé SSH publique de chacun dans /home/runtime/.ssh/authorized_keys (une par ligne). RTFM pour plus de détails.

    D'un autre côté, un utilisateur commun à plusieurs personne c'est pas forcément une bonne idée. Mieux vaut peut-être utiliser des groupes ou les ACL POSIX.

    pertinent adj. Approprié : qui se rapporte exactement à ce dont il est question.

Suivre le flux des commentaires

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