• Willkommen im Linux Club - dem deutschsprachigen Supportforum für GNU/Linux. Registriere dich kostenlos, um alle Inhalte zu sehen und Fragen zu stellen.

Logonscript wird nicht ausgeführt

zum

Newbie
Wir setzen seit Jahren einen Anmeldeserver (PDC) mit SLES (erst 8, 9, 10 und jetzt 11) ein. Der Samba-PDC ist mit einer LDAP-DB verbunden und funktioniert so auch gut. Bei den Cleinst setzen wir sowohl Win XP wie auch Win 7-64 ein.
Jetzt hat unsere übergeordnete Netzwerkbetreiber den Proxy geändert und wir wollen den Usern den neuen Proxy via Logonscript auf den Client bringen. Nach kurzem Studium verschiedener Lektüre zu dem Thema habe ich das Script erstellt und im entsprechenden Ordner abgelegt. Leider haben wir jetzt das Problem, dass das Script nicht abgearbeitet wird.

smb.conf
Code:
[global]
        interfaces = eth0
        netbios name = PDC
        workgroup = LABORNETZ
        server string = "Anmelde-, DHCP- und DNS-Master-Server"
        os level = 64
        domain master = yes
        prefered master = yes
        security = user
        client NTLMv2 auth = yes
        client lanman auth = No
        client signing = auto
        server signing = auto
        domain logons = yes
        log level = 1
        wins support = yes
        wins server = 10.165.101.40
        log file = /var/log/samba/%m.log
        encrypt passwords = yes
        local master = yes

        wide links = no
        name cache timeout = 0 #sdm
        winbind cache time = 0 #sdm

        printing = cups
        printcap name = cups
        printcap cache time = 750
        cups options = raw
        map to guest = Bad User

        passdb backend = ldapsam:"ldap://pdc"
        idmap backend = ldap:"ldap://localhost"
        ldap passwd sync = yes
        ldap admin dn = cn=samba,ou=Admins,dc=labornetz
        ldap suffix = dc=labornetz
        ldap machine suffix = ou=Machines
        ldap user suffix = ou=Users
        ldap group suffix = ou=Groups
        ldap ssl = start_tls
        ldap idmap suffix = ou=Idmap
        ldap delete dn = yes
        map acl inherit = yes

#Pfad zum Passwortskomplexitaetsueberpruefungsprogramm
        check password script = /usr/local/sbin/crackcheck -s
        obey pam restrictions = no

        logon script = logon.cmd
        logon drive =
        logon path =
        logon home =

[netlogon]
        comment = Samba Network Logon Service
        path = /var/lib/samba/netlogon
        public = no
        read only = yes
        writable = no
        browsable = no
[homes]
        comment = Home Directories
        valid users = %S
        browseable = No
        read only = No
        inherit acls = Yes
        guest ok = no
        writable = yes

logon.cmd
Code:
for /f "tokens=2 delims=/" %%a in ('findstr "Path" "%APPDATA%\Mozilla\Firefox\profiles.ini"') do copy \\pdc\netlogon\user.js "%APPDATA%\Mozilla\Firefox\Profiles\%%a" 
regedit /s "\\pdc\netlogon\ieproxy.reg"

Die Berechtigung von netlogon-Ordner
Code:
drwxr-xr-x 2 root root      4096 Aug 11 13:06 netlogon

Die Berechtigungen im netlogon-Ordner
Code:
-rwxr-xr-x 1 root root 360 Aug 11 11:33 ieproxy.reg
-rwxr-xr-x 1 root root 262 Aug 11 11:49 logon.cmd
-rwxr-xr-x 1 root root 124 Aug 11 11:33 user.js

Kann mir jemand sagen, was ich falsch mache?


Gruss Markus
 

stka

Guru
Bekommst du eine Fehlermeldung in /var/log/samba/log.smb? Es sieht alles richtig aus. Hast du mal versucht die Freigabe von Hand zu verbinden und dann das Logonskript ausführen? Also von einem Win-Client aus. Geht das dann? Zu erst solltest du testen, ob das Skript über die Freigabe überhaupt ausgeführt wird. Hast du das Skript unter Linux oder unter Windows geschrieben? Skripte musst du immer unter Win schreiben, da sonst die Zeile nicht richtig beendet wird und win das Skript dann nicht ausführen kann.
Eins noch: Die Parameter "wins support = yes" und "wins Server = <ip>" schließen sich UNBEDINGT aus!! bei "wins support = yes" ist der Samba selbst der WINS und bei "wins server = <ip>" gibt er alle seine NetBIOS-Daten an den entsprechenden WINS weiter. Also beides geht nicht. Mit Samba kann es nur einen WINS in der Domäne geben.
 
OP
Z

zum

Newbie
Nein, ich habe keine Fehlermeldung in /var/log/samba/log.smbd. Das Logonscript funktioniert von Hand einwandfrei, sowohl direkt ab netlogon, wie auch, wenn ich netlogon erst verbinde. Das Script ist auf dem Windows-Rechner geschrieben worden.
Danke, für den Hinweis zum WINS-Server. Werde das gleich korrigieren. Hat allerdings bis jetzt einwandfrei funktioniert.


