Forum général.général sudo et apache chrooté [openbsd]

Posté par  .
Étiquettes : aucune
0
18
juil.
2005
Iop tous,

J'aimerais lançer une commande par php qui nécessite les droits root.
Apache est donc chrooté.
J'ai donc copié sudo et mon programme dans /var/www/usr/bin

J'ai modifié le fichier sudoers pour autoriser les utilisateurs du groupe 'www' à exécuter mon programme.
%www ALL=NOPASSWD: /usr/local/sbin/mons2c -l

Et voici le code php qui execute la commande :
<?php
echo exec("/usr/bin/sudo /usr/local/sbin/mons2c -l"); ?>

Et ça ne marche pas. Dans les logs d'apache j'ai comme erreur :
Sudo: must be setuid root

J'ai googlisé pendant des heures sans réussir à me sortir de cette mer...

Please help,
Merci

Bon week end..

Davy
  • # +s

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

    may be : chmod +s /var/www/usr/bin ?

    M.
  • # setuid root

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

    Vérifie que ton sudo soit bien setuid root. Voilà par exemple chez moi :
    florent@pluton:~$ ls /usr/bin/sudo -l
    -rwsr-xr-x 1 root root 97912 2005-04-27 12:13 /usr/bin/sudo
    florent@pluton:~$

    Remarque bien que :
    - le programme appartient à root/root
    - il y a un 's' à la place du 'x' habituel pour les permissions pour le propriétaire.

    Cela signifie que toute personne lançant sudo le lancera en temps que root (ce qui est nécessaire pour qu'il puisse lancer ta commande en temps que root).
    C'est ce que l'on appelle un programme "setuid root".
  • # Je vais être méchant.

    Posté par  . Évalué à 3.

    Mais OpenBSD est livré avec tout un tas de doccumentation, et là il va falloir la lire.

    Premièrement tu dis que ton apache est chrooté, j'en déduis que pf, snort, snort2c et mons2c sont dans les chroot avec lui non ?
    Existe-t-il un autre pf qui tourne en non chrooté ? Sur la même interface ? Mêmes questions pour snort ?

    Deuxièmement sudo c'est mal. On a maintenant des ACL sous linux et sous BSD. Sudo devrait donc disparaitre. Garde le owner de pf/snort etc. à root, créé un groupe "netsecure" et fait un chwon de netsecure sur les programmes dont tu as besoins (de préférence avec des droits limités genre juste en execution quand c'est possible). Enuite lance ton programme en php si tu veux.

    La solution du parano consisterait plutot à dire que php est un nid à bug et à failles de sécurité (c'est pas tout à fait vrai ). Dans ce cas là la solution est de faire un check de sécurité du repertoire de chroot via tripewire qui si il est valide lance la commande.
    • [^] # Re: Je vais être méchant.

      Posté par  . Évalué à 1.

      woua, là tu m'as tué.
      et tu vas encore plus me tuer quand je vais dire que pour résoudre le problème j'ai decider de faire tourner apache en non chrooté.
      ça me demanderais beaucoup de temps de tout chrooter (pf, snort, snort2c, mons2c) donc c'est la seul solution "realiste" que j'ai trouvé. En tout cas merci pour les infos, c'est toujours bon à prendre, style l'histoire des acl.

      merci,

      ++
    • [^] # Re: Je vais être méchant.

      Posté par  . Évalué à 1.

      woua, là tu m'as tué.
      et tu vas encore plus me tuer quand je vais dire que pour résoudre le problème j'ai decider de faire tourner apache en non chrooté.
      ça me demanderais beaucoup de temps de tout chrooter (pf, snort, snort2c, mons2c) donc c'est la seul solution "realiste" que j'ai trouvé. En tout cas merci pour les infos, c'est toujours bon à prendre, style l'histoire des acl.

      merci,

      ++

Suivre le flux des commentaires

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