IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Linux Discussion :

Création de user et de virtualHost automatique


Sujet :

Linux

  1. #1
    Nouveau Candidat au Club
    Homme Profil pro
    programmeur php (web)
    Inscrit en
    Mai 2012
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : programmeur php (web)

    Informations forums :
    Inscription : Mai 2012
    Messages : 3
    Points : 1
    Points
    1
    Par défaut Création de user et de virtualHost automatique
    Bonjour à tous!
    Je suis tombé sur une discussion parlant de la création de user (adduser) automatique et cela m'a donné des pistes mais, je crois que le sujet ne ciblait pas directement ce que je cherchais et je formule donc cette discussion afin de demander conseil!

    J'aimerais, à partir d'un script PHP permettre à un utilisateur (de mon futur service) d'avoir un dossier qui lui est propre sur mon serveur et lier ce dossier automatiquement à un sous domaine de mon site (exemple: sonNom.monDomaine.com). Par la suite, si cet utilisateur achète un nom de domaine, j'aimerais lui permettre de lier son nom de domaine à ce dossier. Je précise que aucun des utilisateur ne pourra accéder à ce dossier à l'aide d'un client ftp. Je précise aussi que je veux faire tout cela pour que ce soit automatique lors de l'inscription.
    Je vois donc deux solutions possible alors.. voila comme suit:

    Solution 1:
    Je créer au départ un user disons "BigAdmin" (avec la commande adduser) pour ensuite créer les dossiers des utilisateurs tous sous ce même "BigAdmin" avec un script PHP(si sécuritaire et possible) ayant les droits BigAdmin et créer les VirtualHost avec un exécutable ayant les droits roots(encore la si sécuritaire et possible). Celui-ci chargé par autre script PHP.

    Solution 2:
    Je créer un exécutable(avec les droits root) qui créera un user pour chaque inscription à mon site donc une racine (ou dossier) et un user pour chacun. Cet exécutable serait chargé à partir d'un script PHP qui serait lancé lors de l'inscription sur mon site. Pour le VirtualHost, je ne sais pas trop s'il aurait besoin du même principe? Bref, faire un utilisateur pour chaque inscription.

    Dans les deux cas, je sais que pour utiliser la commande adduser il faut être connecté en root, et j'imagine que pour créer un virtualhost, cela nécéssite aussi les droit root et comme j'ai cru comprendre qu'il était dangereux de donner le script ayant des données fourni par l'utilisateur à root, le mieux serait que ce script lance un exécutable ayant ces droit pour le faire... Mais avant de me lancer dans tout ça, j'aurais aimé avoir des avis!!! Parce que, j'avoues que je gallère grave...

    Désolé si certains passage voir l'ensemble de la question fait noob mais, je vous remercie d'y avoir prêté attention!!

  2. #2
    Modérateur
    Avatar de Obsidian
    Homme Profil pro
    Développeur en systèmes embarqués
    Inscrit en
    Septembre 2007
    Messages
    7 400
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Développeur en systèmes embarqués
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2007
    Messages : 7 400
    Points : 23 778
    Points
    23 778
    Par défaut
    Bonjour,

    Pour créer à la fois un utilisateur Unix disposant d'un shell et sa page perso web, le plus simple consiste à ajouter un répertoire dédié à la page personnelle dans /etc/skel. Tout utilisateur créé avec un /home propre en disposera donc automatiquement.

    Ensuite, parallèlement, tu utilises mod_rewrite pour réécrire le chemin du fichier à atteindre en déclarant quelque chose comme « sous-domaine/nom_du_rép ». De cette manière, tu n'auras pas à reparamétrer le serveur web à chaque nouvel utilisateur. Par contre, il peut quand même être bon de mettre les pages publiques sur une partition dédiée.

    Pour l'exécutable, il est vital de réduire au minimum les interactions avec le reste du système et à plus forte raison encore les exécutables privilégiés. La plus sage des décisions consiste encore à laisser l'administrateur du site valider lui-même les créations de compte. Si tu tiens à ce que ce soit automatique, alors je te conseille d'écrire un petit exécutable setuidé root qui aura pour unique tâche d'appeler adduser et dont les droits d'accès seront strictement contrôlés. Ça permettra d'éviter d'avoir à intégrer root directement dans la config' du site.

  3. #3
    Nouveau Candidat au Club
    Homme Profil pro
    programmeur php (web)
    Inscrit en
    Mai 2012
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : programmeur php (web)

    Informations forums :
    Inscription : Mai 2012
    Messages : 3
    Points : 1
    Points
    1
    Par défaut
    Merci! ce sont vraiment de bonnes pistes !

    Je vais essayer de récapituler (désolé en frais de monter un serveur je suis quand même assez débutant...en fait j'ai commencé la semaine dernière! ;p)

    Alors, si je comprends bien, je peux mettre des fichiers dans le dossier skel qui seront copiés lorsque mon exécutable (qui effectuera adduser) créera un nouvel utilisateur dans son arborescence !

    Pour ce qui est du dédié, est-ce que tu veux dire mettre le dossiers skel sur une autre partition ? Pareil pour les dossiers des utilisateurs ? Ce qui vient à me demander, est-ce que ce serait mieux de mettre apache2, ftpd, postfix+courrier et rounbdcube sur d'autres partition ?

    Pour le rewrite, je comprends moins un brin, mais je vais faire mes recherches !
    ce serait dans le fond pour créer le liens de son adresse vers son fichier ? ou plutôt pour que lorsqu'il utilisera mes interfaces pour mettre des trucs dans ses dossier, que le chemin soit toujours bon ? Bref, je vais d'abord avancer dans le projet et faire des tests avant de poser des tas de questions inutiles ! ;p

    Pour ce qui est de l'exécutable, j'ai fait un peu de c++ il y a un petit bout de temps,... je pensais utiliser codeblock...est-ce correct? et, je me demandais à quoi peut ressembler le code que je vais y mettre?

    Et je pensais faire comme démarche, ou plutôt c'est ce que je test, chaque utilisateur aura son dossier dans home alors je pensais mettre leurs dossier web dedans (ce que je fais présentement dans ma zone de test)... en fait j'ai suivi les tutos de Alexis sur http://www.tutoriels-video.fr/instal...r-dedie-debia/ . Est-ce correct ou ce serait mieux de tout mettre dans var?

    En espérant ne pas t'avoir trop bombardé... Je te remercie infiniment de m'avoir mis sur des pistes ! vraiment cool ! Bien que ça ne fasse pas très longtemps que je joue avec Linux côté serveur, je dois avouer que... J'ADORE héhé ! La communauté est fort sympathique et les tutos... très abondants !

    Merci encore!!!
    A+

  4. #4
    Nouveau Candidat au Club
    Homme Profil pro
    programmeur php (web)
    Inscrit en
    Mai 2012
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : programmeur php (web)

    Informations forums :
    Inscription : Mai 2012
    Messages : 3
    Points : 1
    Points
    1
    Par défaut
    Petit up!
    J'ai établie un plan qui devrait fonctionner, mais je me demande si c'est sécuritaire.

    Alors si quelqu'un peut me donner son avis, j'en serais ravis!!

    Le défis étant de créer, a partir d'un site A (appartenant au UserLinux A disont) des sites qui seront construit dans un répertoire appartenant a UserLinux B. Il faut ensuite "a2ensite" le site créer en question et "/etc/init.d/apache2 reload".

    Le moyen qui me semble sécuriser et la, a vous de me dire le contraire si c'est le cas est le suivant.

    note: j'ai suExec et SuPHP, rkhunter et blabla d'installer...

    - lorsque depuis le site A une requete est donné comme quoi, tel domaine ou sous-domaine est activer et relier a un forfait, un executable appartenant a root est lancé. En paramètre des données tiré de la BDD (données encrypté créer par l'application) on été placé dans un fichier texte appartenant a root afin de lier le client et son domaine a un nom de dossier. L'executable prendra donc la chaîne encrypté et la trouvera dans le fichier texte afin de prendre les valeur associé qui est en fait le nom du dossier et le nom de domaine. En fait je ne voulais pas écrire ce nom de dossier directement dans la BDD et cela m'a parut bien... Est-ce le cas?

    -Une fois le nom trouvé, l'executable écrira un fichier VirtualHost et reloadera Apache. Il placera le dossier du nouveau site sous l'utilisateur B et donc chaque nouveaux sites seront sous utilisateur B et n'auront donc pas chacun un utilisateur... Est-ce correct?

    Plusieurs autres petits executable comme celui-ci seront fait afin d'arrêter un site, ou écrire dans le fichier texte la relation entre chaîne encrypté et nom de dossier ou tout autre tâches administratives qui ne peuvent être fait que par root.

    Alors, tout ça est fesable, j'ai trouvé les moyens technique mais je me demande, est-ce que le fait d'éxécuter à partir de php un executable appartenant a root est dangereux? Puisque je dois lui donné des paramètres afin qu'il sache quel nom de domaine activer ou dé-activer. Je rappelle que c'est paramètres sont tiré de valeur écrites par mon sites et non pas des valeurs entrées par le client. De plus, elle seront concaténé, avec un salt et encrypté.

    Et, je sait que safe_mode est obsolet et sera enlever a partir de php6 mais, serait-il mieux de l'activer et placer tout mes executables dans un dossier configurer dans php.ini ou simplement le dé-activer et dé-activer toute les commandes dangereuses de php sauf celle dont j'ai besoins?

    Si ya des trucs pas clair, vous pouvez me demander!!

    Un gros merci!

Discussions similaires

  1. [SAMBA] création d'users et php
    Par burning_burno dans le forum Réseau
    Réponses: 5
    Dernier message: 16/04/2007, 16h12
  2. Création de champs de fusion word automatique
    Par chichiboof dans le forum Général Conception Web
    Réponses: 2
    Dernier message: 16/10/2006, 13h39
  3. Création de user et schéma
    Par Pakkaï dans le forum Oracle
    Réponses: 21
    Dernier message: 07/09/2006, 13h36
  4. Création d'user sous SQL Server
    Par nnn2050 dans le forum Langage SQL
    Réponses: 2
    Dernier message: 20/12/2005, 16h26
  5. Création de User dans la base
    Par ferdi67 dans le forum Installation
    Réponses: 3
    Dernier message: 05/07/2004, 11h38

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo