Samba et les logon scripts

Bonjour, je suis assez nouveau sur Linux et je m’y intéresse de plus en plus, d’ailleurs ce forum m’a déjà beaucoup aidé, néanmoins un problème persiste ! C’est pourquoi je post sur le forum.

Tout d’abord je fais un stage en entreprise et je suis amené à mettre en place un PDC Linux pour le réseau local de l’entreprise qui possède des clients Windows/Linux. J’ai fait le choix de réaliser le PDC sous Debian avec le duo Samba/OpenLDAP. Celui-ci fonctionne et j’arrive à rejoindre le domain, logger des utilisateurs sur base du LDAP, etc.

Le seul soucis persistant est dans le montage des lecteurs réseaux. En effet samba propose une option dans son fichier de configuration pour monter UN lecteur réseau :

logon drive = P:
logon home = \\%L\prive\%U

Ce qui me monte un lecteur privé par utilisateur.

Le seul soucis, est que j’ai besoin de monter plusieurs lecteurs réseaux pour tout mes utilisateurs (par exemple, des lecteurs “publiques” où tout les utilisateurs peuvent déposer toute sortes de document qu’ils souhaitent partager), et à ma connaissance samba ne sait monter qu’un seul lecteur.

J’ai aussi besoin de lecteurs spécifiques en fonction des utilisateurs, par exemple seul les utilisateurs du secrétariat peuvent avoir le lecteur secrétariat monté.

C’est pourquoi les logon scripts me semblent être la meilleur alternative. J’ai alors réalisé un script de test “test.bat” :

Permissions :

Il est donc à la racine du partage netlogon (voir extrait du testparm pour le partage).

Extrait de la commande “testparm” :

...
logon script = test.bat
logon drive = P:
logon home = \\%L\prive\%U
...
[netlogon]
     comment = Service de login réseau
     path = /home/netlogon
     read only = No

[casiers]
     comment = Casiers Publiques
     path = /lecteursreseaux/publique
     write list = %U
     force user = %U

Le seul soucis (oui j’y arrive :stuck_out_tongue:) est que au login, seul mon lecteur “P:” (monté par samba) est affiché dans le poste de travail de mon utilisateur “toto” sous Windows XP. Autrement dit, mon script n’a pas l’air d’être appelé.
Lorsque j’accède au partage “netlogon” via le réseau, je sais exécuter le script et le lecteur se monte (Windows me dit que l’auteur du script n’est pas connus et me demande de confirmer avant de l’exécuter).

Quelqu’un aurait’il une idée du pourquoi mon script n’est pas exécuté au login ?

Un grand merci !

Un ptit up !
J’ai vraiment besoin d’aide sur ce coup là !

Un topo vite fait :

j’ai un script “test.bat” que voici :

Permissions sur le script :

Tout le monde peut l’exécuter et il est stocké à la racine du partage netlogon

Extrait du “testparm” :

...
logon script = test.bat
...
[netlogon]
     comment = Service de login réseau
     path = /home/netlogon
     read only = No

[casiers]
     comment = Casiers Publiques
     path = /lecteursreseaux/publique
     write list = %U
     force user = %U

Au login de mes utilisateurs sous XP, le lecteur ne s’affiche pas dans mon “Poste de travail”, je sais accéder au script via le réseau et l’exécuter. Après exécution le lecteur apparait bien dans le “Poste de travail”

Le script n’est même pas appelé car il doit me demander si je suis sur de vouloir exécuter le script lorsque l’utilisateur se connecte, ce qui n’est pas le cas.

Quelqu’un aurait’il une idée ?

D’avance merci !

Alors… avec un PDC sous 'nux, je ne sais pas si c’est géré correctement, le script à l’ouverture (avec des clients billou)… “normalement”, avec un PDC sous windo*, ça ce passe dans les propriétés de l’utilisateur dans l’active directory (et donc, sur le serveur, il faut que le “client” fasse partie du “domaine” et que l’ouverture de session se fasse sur le domaine et non en local), encore une fois, je ne sais pas si samba le gère correctement, mais, il y a peut-être une solution de “contournement”… mettre ça en local…

Je m’explique: tu laisses ton script dans le répertoire partagé “netlogon” et sur la machine cliente, dans les propriétés de l’utilisateur, onglet “profil”, tu mets le chemin vers ton script là où ça va bien, c’est à dire dans le champ “script d’ouverture de session”… \nom-du-serveur\netlogon\script.bat ou \@.ip.du.serveur\netlogon\script.bat (dans ce cas le poste n’est pas dans un domaine et l’ouverture se fait en “local”, tu n’as pas de “troisième bande” dans la fenêtre de connexion… ctrl+alt+suppr deux fois pour la faire apparaitre si tu es en mode de connexion “simplifié”, celui avec les icones des utilisateurs…)

Ce n’est pas très propre, mais ça doit marcher (et je “normalement” ton windo* ne devrait même pas gueuler à cause de l’éditeur inconnu)… :wink:

Bon courage à toutes et tous… :smt006

C’est bien beau mais mon PDC me sers plus à rien la ^^

Merci de t’être attardé sur le sujet, mais je souhaiterai garder mon PDC quand même =)

Quelqu’un a une idée ? :slightly_smiling:

