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. 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.

  2. 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. 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. 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
          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
            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. 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
                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. 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
                  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. 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
                      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. 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 =/
                      2. 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
                      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
                          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
                        2. 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:~$