Problème utilisateur

Résolu
bonjours je vous ecrit parceque j'ai un probleme de gestion d'utilisateur . j'ai monté un serveur web avec xampp , et enfaite mon problème c 'est qu'il faut le demarrer a chak fois ! mais je ne veux pa le demarrer sous le compter root , pour des resons de securité , je penser donc crée un utilisateur qui aura des droit de lancement d'apllication . comment puis je faire?
Configuration: Windows XP
Internet Explorer 6.0

17 réponses

Résumé de la discussion

Pour faire tourner Apache avec un compte non root dans XAMPP, il faut créer un groupe et un utilisateur dédiés et indiquer ces identifiants dans la configuration. Concrètement, créer le groupe webgroup et l’utilisateur webuser, puis modifier dans httpd.conf les directives User webuser et Group webgroup et redémarrer le serveur pour appliquer les droits. Cette approche, qui utilise un compte dédié, évite l’usage du root tout en permettant au processus httpd de s’exécuter avec les droits minimaux du système appropriés. Après redémarrage, vérifie que les processus httpd apparaissent bien sous webuser et note toute étape nécessaire pour adapter les permissions des logs et du fichier exécutable.

Bobot (l’IA à votre service)
  1. Modérateur
    Salut,

    affiche le résultat de la commande
    ps aux | grep 'httpd|apache'
    et
    grep -iE '(user|group) ' /chemin/vers/httpd.conf
    1. voila la resultat :

      admin@GRR:~$ ps aux | grep 'httpd|apache'
      admin 2280 0.0 0.3 3316 704 pts/0 S+ 10:48 0:00 grep httpd|apache

      admin@GRR:~$ grep -iE '(user|group) ' /opt/lampp/etc/httpd.conf
      # If you wish httpd to run as a different user or group, you must run
      # User/Group: The name (or #number) of the user/group to run httpd as.
      # It is usually good practice to create a dedicated user and group for
      User nobody
      Group nogroup
      # User home directories
      admin@GRR:~$
  2. Modérateur
    La prémière commande montre que ton serveur n'est pas démarré ou qu'il a un autre nom

    essaie
    ps aux | grep 'htt'
    En revanche dans ton fichier de configuration je vois que tu as nobody et nogroup

    Tu n'as qu'à créer un group webgroup et un user webuser et écrire dans ton fichier de config
    User webuser
    Group webgroup
    1. j'ai tapper ta commande et j'obtien cela :

      GRR:~# ps aux |grep 'htt'
      root 2365 0.1 7.9 27632 15252 ? Ss 11:16 0:00 /opt/lampp/bin/httpd -k start -DSSL -DPHP5
      nobody 2371 0.0 5.6 24272 10792 ? S 11:16 0:00 /opt/lampp/bin/httpd -k start -DSSL -DPHP5
      nobody 2379 0.0 6.4 27632 12364 ? S 11:16 0:00 /opt/lampp/bin/httpd -k start -DSSL -DPHP5
      nobody 2380 0.0 6.4 27632 12348 ? S 11:16 0:00 /opt/lampp/bin/httpd -k start -DSSL -DPHP5
      nobody 2381 0.0 6.4 27632 12348 ? S 11:16 0:00 /opt/lampp/bin/httpd -k start -DSSL -DPHP5
      nobody 2382 0.0 6.4 27632 12348 ? S 11:16 0:00 /opt/lampp/bin/httpd -k start -DSSL -DPHP5
      nobody 2383 0.0 6.4 27632 12348 ? S 11:16 0:00 /opt/lampp/bin/httpd -k start -DSSL -DPHP5
      root 2484 0.0 0.3 3320 704 pts/0 R+ 11:22 0:00 grep htt
  3. Modérateur
    Par exemple chez moi ps aux | grep httpd m'affiche

    root      4969  0.0  3.0 14120 7956 ?        Ss   08:42   0:00 /usr/local/httpd/bin/httpd -k start
    daemon    4983  0.0  2.7 14120 7128 ?        S    08:42   0:00 /usr/local/httpd/bin/httpd -k start
    daemon    4984  0.0  2.7 14120 7128 ?        S    08:42   0:00 /usr/local/httpd/bin/httpd -k start
    daemon    4985  0.0  2.7 14120 7128 ?        S    08:42   0:00 /usr/local/httpd/bin/httpd -k start
    daemon    4986  0.0  2.7 14120 7128 ?        S    08:42   0:00 /usr/local/httpd/bin/httpd -k start
    daemon    4987  0.0  2.7 14120 7128 ?        S    08:42   0:00 /usr/local/httpd/bin/httpd -k start


    On voit qu'il ya une exécution sous le compte root et les autres sous le compte daemon

    en fait les exécutions sous le compte daemon ce sont des instances identiques qui attends les requêtes des clients
    l'instance root n'est pas à l'écoute, en revanche elle est nécessaires à cause d'ouverture d'un port inférieur 1024, en l'occurence 80
    Le rôle de l'instance root c'est de surveiller l'état (occupée ou attente)
    1. Modérateur
      Ben crée ton group et utilisateur

      groupadd webgroup
      useradd -g webgroup webuser -s /bin/false


      et fait les modifications dans /opt/lampp/etc/httpd.conf
      User webuser
      Group webgroup
      ensuite rédemarre ton serveur
      /opt/lamp/bin/httpd restart
      ps aux |grep 'htt' 
      1. jpar en rdv avec un client vite fait , jte poste le resultat ds 30-35 min !!!
      2. Modérateur
        @flo74700j'ai fait une erreur

        au lieu de
        useradd -g webgroup webuser -s /bin/false

        c'est
        useradd -g webgroup -s /bin/false webuser 
      3. @lami20jj'ai donc crée mes utilisateur et groupes comme prevu par contre je voix pa ou tu veux que je modifie le httpd.conf
    2. Modérateur
      Dans ton fichier httpd.conf tu as ça

      # If you wish httpd to run as a different user or group, you must run
      # User/Group: The name (or #number) of the user/group to run httpd as.
      # It is usually good practice to create a dedicated user and group for
      User nobody
      Group nogroup
      # User home directories 
      ben, tu dois avoir ça
      # If you wish httpd to run as a different user or group, you must run
      # User/Group: The name (or #number) of the user/group to run httpd as.
      # It is usually good practice to create a dedicated user and group for
      User webuser
      Group webgroup
      # User home directories 
      Donc avec un editeur de texte tu fais les modifications
      1. j'ai fait comme tu ma dit pour créer l'utilisateur et tt ! mais je n'arrive pa a me loguer ac i me sort un message dereur comme quoi
        no directory, login in with HOME =/
    3. Modérateur
      Mais tu n'as pas à te logguer avec cet utilisateur.

      Son rôle est seulement d'instanciés les fils d'apache sous le compte de webuser

      -s /bin/false dans la commande de création veut dire qu'il n'y a pas de shell de connexion
      1. oki mais donc je fait comment pour lancer mon application (xampp) avec un utilisateur autre que root . logiqueent je tappe la commande /opt/lampp/lampp start en etant root et maintenant je veux le faire sans etre root
        !
        1. Modérateur
          Alors tu ne lit pas ce que j'ai écrit

          l'instance root n'est pas à l'écoute, en revanche elle est nécessaires à cause d'ouverture d'un port inférieur 1024, en l'occurence 80

          le fait que c'est root qui démarre un service n'est pas une faille au contraire

          ça sera bien que les tâches d'administration soient faites par root et pas par un autre utilisateur

          1. Modérateur
            si plusieurs service s'exécute sur l'identite de même utilisateurs ça peut être une faille.
            si le seul service qui tourne chez toi c'est apache alors tu n'as pas vraiment besoin de changer, mais vaut mieux le faire pour prendre des bons habitudes :-))
            1. et donc maintenant pour le demarrer je fiat quoi ?
              sous quel utilisateur?
          2. Modérateur
            en root bien sûr :-))

            mais tu verras que la commande ps aux | grep htt te montrera que les fils de processus sont sous l'identité de webuser

            donc pas d'inquiètude :-))
            1. ué nan mais moi le prob c que mon patron voulai que je le lance depuis un utilisateur !!! dc i va me prendre la tete si ca le fait pa !
              si je crée un utilisateur et que je le mais ds le group webrgoup?
              1. Modérateur
                explique à ton patron que pour les ports inférieurs à 1024 c'est le root qui à accès

                donc où tu changes le port d'écoute de ton apache et tu donnes des droits d'exécution à ton utilisateur à ton service httpd

                ou tu démarre le service en root

                explique lui qu'il n'y a pas de problèmes s'il fait ça (têtu ton patron :-))

                je dois partir maintenant
                1. Modérateur
                  Re,

                  dit à ton patron (ça j'ai oublié de te dire) que même si on accords à un utilisateur quelconque de démarrer apache (à ne pas oublier de changer le port dans le fichier de configuration, donc > 1024), il y a toujours une instance root de httpd
                  1. Modérateur
                    Sinon tu peux faire un script shell avec un bit suid qui permettra à ton utilisateur de lancer apache comme s'il était root. Attention que ce script soit uniquement accessible à cet utilisateur.

                    Bonne chance
                    1. Modérateur
                      Salut,

                      bit suid qui permettra à ton utilisateur de lancer apache comme s'il était root

                      Oups, j'ai omis cette possilité, puisque en fait j'ai mal compris la question :-)
                      Il s'agissait plutôt de démarrage de daemon et pas des processus fils de httpd

                      Attention que ce script soit uniquement accessible à cet utilisateur

                      En ce cas il me semble qu'il faut

                      - soit utiliser SGID pour le groupe webgroup dont le seul utilisateur est webuser

                      chgrp -v webgroup /opt/lampp/bin/httpd
                      chmod -v 2755 /opt/lampp/bin/httpd
                      Voir aussi les droits pour les logs

                      - soit utiliser SUID pour l'utilisateur webuser, mais dans ce cas il me semble qu'il faut utilser les ACL's securite les access control lists acls

                      1. montage de la partition avec l'option acl
                      2. installation de paquet acl
                      3. setfacl -m user:webuser:4755 /opt/lampp/bin/httpd


                      A ne pas oublier qu'il reste toujours le problème du port 80

                      avec Listen 80 ça ne marche pas malgré le SGID ou SUID

                      Merci de me l'avoir rappeler Miss :-)
                      1. bonjours apres un long week end de repos et une grosse maladie qui commence a coz du froid ! jai toujours pa de solution pour lancer mes programmes (xampp) en tant qu'utilisateur . la seul choz que je veux est de faire /opt/lampp/lampp start depuis un utilisateur bien definie (1 seul utilisateur peu faire cette commande) mais un utilisateur autre que root !!!
                        comment faut t'il que je fasse jai essayé ac sudo ca marche pa !
                        1. Enfaite j'ai trouver bocou plus simple pour demarré un programme sans me logguer il faut modifié le rc.local ets i rajouté les lignes qui m'interresse !!! et opla ca marche ppr pepouffff!!! c bo l'informatique quand ca marche par contre la c 18h j'ai tro mal o epaule a tapper sur c merde de bou de plastik ac 103 touches !!! vivement se soir le ti massage de madame !!! allé tcho et encore merci!!!
                          1. Modérateur
                            Salut,

                            Si tu voulais seulement l'exécuter au démarrage il fallait peut être posé la question autrement, et t'avais déjà la réponse depuis longtemps :-)

                            En revanche la satisfaction et totale puisque tu as trouve par toi même.