Interdire caracteres logins utilisateur.

Résolu
CyRux Messages postés 164 Date d'inscription   Statut Membre Dernière intervention   -  
CyRux Messages postés 164 Date d'inscription   Statut Membre Dernière intervention   -
Bonsoir a tous,
Je vient vous voir car j'ai un ftp sur lesquel les gens peuvent créer leur compte au travers c'un site ... et en metttant des nom du genre ../../user ils peuvent mettre leur home nimporte ou dans l'arborescence.
J'ai donc besoin d'interdire certains caracteres dans le login des utilisateur ("/") ...

Pour cela j'ai essayer d'editer le fichier /etc/login.defs en y rajoutant :
CHARACTER_CLASS [A-Za-z_] [A-Za-z0-9_.-]*[A-Za-z0-9_.$-]\?
(que j'avais vu dans le livre "LINUX Maitrisez l'administration du systeme").
Mais quand j'essaye de créer un utilisateur ce message d'erreur aparait.
configuration error - unknown item 'CHARACTER_CLASS' (notify administrator)


Merci d'avance pour votre aide.

ps : je suis sous raspbian



--

4 réponses

  1. zipe31 Messages postés 34620 Date d'inscription   Statut Contributeur Dernière intervention   6 501
     
    Salut,

    Essaies de voir dans
    /etc/adduser.conf
    , dont voici un extrait :
    # check user and group names also against this regular expression.
    #NAME_REGEX="^[a-z][-a-z0-9_]*\$"

    En adaptant la regex avec la tienne…

    0
    1. CyRux Messages postés 164 Date d'inscription   Statut Membre Dernière intervention   3
       
      Merci pour ta reponce zipe31,
      j'ai mis la regex dans mon fichier (la meme que toi) mais les utilisateurs peuvent toujour créer des login du genre "../lol"
      0
    2. UnGars > CyRux Messages postés 164 Date d'inscription   Statut Membre Dernière intervention  
       
      Salut,

      Apparemment la regex citée plus haut est l'exemple par défaut que l'on trouve dans le fichier
      /etc/adduser.conf
      . Il te faut l'adapter à tes besoins.
      0
    3. CyRux Messages postés 164 Date d'inscription   Statut Membre Dernière intervention   3 > UnGars
       
      Salut UnGars ^^
      Merci pour ta reponse mais comment éditer la regex ? quelle est sa syntaxe ?
      0
    4. UnGars > CyRux Messages postés 164 Date d'inscription   Statut Membre Dernière intervention  
       
      Déjà essaye de mettre la même que celle de ton 1er post.
      0
    5. CyRux Messages postés 164 Date d'inscription   Statut Membre Dernière intervention   3 > UnGars
       
      Enfaite ça marche mais le seul problème c'est que avec PHP j'utilise useradd (et pas adduser) car c'est non interactif.
      Savez vous comment faire ?
      0
  2. dna.factory Messages postés 19939 Date d'inscription   Statut Modérateur Dernière intervention   1 621
     
    [A-Za-z_] [A-Za-z0-9_.-]*[A-Za-z0-9_.$-]\ 

    Les gens ont vraiment le droit de mettre des points et des dollars dans leurs logins ?

    Une autre solution, que personnellement je trouverais plus simple consiste à intercepter l'information entrée sur le site, et à la contrôler AVANT de créer le compte avec.
    (de toute façon, c'est quelque chose qu'il faut systématiquement faire pour eviter les injections)
    Par contre, ça sous-entends que vous ayez contrôle sur le site
    0
    1. UnGars
       
      Les gens ont vraiment le droit de mettre des points et des dollars dans leurs logins ?
      La regex est extraite du fichier
      /etc/login.defs
      (obsolète apparemment de nos jours), qui si j'ai bien compris, s'occupait surtout de la structure des mots de passe, d'où l'acceptation des caractères sus-cités ;-\
      0
    2. dna.factory Messages postés 19939 Date d'inscription   Statut Modérateur Dernière intervention   1 621
       
      je comprends mieux.
      0
  3. CyRux Messages postés 164 Date d'inscription   Statut Membre Dernière intervention   3
     
    Merci a tous pour vos réponses ^^

    dna.factory : non avec adduser ils n'ont pas le droit.

    Quand au contrôle avec php je comptais faire ça en 2eme solution si la règle adduser ne marchais pas ...
    --
    0
  4. CyRux Messages postés 164 Date d'inscription   Statut Membre Dernière intervention   3
     
    Finalement j'ai fait ça en PHP ^^
    Merci de votre aide

    --
    0