Home > Security, Solaris > Bien gérer ses services sous Solaris

Bien gérer ses services sous Solaris

February 26th, 2009 Leave a comment Go to comments

Maintenant que tout le monde utilise SMF (enfin je l’espère ! ), voici quelques informations qui pourront vous être utiles, autour du cas d’utilisation suivant :

Soit un glassfish (serveur d’application) qui – pour une obscure raison qui n’a pas d’intérêt ici – doit écouter sur les ports 80 et 443, mais ce service étant administré par un consultant métier, je ne veux en aucun cas donner le moindre droit root à cette personne, que ce soit pour démarrer ou arrêter glassfish, ou même encore pour son exécution. Cela semble difficile à réaliser au premier abord, mais SMF va nous sauver !

La gestion des privilèges

SMF permet d’assigner des priviléges (vous pouvez obtenir la liste des privilèges ainsi qu’une courte description en utilisant la commande ppriv -l -v) à un service. Pour cela, il faut éditer son manifest, puis rajouter la portion de code suivant :

<method_context user='glassfish' group='glassfish' privileges='basic,net_privaddr' />

Administration du service

Maintenant que nous avons notre glassfish qui écoute sur le port 80 et 443 sans avoir besoin du moindre processsus root, il nous reste à déléguer l’administration du service à l’utilisateur approprié. Pour cela, effectuer les modifications suivantes :


# echo 'solaris.smf.manage.glassfish:::Manage Glassfish::help=nohelp.html' >>/etc/security/auth_attr
# svccfg -s glassfish setprop general/value_authorization = astring: solaris.smf.manage.glassfish
# svccfg -s glassfish setpprop general/action_authorization = astring: solaris.smf.manage.glassfish
# svcadm refresh glassfish
# usermod -A solaris.smf.manage.glassfish glassfish

Quelques explications :

  • le fichier auth_attr définit la liste des attributs étendus qu’un utilisateur, dans ce cas, on créer un nouveau attribut que l’on nomme solaris.smf.manage.glassfish
  • Les deux lignes suivantes autorise les utilisateurs disposant de l’attribut solaris.smf.manage.glassfish à administrer le service (vous pouvez consulter la page de manuel smf_security pour avoir plus de détails)
  • Et finalement, on assigne le privilège solaris.smf.manage.glassfish à l’utilisateur glassfish

Désormais, l’utilisateur glassfish peut démarrer et éteindre le serveur d’application sans jamais disposer du moindre droit root (pas de sudo ou équivalent nécessaire). Dites merci SMF !

Categories: Security, Solaris Tags:
  1. cam
    February 26th, 2009 at 11:46 | #1

    Merci SMF !

  2. aikinhdo
    August 20th, 2010 at 15:12 | #2

    Bonjour,

    Par contre, est ce que cela marche pour un utilisateur qui se trouve non pas en local mais dans LDAP?

    Merci

  3. August 20th, 2010 at 15:46 | #3

    @aikinhdo

    Je n’ai jamais essayé (je ne mets pas d’utilisateur non humain dans un LDAP) mais a mon avis tant que tu mets une dépendance sur ldap/client, ça ne devrait pas posé de problème. (sinon il va démarrer avant ldapclient, et là forcément ça marchera moins bien).

  1. February 26th, 2009 at 21:17 | #1