Gruss Markus
 

stka

Guru
Das wundert mich, dass im Log nichts steht, denn der Zugriff auf die Freigabe sollte dort auf jeden Fall dokumentiert werden. Du solltest so etwas finden:
macbookw :):ffff:192.168.123.9) connect to service stefan initially as user stefan (uid=10001, gid=100) (pid 1644)
Halt dann mit "service netlogon". Schau mal in dem Verzeichnis /var/log/samba ob es dort für jeden Host eine eigene Datei gibt, dann musst du dort schaun. In alle Howtos und auch bei mir wird [NETLOGON] immer groß geschrieben. Bei Windows auch. Ich hab das noch nie klein geschrieben, aber ein Versuch wäre es wert :???:
Was kommt denn wenn du am Samba-Server "smbclient -L localhost" eingibst? Am Passwort drückst du einfach Return.
 
OP
Z

zum

Newbie
In der Log-Datei vom Host steht folgendes:
Code:
[2011/08/12 08:11:47,  1] smbd/service.c:1062(make_connection_snum)
  lm-056 (10.165.101.215) signed connect to service NETLOGON initially as user zum (uid=1003, gid=512) (pid 11888)
[2011/08/12 08:11:51,  1] smbd/service.c:1241(close_cnum)
  lm-056 (10.165.101.215) closed connection to service NETLOGON
[2011/08/12 08:12:01,  1] smbd/service.c:1062(make_connection_snum)
  lm-056 (10.165.101.215) signed connect to service NETLOGON initially as user zum (uid=1003, gid=512) (pid 11888)
Dass netlogon bei uns klein geschrieben ist, hat wohl mit SLES oder der Geschichte der Server bisher zu tun, spielt aber insofern keine Rolle, weil es auch gross geschrieben nicht funktioniert.

"smbclient -L localhost" gibt folgendes raus:
Code:
Domain=[LABORNETZ] OS=[Unix] Server=[Samba 3.4.3-1.27.1-2555-SUSE-CODE11]

        Sharename       Type      Comment
        ---------       ----      -------
        IPC$            IPC       IPC Service ("Anmelde-, DHCP- und DNS-Master-Server")
Domain=[LABORNETZ] OS=[Unix] Server=[Samba 3.4.3-1.27.1-2555-SUSE-CODE11]

        Server               Comment
        ---------            -------
        CMS-01
        CMS-02               Windows Update Service Server
        DBS-02               Datenbankserver 2
        FS-01                Fileserver 1
        FS-02                Fileserver 2
        PDC                  Anmelde-, DHCP- und DNS-Master-Server
        POIS-01              POI-Server

        Workgroup            Master
        ---------            -------
        LABORNETZ            PDC


Gruss Markus
 

stka

Guru
Ok, also der Client verbindet sich mit der Freigabe, aber das blöde Skript wird nicht ausgeführt :???:
Mach doch mal das folgenden:
Erstelle in NETLOGON ein Skript testskript.bat in das Skript schreibst du nur eine Zeile:
net use x: \\server\freigaben

Das Skript stellst du dann an Stelle deines Skriptes in die smb.conf und versuchst es dann noch mal.
 
OP
Z

zum

Newbie
Ich habe es zum Laufen gebracht. Allerdings nicht ganz so, wie ich mir das am Anfang vorgestellt habe. Ich habe in der LDAP-DB beim User das Logon-Script angegeben und siehe da, es wird ausgeführt. Warum das so ist, weiss ich nicht genau. Ich kann da nur soweit spekulieren, als dass mit der Kombination LDAP-Samba das allgemeine netlogon deaktiviert wird und nur noch das persönliche funktioniert. Allenfalls ist das einfach nur bei uns so. Evtl. auch deshalb, weil die LDAP-DB vor Jahren mit Samba/LDAP-Tools von IDEALX erstellt wurde.

In dem Sinne ist das Problem für mich gelöst. Die persönlichen Loginscripts sind mir lieber, weil ich da noch mehr Möglichkeiten habe.

Das mit der Zeile net use x: \\server\freigaben habe ich schon ausprobiert und es hat im allgemeinen netlogon auch nicht funktioniert.


Gruss Markus
 

stka

Guru
Wenn du es doch noch hin bekommst, dann schau dir mal die kix-Skripte an. Ich habe da im Wiki mal was zu abgelegt. Damit kannst du dann auf Grund von Gruppen deine Logon-Skripte abarbeiten lassen.
http://www.linupedia.org/opensuse/Logonskripte_mit_kix
Die Idealix-Skripte frickeln da rum das stimmt. Aber solange kein privates Skript da ist sollte immer das global genommen werden. wenn beide Skripte da sind werden auch beide abgearbeitet. Erst das global dann das private.
 
Oben