Est-ce qu’il est vu par tes clients comme un “PDC” (tu les as intégrés à un domaine)? (le comportement que tu décris ressemble bien à des machines “hors domaine” ou en connexion “locale”…)

:smt006

Oui oui, j’ai bien rejoins le domaine et je connecte mes utilisateurs sur base de mon LDAP, d’ailleurs le “logon home” se monte correctement via samba, mais je voudrais appeler mon script pour monter plusieurs lecteurs réseaux.

tu crée un répertoire netlogon ou tu le désire ensuite tu lui affecte les droits :

mkdir netlogon
chmod 755 netlogon

ensuite tu y ajoute le script qui montera les lecteurs réseaux sur les ordinateurs de ton domaine :

cd netlogon
vim logon.bat

voici mon fichier logon.bat :

# Montage du homedir de l'utilisateur
net use z: \\nomduserveur\partage\%USERNAME%

# Montage de des lecteurs réseaux dans le Poste de Travail
net use y: \\nomduserveur\partage1
net use x: \\nomduserveur\partage2

# Mise a l'heure du poste client
net time \\nomduserveur /set /yes

En espérant que sa puisse t’aider

Je comprend pas … c’est ce que j’ai !

Mon netlogon et mon script sont en 777

mon script est stocké dans /home/netlogon

Mon partage netlogon est le suivant dans samba :

[netlogon]
     comment = Service de login réseau
     path = /home/netlogon
     read only = No

Lorsque je me logg sur la machine cliente, le lecteur ne se monte pas mais lorsque j’accède via le réseau au partage netlogon et que j’exécute le script, alors là, le lecteur se monte …

J’y comprend vraiment rien, à savoir que ma machine cliente est une machine virtuelle, au cas où …

Voici mon partage netlogon dans samba :

@dom_admin = mon groupe administrateur du domaine

Vérifie que les lettres de lecteurs que tu as indiqué dans ton fichier .bat ne sont pas déjà utilisé

J’utilise la lettre X, et si elle était déjà utilisée je ne saurais pas monter le lecteur via le réseau :confused:

Pour la “write list” je ne précise rien encore, tout le monde peut écrire dans le partage netlogon tant que je fais mes tests.

Je croyais que tu arrivais à accéder au partage manuellement mais qu’il ne se monté pas dans ton poste de travail.

Sisi, il se monte quand j’exécute le script moi même depuis le partage netlogon. Mais au login, pas de lecteur … je comprend pas x_X

Quand tu vas chercher manuellement ton partage est ce qu’il te demande de t’authentifier ?

Non, pour l’instant le partage est ouvert à tout le monde

J’ai trouvé une info sur le web qui disait de modifier la clé de registre suivante pour résoudre le problème :

mettre la valeur de la clé RequireSignOrSeal à 0 puis redémarrer pour qu’elle soit prise en compte par windows.

Cette information est issue d’un tutoriel de qualité, cependant je reste septique concernant les modifications de clé de registre sachant que chez moi j’ai une conf similaire à la tienne et que sa à marcher sans problème.

Voici un bout de mon smb.conf :

Vérifie que tu as bien ce qui est écrit en rouge !

J’update un peu, dans les logs samba à propos de la machine se connectant au domaine j’ai :

[2010/03/18 16:20:46, 1] smbd/service.c:make_connection_snum(1198)
   PCtest (::ffff:192.168.0.55) connect to service netlogon initially as user toto (uid=1010, gid=513) (pid 16539)

Donc il se connecte bien au netlogon lors du login de mon utilisateur (j’ai pu le constater via un tail -f), mais je ne sais toujours pas pourquoi il n’exécute pas script :confused:

@zepeto : Les lignes qui me montre de ton smb.conf y sont, mon testparm ne me retourne aucune erreur et mon dit que samba joue un role de PDC.

Je vais tester la clée de registre, je te dis quoi après.

La valeur de ma clée “RequireSignOrSeal” est à 0 … :confused:

Bonjour,

Quel est la valeur de “logon script” par défaut elle est de logon.cmd se trouvant dans le repertoire netlogon.

Si ton script de connexion ne s’appele pas logon.cmd renomme le en logon.cmd ou modifie la valeur de “logon script”.

De plus, ce script doit être au format DOS et non Unix. Voir la commande unix2dos pour le transformer au format DOS.

Comme expliqué dans mon tout premier post, dans samba je déclare mon script de cette façon :
logon script = test.bat

test.bat se trouve à la racine du partage netlogon (/home/netlogon).

Les permissions du script sont de 777.

Le script a été créé depuis une machine windows et uploadé vers la debian, de plus lorsque j’exécute le script à la main depuis l’explorateur réseau de windows, mon lecteur se monte, donc au niveau format DOS celui-ci devrait être bon.

J’ai essayé de trouver des docs dans l’aprem’ et je suis tombé sur un site (je n’ai pas gardé l’adresse mais je pense que je pourrai la retrouver si jamais… je n’avais pas beaucoup de temps) où le gars disait qu’il fallait mettre comme nom de script (dans le fichier de conf de samba) “%g.bat” pour qu’il gère ça au niveau des “groupes” des utilisateurs…
genre groupe “users” => users.bat …

:smt006