web-dev-qa-db-fra.com

Samba partage avec Windows AD en choisissant un mauvais nom d'utilisateur

J'ai un problème étrange, pour lequel je n'ai trouvé aucune réponse sur le Web.

J'ai Ubuntu 12.04 LTS avec Samba 3.6. 3 (ntp krb5-user smbfs smbclient winbind)

Au début, tout fonctionne bien, les groupes dans AD ont le bon accès aux fichiers et les autorisations utilisateur fonctionnent, sauf pour une anomalie:

Il y a 2 utilisateurs avec le même prénom:

simon folie et simon wally

Si je me connecte à Windows en tant que simon wally et que j'essaie d'accéder à son partage, ma permission est refusée. Quand je vois samba.log, c'est:

[2014/03/24 20: 39: 04.702632, 2] smbd/service.c: 627 (create_connection_session_info), l'utilisateur 'WINDOMAIN\simon folly' (depuis la configuration de la session) n'est pas autorisé à accéder à ce partage (simonw)

Comme vous pouvez le voir ci-dessus, le mauvais nom d'utilisateur a été authentifié. Il semble qu'il trouve le prénom dans la liste et le sélectionne.

Donc, pour tester ma théorie, j'ai changé le nom d'utilisateur dans le fichier smb.conf en "folie simon" et bien sûr lorsque je suis connecté en tant que simon wally, j'ai un accès complet à ma part ??

Est-ce arrivé à quelqu'un et comment y remédier?

Voici ma part dans smb.conf

note: when I change wally to folly then wally has full access.
otherwise below gets denied.    

[simonw]
    comment = Simon Only
    path = /sharing/ceo
    valid users = "WINDOMAIN\simon wally"
    force group = "domain users"
    writable = yes
    read only = no
    force create mode = 0660
    create mask = 0777
    directory mask = 0777
    force directory mode = 0770
    access based share enum = yes
    hide unreadable = yes

merci d'avance pour votre aide :)

1
IT Buff

Ce problème est dû au manque de prise en charge des espaces dans les noms d'utilisateurs avec samba, car ils sont utilisés comme séparateurs.

La solution suivante peut être utilisée pour résoudre ce problème, cela crée un alias pour le nom d'utilisateur avec des espaces:

  1. Définissez une carte de nom d'utilisateur en plaçant les éléments suivants dans votre configuration samba:

    username map = /usr/local/private/usermap.txt
    
  2. Ajoutez le contenu suivant à /usr/local/private/usermap.txt

    WINDOMAIN\simonwally = "WINDOMAIN\simon wally"
    WINDOMAIN\simonfolly = "WINDOMAIN\simon folly"
    

    Cela crée un alias, donc le nom peut être l'utilisateur sans espaces

  3. Modifiez la section des utilisateurs valides dans votre configuration pour:

    valid users = "WINDOMAIN\simonwally"
    

    En raison des mappages que nous avons effectués auparavant, cela correspondra au compte d'utilisateur avec un espace et, à cause de cela, il acceptera l'utilisateur au partage.

  4. Vérifiez si la configuration de samba contient des erreurs (toujours recommandé après une modification) Exécutez le code suivant sur un terminal comme bash:

    testparm && echo "Syntax OK" || echo "Syntax Error"
    
  5. Redémarrez la samba:

    Sudo service smbd restart
    

Ref 1 : explique comment utiliser les espaces à l'intérieur de la configuration.

Ref 2 : Code pour vérifier si la configuration de samba contient des erreurs.

1
Ferrybig