Curs: | SambasobreLDAP, LinuxAdministracioAvancada |
Fitxers: | Sessio6.pdf,AutenticacioiAutoritzacionsLinux.pdf |
Repositori SVN: | https://[email protected]/svn/iceupc/SambaSobreLDAP |
Usuari: | anonymous |
Paraula de pas: | sense paraula de pas |
Autors: | Sergi Tur Badenas, Lluís Pérez Vidal |
Un controlador de domini de Windows NT és quelcom semblant a NIS a Unix (manté una base de dades del domini amb usuaris, grups, màquines i serveis). L'objectiu principal d'un controlador de domini és la seguretat, controlar el procés d'autenticació (usuari i password) i l'accés als recursos. El servei que manté la base de dades en controlador de domini s'anomena Service Account Manager (SAM). Windows NT utilitza:
Hi han controladors de domini primaris i secundaris (Backup). Consulteu els articles:
Un controlador de domini és un servidor SMB/CIFS que:
Un exemple de PDC:
$ nmblookup -S ACACHA querying ACACHA on 192.168.1.255 192.168.1.3 ACACHA<00> Looking up status of 192.168.1.3 ACACHA <00> - H <ACTIVE> ACACHA <03> - H <ACTIVE> ACACHA <20> - H <ACTIVE> ..__MSBROWSE__. <01> - <GROUP> H <ACTIVE> CASA <1d> - H <ACTIVE> CASA <1b> - H <ACTIVE> CASA <1c> - <GROUP> H <ACTIVE> CASA <1e> - <GROUP> H <ACTIVE> CASA <00> - <GROUP> H <ACTIVE> MAC Address = 00-00-00-00-00-00
Com podem veure aquesta màquina és el Master Browser (__MSBROWSE__) i és un PDC (valors 1b, 1d i 1c). Consulteu aquests valors a:
Els passos a establir per convertir una màquina Samba en un PDC són:
Configuració bàsica de TCP/IP i dels paràmetres de xarxa de Windows:
Normalment no ens cal tocar res de la configuració de TCP/IP (a no ser que el PDC també sigui un router amb diferents NIC i vulguem que samba només treballi per una NIC concreta). De la xarxa de Windows només hem d'establir el nom de màquina de NetBIOS i el nom del grup de treball. Per exemple:
workgroup = Aulalinux
Cal tenir en compte que no hi ha un paràmetre que indiqui el nom de domini en Samba i que s'utilitza el paràmetre workGroup.
Recordeu que si no establim explícitament el nom de NetBIOS aleshores coincideix amb el nom de màquina TCP/IP menys els sufix DNS. Per exemple:
$ hostname acacha.org
Li correspon el nom de màquina de NetBIOS: ACACHA.
Establir com rol de seguretat user:
security = user
A Samba 3 aquest és el valor per defecte.
IMPORTANT: No utilitzeu el rol de seguretat DOMAIN. Al contrari del que pot semblar pel seu nom aquest model de seguretat només s'utilitza quan una màquina Samba és membre d'un domini però no és un PDC!
Configurar correctament la resolució de noms de NetBIOS.
La configuració adequada és que el Samba PDC sigui un servidor WINS i funcioni com a Domain Master Browser del domini:
os level = 35 preferred master = Yes domain master = Yes wins support = Yes
Per a més informació sobre aquest tema consulteu l'article NetBIOS Name Server i els apartats Configuració com a DMB i WINS de l'article sobre Samba.
Configurar els LOGON per a clients Windows NT4/200x/XP Professional.
Aquí el paràmetre més important és:
domain logons = yes
Aquest és el paràmetre que determina que aquesta màquina és un PDC.
NOTA: Si no ens interessa executar cap script d'inici (logon script) no cal configurar res més a Samba, amb aquesta configuració ja podríem treballar sense servei de Netlogon.
Si volem executar un script els passos bàsics serien indicar l'script:
[global] ... domain logons = yes logon script = logon.bat
Aquest script és sempre relatiu al recurs compartit [netlogon] que establim de la següent forma
[netlogon] comment = Logon path = /etc/samba/netlogon browseable = No
Per defecte és de només lectura. Preparem les carpetes de recursos compartits del servidor:
$ sudo mkdir /etc/samba/netlogon $ sudo chmod 775 /etc/samba/netlogon $ sudo mkdir /etc/samba/profiles $ sudo chmod 777 /etc/samba/profiles
Ara creem l'script:
$ sudo joe /etc/samba/netlogon/logon.bat.unix net time \\SERVER_NETBIOS_NAME /set /yes net use p: \\SERVER_NETBIOS_NAME\aulalinux net use LPT1: \\MyServer\MyPrinter
El fitxer ha d'estar en format DOS. Podeu convertir un fitxer UNIX en un fitxer DOS amb:
$ sudo apt-get install tofrodos $ sudo -i #unix2dos < /etc/samba/netlogon/logon.bat.unix > /etc/samba/netlogon/logon.bat# fromdos -u < /etc/samba/netlogon/logon.bat.unix > /etc/samba/netlogon/logon.bat
IMPORTANT: En versions del paquet Debian "modernes" (--acacha 11:43, 20 juny 2010 (UTC)) ja no existeixen les ordres unix2dos i dos2unix:
$ sudo gunzip /usr/share/doc/tofrodos/NEWS.Debian.gz $ sudo cat /usr/share/doc/tofrodos/NEWS.Debian tofrodos (1.7.8.debian.1-2) unstable; urgency=low With this release the symlinks "unix2dos" and "dos2unix" are dropped from the package. This will allow the introduction of the original dos2unix package, which also supports conversion to MacOS style files. Should you have scripts depending on these symlinks, I recommend using shell-aliases, like in the following example for bash: alias unix2dos="/usr/bin/fromdos -u" (or todos) alias dos2unix="/usr/bin/fromdos -d" (or just fromdos) -- Alexander Reichle-Schmehl <[email protected]> Thu, 21 Jan 2010 20:59:11 +0100
Podeu comprovar que els fitxers són diferents amb la comanda file:
$ file /etc/samba/netlogon/logon.bat.unix logon.bat.unix: ASCII text, with no line terminators
$ file /etc/samba/netlogon/logon.bat logon.bat: ASCII text, with CRLF line terminators
La configuració de smb.conf és la següent:
[global] ... logon path = \\%N\profiles\%U logon script = logon.bat logon drive = H: time server = yes
...
[netlogon] path = /etc/samba/netlogon writable = no browsable = no [profiles] path = /etc/samba/profiles browsable = no writable = yes create mask = 0600 directory mask = 0700
[homes] read only = no browsable = no guest ok = no map archive = yes
Podeu trobar més informació en detall sobre LOGON a Configuració delLogon.
Configurar els perfils mòbils (roaming profiles) o indicar explícitament que volem utilitzar els perfils locals.
Per utilitzar perfils mòbils no cal fer cap modificació a la configuració per defecte de Samba. Per a fer canvis concrets respecte als perfils consulteu l'apartat perfils.
Configurar els clients MS Windows NT4/2000 Professional i Windows XP Professional per tal de ser membres del domini
Per poder afegir una màquina a un domini cal tenir l'usuari root/administrador del domini configurat. Consulteu l'apartat Configuració de la compte d'administrador del domini.
Veieu l'apartat Configuració dels clients Windows.
Gestionar les comptes d'usuaris del domini
La primera compte que cal crear és la de l'administrador del domini. Consulteu l'apartat Configuració de la compte d'administrador del domini.
Un cop configurat aquest compte, la gestió de comptes d'usuari es pot fer manualment utilitzant les comandes de gestió d'usuaris de Unix (adduser, deluser, etc.) i les comandes de gestió d'usuaris de Samba ( smbpasswd, pdbedit o fins i tot la comanda net).
Però també es pot fer des d'eines client de Windows NT com srvmng.exe o usrmgr.exe. Per tal que això sigui possible cal configurar adequadament Samba. Consulteu l'apartat Scripts de gestió d'usuari
Configurar les polítiques de la xarxa i del sistema (network/system policies)
[TODO]
Recursos:
http://www.samba.org/samba/docs/man/Samba-HOWTO-Collection/samba-bdc.html#id2567455
Comanda de Windows nltest:
U:\>nltest /dsgetdc:iesebre.com DsGetDcName failed: Status = 1355 0x54b ERROR_NO_SUCH_DOMAIN
Més info sobre nltest a:
http://support.microsoft.com/kb/158148/en-us
Forma part de Microsoft Windows NT 4.0 Resource Kit
Amb nslookup:
U:\>nslookup server=dc2 Servidor: proxy.iesebre.com Address: 192.168.0.4 *** proxy.iesebre.com no se puede encontrar server=dc2: Non-existent domain U:\>nslookup server=INSEBRE Servidor: ns2.iesebre.com Address: 192.168.0.4 *** ns2.iesebre.com no se puede encontrar server=INSEBRE: Non-existent domain
TODO:
11/26 08:04:48 [MISC] NetpDcGetName: INSEBRE similar query failed recently 31986 11/26 08:04:09 [SESSION] INSEBRE: NlSessionSetup: Try Session setup 11/26 08:04:09 [SESSION] INSEBRE: NlDiscoverDc: Start Synchronous Discovery 11/26 08:04:09 [MAILSLOT] Sent 'Sam Logon' message to INSEBRE[1C] on all transports. 11/26 08:04:16 [CRITICAL] NetpDcGetNameNetbios: INSEBRE: Cannot NlBrowserSendDatagram. (1C) 53 11/26 08:04:16 [CRITICAL] NetpDcGetName: INSEBRE: IP and Netbios are both done. 11/26 08:04:16 [CRITICAL] INSEBRE: NlDiscoverDc: Cannot find DC. 11/26 08:04:16 [CRITICAL] INSEBRE: NlSessionSetup: Session setup: cannot pick trusted DC
c:\Windows\debug(dcdiag.txt
Es posible que el nombre de dominio "INSEBRE" sea un nombre de dominio NetBIOS. Si este es el caso, compruebe que el nombre de dominio está registrado correctamente con WINS. Si está seguro de que el nombre no es un nombre de dominio NetBIOS, la siguiente información le ayuda a solucionar los problemas con su configuración DNS: Ocurrió un error cuando se consultó al DNS acerca del registro de recursos de ubicación de servicio (SRV) usado para ubicar un controlador de dominio para el dominio INSEBRE. El error fue: "No se ha encontrado ningún registro para la consulta DNS especificada." (código de error 0x0000251D DNS_INFO_NO_RECORDS) La solicitud era para el registro SRV para _ldap._tcp.dc._msdcs.INSEBRE Para obtener más información, haga clic en Ayuda.
Hi,
This issue may occur if you use a 1-GB network adapter and the Netlogon service starts before the network is ready. Please try to refer to the suggestions in the following article or just ignore this error if there is no other errors.
Event ID 5719 is logged when you start a computer on a domain, and the computer is running Windows Server 2003, Windows XP, or Windows 2000 http://support.microsoft.com/kb/938449
This issue may also occur because link status fluctuates as the network adapter (also known as the network interface card, or NIC) driver initializes and as the network adapter hardware negotiates a link with the network infrastructure. The Group Policy application stack executes before the negotiation process is completed and can fail because of the absence of a valid link.
Cannot connect to domain controller and cannot apply Group Policy with Gigabit Ethernet devices http://support.microsoft.com/default.aspx?scid=kb;EN-US;326152
Try the following suggestions to disable Media Sensing to test.
How to disable the Media Sensing feature for TCP/IP in Windows http://support.microsoft.com/kb/239924/
If the issue persists, please help to collect MPS Report on problematic computers for troubleshooting.
A. Download MPS Reporting Tool (MPSRPT_PFE.EXE) from the following link: (http://www.microsoft.com/downloads/details.aspx?FamilyID=00ad0eac-720f-4441-9ef6-ea9f657b5c2f&DisplayLang=en)
Please note: The link may be truncated when you read the E-mail. Be sure to include all text between '(' and ')' when navigating to the download location.
B . Right click MPSRPT_PFE.EXE and select Run as Administrator to run this tool, and you will see a Command Window start up.
C . Please type Y with the message of <Include the MSINFO32 report? (defaults to Y in 15 seconds)[Y,N]?
D . When the tool is done you will see an Explorer Window opening up the %systemroot%\MPSReports\Setup\Reports\cab folder and containing a <Computername>MPSReports.cab file. After collecting, please use Windows Live SkyDrive (http://www.skydrive.live.com/) to upload the file and then give me the download address.
Thanks.
Tots els paràmetres són de la secció global.
Paràmetres:
El valor per defecte és:
logon script =
Un exemple:
logon script = scripts\%U.bat
El valor per defecte és:
logon drive =
Un exemple:
logon drive = h:
El valor per defecte és:
logon home = \\%N\%U
Recursos: Vegeu els exemples:
Recurs compartit netlogon:
NO és obligatori posar-lo (equival a no executar cap logon script a l'iniciar sessió). Es configura com un recurs compartit més:
[netlogon] path = /etc/samba/netlogon writable = no browsable = no
$ sudo mkdir /etc/samba/netlogon $ sudo chmod 775 /etc/samba/netlogon
El més important és que el recurs compartit sigui de només lectura.
Un exemple de fitxer de logon simple. Editeu el fitxer:
$ sudo joe /etc/samba/netlogon/logon.bat.unix
I afegiu el següent contingut:
net time \\SERVER_NETBIOS_NAME /set /yes net use p: \\SERVER_NETBIOS_NAME\recurscompartit
Un exemple:
net time \\ACACHA /set /yes net use p: \\ACACHA\aulalinux
Si volguéssim afegir una impresora seria quelcom similar a:
net use LPT1: \\SERVER_NETBIOS_NAME\MyPrinter
Per convertir a format DOS el fitxer:
$ sudo apt-get install tofrodos $ sudo -i #unix2dos < /etc/samba/netlogon/logon.bat.unix > /etc/samba/netlogon/logon.bat# fromdos -u < /etc/samba/netlogon/logon.bat.unix > /etc/samba/netlogon/logon.bat # file /etc/samba/netlogon/* ... logon.bat: ASCII text, with CRLF line terminators logon.bat.unix: ASCII text ... # exit $
NOTA: Amb sudo per tal que funcionin les redireccions: bash -c "ordres amb redireccions"
$ sudo bash -c "fromdos -u < /etc/samba/netlogon/logon.bat.unix > /etc/samba/netlogon/logon.bat"
Per comprovar si el fitxer està en format Linux es pot utilitzar l'ordre file (--acacha 08:27, 19 jul 2010 (UTC) abans indicava que era un fitxer CRLF ara no ;-)). Podeu també utilitzar cat:
$ cat -v /etc/samba/netlogon/logon.bat @ECHO OFF^M @ECHO Intentant assignar les lletres X:, Y:, T: a la xarxa ...^M ^M
Si veieu el ^M, aleshores el fitxer és en format DOS (CR+LF)
Sinó és Unix.
Recursos:
@echo off title Policy My Enterprise rem Home Page Internet Explorer reg add "HKCU\Software\Microsoft\Internet Explorer\Main" /v "Start Page" /t REG_SZ /d "http://www.fiac.es" /f rem Start Classic reg add HKCU\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer /v NoSimpleStartMenu /t REG_DWORD /d 1 /f reg add HKLM\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer /v NoSimpleStartMenu /t REG_DWORD /d 1 /f rem Sincronize time with the server net time \\192.168.30.11 /set /yes
$ cat /etc/samba/smb.conf ... logon script = %g.BAT ... [netlogon]
comment = Netlogon NT path = /var/lib/samba/netlogon browseable = No
I a la carpeta:
/var/lib/samba/netlogon
Tenir un script per cada grup.
Es pot indicar a la info de l'usuari. O podeu fer amb gosa o amb pdbedit
Exemple de com crear "on the fly" un fitxer de logon per a cada usuari amb rootpreexec
Consulteu també Depurar netlogon als clients Windows.
TODO
11/26 07:27:59 [DOMAIN] Setting our computer name to P-E9404F66AD824 (null) 11/26 07:27:59 [DOMAIN] Setting Netbios domain name to INSEBRE 11/26 07:27:59 [CRITICAL] C:\WINDOWS\system32\config\netlogon.ftj: Unable to open. 2 11/26 07:27:59 [INIT] Getting cached trusted domain list from binary file. 11/26 07:27:59 [LOGON] NlSetForestTrustList: New trusted domain list: 11/26 07:27:59 [LOGON] 0: INSEBRE (NT 4) (Primary Domain) 11/26 07:27:59 [LOGON] Dom Sid: S-1-5-21-448539723-1202660629-1060284298 11/26 07:27:59 [INIT] Starting RPC server. 11/26 07:27:59 [SESSION] INSEBRE: NlSessionSetup: Try Session setup 11/26 07:27:59 [SESSION] INSEBRE: NlDiscoverDc: Start Synchronous Discovery 11/26 07:27:59 [MISC] NlpInitializeTrace succeeded 0 11/26 07:27:59 [MAILSLOT] Sent 'Sam Logon' message to INSEBRE[1C] on all transports. 11/26 07:28:06 [CRITICAL] NetpDcGetNameNetbios: INSEBRE: Cannot NlBrowserSendDatagram. (1C) 53 11/26 07:28:06 [CRITICAL] NetpDcGetName: INSEBRE: IP and Netbios are both done. 11/26 07:28:06 [CRITICAL] INSEBRE: NlDiscoverDc: Cannot find DC. 11/26 07:28:06 [CRITICAL] INSEBRE: NlSessionSetup: Session setup: cannot pick trusted DC 11/26 07:28:06 [MISC] Eventlog: 5719 (1) "INSEBRE" 0xc000005e c000005e ^... 11/26 07:28:06 [SESSION] INSEBRE: NlSetStatusClientSession: Set connection status to c000005e 11/26 07:28:06 [SESSION] INSEBRE: NlSessionSetup: Session setup Failed 11/26 07:28:06 [INIT] Started successfully 11/26 07:28:06 [INIT] Group Policy is not defined for Netlogon 11/26 07:28:06 [INIT] Following are the effective values after parsing 11/26 07:28:06 [MISC] NlWksScavenger: Can be called again in 24 days (0x7e105b0f) 11/26 07:28:13 [MISC] DsGetDcName function called: Dom:(null) Acct:(null) Flags: BACKGROUND 11/26 07:28:13 [MISC] NetpDcGetName: INSEBRE similar query failed recently 6650 11/26 07:28:13 [MISC] DsGetDcName function returns 1355: Dom:(null) Acct:(null) Flags: BACKGROUND 11/26 07:28:20 [MISC] DsrEnumerateDomainTrusts: Called, Flags = 0x3 11/26 07:28:20 [CRITICAL] NlReadFileForestTrustList: \system32\config\netlogon.ftl: No primary domain record in Log file 11/26 07:28:20 [MISC] DsrEnumerateDomainTrusts: returns: 0 11/26 07:28:26 [LOGON] SamLogon: Interactive logon of INSEBRE\stur from P-E9404F66AD824 Entered 11/26 07:28:26 [LOGON] SamLogon: Interactive logon of INSEBRE\stur from P-E9404F66AD824 Returns 0xC000005E 11/26 07:28:30 [LOGON] SamLogon: Interactive logon of INSEBRE\stur from P-E9404F66AD824 Entered 11/26 07:28:30 [LOGON] SamLogon: Interactive logon of INSEBRE\stur from P-E9404F66AD824 Returns 0xC000005E 11/26 07:28:39 [LOGON] SamLogon: Interactive logon of INSEBRE\homersimpson from P-E9404F66AD824 Entered 11/26 07:28:39 [LOGON] SamLogon: Interactive logon of INSEBRE\homersimpson from P-E9404F66AD824 Returns 0xC000005E 11/26 07:28:39 [MISC] DsGetDcName function called: Dom:INSEBRE Acct:(null) Flags: DS 11/26 07:28:39 [MISC] NetpDcGetName: INSEBRE similar query failed recently 33108 11/26 07:28:39 [MISC] DsGetDcName function returns 1355: Dom:INSEBRE Acct:(null) Flags: DS 11/26 07:28:39 [MISC] DsGetDcName function called: Dom:INSEBRE Acct:(null) Flags: DSP 11/26 07:28:39 [MISC] NetpDcGetName: INSEBRE similar query failed recently 33118 11/26 07:28:39 [MISC] DsGetDcName function returns 1355: Dom:INSEBRE Acct:(null) Flags: DSP 11/26 07:28:39 [MISC] DsGetDcName function called: Dom:INSEBRE Acct:(null) Flags: 11/26 07:28:39 [MISC] DsGetDcName function called: Dom:INSEBRE Acct:(null) Flags: DSP 11/26 07:28:39 [MISC] NetpDcGetName: INSEBRE similar query failed recently 33138 11/26 07:28:39 [MISC] DsGetDcName function returns 1355: Dom:INSEBRE Acct:(null) Flags: 11/26 07:28:39 [MISC] NetpDcGetName: INSEBRE similar query failed recently 33138 11/26 07:28:39 [MISC] DsGetDcName function returns 1355: Dom:INSEBRE Acct:(null) Flags: DSP 11/26 07:28:39 [MISC] DsGetDcName function called: Dom:INSEBRE Acct:(null) Flags: DSP 11/26 07:28:39 [MISC] NetpDcGetName: INSEBRE similar query failed recently 33178 11/26 07:28:39 [MISC] DsGetDcName function returns 1355: Dom:INSEBRE Acct:(null) Flags: DSP 11/26 07:28:39 [MISC] DsGetDcName function called: Dom:INSEBRE Acct:(null) Flags: DSP 11/26 07:28:39 [MISC] NetpDcGetName: INSEBRE similar query failed recently 33208 11/26 07:28:39 [MISC] DsGetDcName function returns 1355: Dom:INSEBRE Acct:(null) Flags: DSP 11/26 07:28:40 [MISC] DsGetDcName function called: Dom:INSEBRE Acct:(null) Flags: DSP 11/26 07:28:40 [MISC] DsGetDcName function called: Dom:INSEBRE Acct:(null) Flags: DSP 11/26 07:28:40 [MISC] NetpDcGetName: INSEBRE similar query failed recently 33439 11/26 07:28:40 [MISC] DsGetDcName function returns 1355: Dom:INSEBRE Acct:(null) Flags: DSP 11/26 07:28:40 [MISC] NetpDcGetName: INSEBRE similar query failed recently 33449 11/26 07:28:40 [MISC] DsGetDcName function returns 1355: Dom:INSEBRE Acct:(null) Flags: DSP 11/26 07:28:56 [MISC] DsGetDcName function called: Dom:INSEBRE Acct:(null) Flags: DSP 11/26 07:28:56 [MAILSLOT] Sent 'Sam Logon' message to INSEBRE[1C] on all transports. 11/26 07:28:58 [CRITICAL] NetpDcGetNameNetbios: INSEBRE: Cannot NlBrowserSendDatagram. (1C) 53 11/26 07:28:58 [CRITICAL] NetpDcGetName: INSEBRE: IP and Netbios are both done. 11/26 07:28:58 [MISC] DsGetDcName function returns 1355: Dom:INSEBRE Acct:(null) Flags: DSP 11/26 07:28:58 [MISC] DsGetDcName function called: Dom:INSEBRE Acct:(null) Flags: DSP 11/26 07:28:58 [MISC] NetpDcGetName: INSEBRE similar query failed recently 321 11/26 07:28:58 [MISC] DsGetDcName function returns 1355: Dom:INSEBRE Acct:(null) Flags: DSP turn on USERENV debugging on a client where the script isn't running and see what comes up there. Create a registry key "HKLM\Software\Microsoft\Windows NT\CurrentVersion \Diagnostics" and under that key, add a REG_DWORD value "RunDiagnosticLoggingGlobal" set to 1. That'll throw massive USERENV logging information into the event log. Set that, then bounce the machine with a "gpupdate /sync /boot" and have a look. (My psychic powers say DHCP media sense issues... we'll see. I'm assuming you've set "Always wait for the network at computer startup and logon" to "Enabled" already.)
From the DC where you took this netlogon log can you run and post the output from:
dcdiag /test:DNS /v
[CRITICAL] C:\WINDOWS\system32\config\netlogon.ftj: Unable to open. 2
Per configurar la compte d'administrador del domini cal executar:
$ sudo smbpasswd -a root
Podeu comprovar si funciona amb la comanda:
$ smbclient -U root -L NETBIOS_NAME_PDC
Nota: Cal tenir en compte l'error típic de tenir activada l'opció: invalid users= root
Sovint també es fa un mapeig d'usuaris per tal que els clients Windows puguin utilitzar l'usuari Administrador en comptes de l'usuari root. Cal crear un fitxer:
$ sudo joe /etc/samba/smbusers
Amb un continguts similar a:
#### # User mapping file #### # File Format # ----------- # Unix_ID = Windows_ID # # Examples: # root = Administrator # janes = "Jane Smith" # jimbo = Jim Bones # # Note: If the name contains a space it must be double quoted. # In the example above the name 'jimbo' will be mapped to Windows # user names 'Jim' and 'Bones' because the space was not quoted. ####################################################################### root = Administrator #### # End of File ####
Configurem Samba:
[global] ... username map = /etc/samba/smbusers
A l'apartat [global] del fitxer de configuració de samba.
Per raons de seguretat val la pena que la contrasenya de l'administrador de Windows no coincideixi amb la paraula de pas de Unix.
És una compte que s'utilitza per autenticar una màquina client (i no pas un usuari). També anomenades comptes de màquina (computer account). L'objectiu d'aquestes comptes és autenticar màquines en un domini de Windows. La idea és evitar que una màquina és pugui fer passar per un altre utilitzant el mateix nom de NetBIOS.
La paraula de pas de la compte és el secret compartit entre una màquina membre del domini i el controlador del domini.
Cal recordar que:
El PDC del domini emmagatzema les MTA. A Windows es guarden al registre de Windows (excepte en el cas de Active Directory que aleshores es guarda a Ldap). En una màquina Samba treballant com a PDC es guarden en dos parts (de la mateixa forma que succeïx amb els usuaris):
Hi ha 3 formes de crear una MTA a Samba:
IMPORTANT: Els noms de màquina acaben en $.
Un cop una màquina s'ha afegit al domini podem consultar la seva compte amb la comanda:
$ sudo pdbedit -Lv WINVIRTUALBOX$ Unix username: WINVIRTUALBOX$ NT username: Account Flags: [W ] User SID: S-1-5-21-2766811845-3538508183-2884897709-1009 Primary Group SID: S-1-5-21-2766811845-3538508183-2884897709-513 Full Name: WINVIRTUALBOX$ Home Directory: \\acacha\winvirtualbox_ HomeDir Drive: Logon Script: Profile Path: \\acacha\winvirtualbox_\profile Domain: CASA Account desc: Workstations: Munged dial: Logon time: 0 Logoff time: never Kickoff time: never Password last set: 0 Password can change: 0 Password must change: 0 Last bad password : 0 Bad password count : 0 Logon hours : FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
$ sudo addgroup machines $ sudo useradd -g machines -d /var/lib/nobody -c "nom maquina" -s /bin/false nom_maquina$ $ sudo passwd -l nom_maquina$ $ sudo smbpasswd -a -m nom_maquina
Podeu obtenir la eina srvmgr.exe i instal·lar-la a XP des de la següent web:
Un cop instal·lada heu d'iniciar sessió com a usuari administrador al domini.
També existeix una eina anomenada Nexus sense oblidar idealx ni eines Open Source com Gosa o LAM.
IMPORTANT: És l'opció recomanada
[global] add machine script = /usr/sbin/useradd -d /var/lib/nobody -g machines -s /bin/false -m %u
NOTA: Cal abans haver afegir al sistema el grup machines amb la comanda:
$ sudo addgroup machines Adding group `machines' (GID 1010) ... Fet.
IMPORTANT: Amb Ldap i libnss-ldap cal crear el compte en Ldap i no pas en local (l'ordre useradd crea només comptes locals). Consulteu smbldap-tools, concretament l'apartat Smbldap-tools#Add_machine_script_i_Ldap
Consulteu també l'apartat Machine Trust Accounts (MTA)
Poseu a /etc/samba/smb.conf
$ cat /etc/samba/smb.conf | grep add # add machine script = /usr/sbin/useradd -c Machine -d /nonexistent -s /bin/false %u # add machine script = /usr/sbin/smbldap-useradd -w "%u" add machine script = /etc/samba/scripts/machine_add -d -a "%a" -I "%I" -m "%m" -M "%M" -w "%u"
On /etc/samba/scripts/machine_add
$ cat /etc/samba/scripts/machine_add
#!/bin/bash set -e #LOGFILE #Create it with # $ sudo touch /var/log/samba/add_machine_log # $ sudo chmod 644 /var/log/samba/add_machine_log LOG_FILE="/var/log/samba/add_machine_log" HOSTNAME=$(hostname) echo "$(LANG=C;date +'%b %d %T') $HOSTNAME [$$]: Samba machine add script initiated..." >> $LOG_FILE while getopts ":w:Uda:I:m:M:" opt; do case $opt in w) #echo "-w was triggered, Parameter: $OPTARG" >&2 WISSET=TRUE W=$OPTARG ;; U) #echo "-b was triggered" >&2 UISSET=TRUE U=$OPTARG ;; d) #echo "-d was triggered" >&2 DISSET=TRUE D=$OPTARG ;; a) #echo "-a was triggered" >&2 AISSET=TRUE A=$OPTARG ;; I) #echo "-I was triggered" >&2 IISSET=TRUE I=$OPTARG ;; m) #echo "-m was triggered" >&2 MISSET=TRUE M=$OPTARG ;; M) #echo "-M was triggered" >&2 MMISSET=TRUE MM=$OPTARG ;; \?) echo "$(LANG=C;date +'%b %d %T') $HOSTNAME [$$]: invalid option: -$OPTARG..." >> $LOG_FILE exit 1 ;; :) echo "$(LANG=C;date +'%b %d %T') $HOSTNAME [$$]: Option -$OPTARG requires an argument." >> $LOG_FILE exit 2 ;; esac done WHOAMI=$(/usr/bin/whoami) if [ "$DISSET" = "TRUE" ]; then echo "$(LANG=C;date +'%b %d %T') $HOSTNAME [$$]: whoami: $WHOAMI" >> $LOG_FILE echo "$(LANG=C;date +'%b %d %T') $HOSTNAME [$$]: =$A" >> $LOG_FILE echo "$(LANG=C;date +'%b %d %T') $HOSTNAME [$$]: Client's architecture =$A" >> $LOG_FILE echo "$(LANG=C;date +'%b %d %T') $HOSTNAME [$$]: Client's IP address I =$I" >> $LOG_FILE echo "$(LANG=C;date +'%b %d %T') $HOSTNAME [$$]: Client's NetBIOS name =$M" >> $LOG_FILE echo "$(LANG=C;date +'%b %d %T') $HOSTNAME [$$]: Client's DNS name =$MM" >> $LOG_FILE echo "$(LANG=C;date +'%b %d %T') $HOSTNAME [$$]: Requested client username =$U" >> $LOG_FILE fi [ -f /var/log/samba/add_machine_log ] || (echo "Fatal Error! Log file: $LOG_FILE doesn't exists"; exit 3) [ -f /usr/sbin/smbldap-useradd ] || (echo "Fatal error! smbldap-useradd doesn't exists .Install smbldap-tools." >> $LOG_FILE; exit 4) echo "a" echo "$(LANG=C;date +'%b %d %T') $HOSTNAME [$$]: Executing /usr/sbin/smbldap-useradd -w \"$W\" where:" >> $LOG_FILE echo "$(LANG=C;date +'%b %d %T') $HOSTNAME [$$]: %u: $W" >> $LOG_FILE echo -n "$(LANG=C;date +'%b %d %T') $HOSTNAME [$$]: " >> $LOG_FILE /usr/sbin/smbldap-useradd -w "$W" >> $LOG_FILE if [ "$?" = "0" ];then echo " User added without errors" >> $LOG_FILE fi #Client variables #---------------- #%a Client's architecture (Samba, WinNT, WfWg, Win95, or UNKNOWN) #%I Client's IP address #%m Client's NetBIOS name #%M Client's DNS name #User variables #-------------- #%g Primary group of %u #%G Primary group of %U #%H Home directory of %u #%u Current Unix username #%U Requested client username (not always used by Samba) # #Share variables #--------------- #%p Automouter's path to the share's root directory, if different from %P #%P Current share's root directory #%S Current share's name # #Server variables #---------------- #%d Current server process ID #%h Samba server's DNS hostname #%L Samba server's NetBIOS name #%N Home directory server, from automount map #%v Samba version # #Miscellaneous variables #----------------------- #%R The SMB protocol level that was negotiated #%T The current date and time # Original script was: # add machine script = /usr/sbin/smbldap-useradd -w "%u"
$ sudo tail -f --lines=50 /var/log/samba/add_machine_log Mar 31 20:16:28 caro [2218]: Samba machine add script initiated... Mar 31 20:16:28 caro [2218]: whoami: root Mar 31 20:16:28 caro [2218]: =WinXP Mar 31 20:16:28 caro [2218]: Client's architecture =WinXP Mar 31 20:16:28 caro [2218]: Client's IP address I =192.168.0.249 Mar 31 20:16:28 caro [2218]: Client's NetBIOS name =pc2maninfopro1 Mar 31 20:16:28 caro [2218]: Client's DNS name =192.168.0.249 Mar 31 20:16:28 caro [2218]: Requested client username = Mar 31 20:16:28 caro [2218]: Executing /usr/sbin/smbldap-useradd -w "pc2maninfopro1$" where: Mar 31 20:16:28 caro [2218]: %u: pc2maninfopro1$ Mar 31 20:16:28 caro [2218]: User added without errors
Que necessito a més per col·locar la màquina a l'espai que li pertoca:
Vegeu també net.
Es fa amb l'opció -m:
$ sudo pdbedit -m -a maquinaprova1 Unix username: maquinaprova1$ NT username: maquinaprova1$ Account Flags: [W ] User SID: S-1-5-21-4045161930-1404234508-1517741366-1017 Primary Group SID: S-1-5-21-4045161930-1404234508-1517741366-515 Full Name: Computer Home Directory: HomeDir Drive: Logon Script: logon.bat Profile Path: Domain: INSEBRE Account desc: Computer Workstations: Munged dial: Logon time: 0 Logoff time: never Kickoff time: never Password last set: dc, 14 jul 2010 06:16:16 CEST Password can change: dc, 14 jul 2010 06:16:16 CEST Password must change: never Last bad password : 0 Bad password count : 0 Logon hours : FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
Si tenim el sistema amb libnss_ldap podem veure el compte equivalent de Unix amb:
$ sudo getent passwd maquinaprova1$ maquinaprova1$:*:3062:515:Computer:/dev/null:/bin/false
Cal tenir en compte però que al esborrar el compte de màquina amb:
$ sudo pdbedit -x maquinaprova1$
Només s'esborra la informació del compte Samba, la informació posixAccount continua existint a Ldap.
Samba permet configurar una sèrie d'scripts que s'utilitzaran per crear els usuaris de Unix necessaris i així permetre una sincronització automàtica entre els usuaris de Unix i Samba. Aquests paràmetres NO s'han d'utilitzar amb l'opció:
security = share
Els scripts són executables de Linux als quals se'ls i passa el nom de l'usuari que correspongui utilitzant la variable %u.
Quan un usuari intenta connectar-se a un servidor Samba, en temps de login, el dimoni smbd contacta amb el servidor de contrasenyes (que pot ser una màquina remota o ell mateix) i intenta autenticar l'usuari. Si l'autenticació és correcte aleshores smbd intenta buscar un usuari UNIX equivalent. Si aquest usuari no existeix, aleshores s'executa l'script indicat per la variable:
add user script
Aquest script s'executa com a root i es l'encarregat de crear l'usuari.
Les variables que cal configurar són:
Configuració de màquines:
Altres scripts:
Un exemple:
Script
#!/bin/bash $time=0 let "time/60" let "time++" /sbin/shutdown $3 $4 +$time $1 &
Configuració:
shutdown script = /usr/local/samba/sbin/shutdown %m %t %r %f
Exemple:
abort shutdown script = /sbin/shutdown -c
Exemple:
username map script = /etc/samba/scripts/mapusers.sh
add user script = /usr/sbin/useradd -G sambausers -m -s /bin/false %u delete user script = /usr/sbin/userdel -r %u add group script = /usr/sbin/groupadd %g delete group script = /usr/sbin/groupdel %g add user to group script = /usr/sbin/adduser %u %g delete user from group script = /usr/sbin/deluser %u %g add machine script = /usr/sbin/useradd -d /var/lib/nobody -G machines -s /bin/false -m %u shutdown script = /etc/samba/shutdown %m %t %r %f abort shutdown script = /sbin/shutdown -c
Recursos:
Es poden descarregar de:
Recursos:
Es poden instal·lar en un client Windows XP. Ho trobareu a l'enllaç:
El paquet és diu adminpack.exe.
Aquestes eines no funcionen amb Samba 3 (s'està treballant per a tenir-hi suport a Samba 4).
Recursos:
Per comprovar si estem units al domini:
$ sudo net rpc testjoin Join to 'CURSICE' is OK
En una màquina no unida a cap domini/grup de treball:
$ sudo net rpc testjoin Unable to find a suitable server for domain WORKGROUP Join to domain 'WORKGROUP' is not valid: NT_STATUS_UNSUCCESSFUL
Es pot fer amb rootpreexec:
root preexec = /etc/samba/scripts/mk_sambadir "/home/%u" "%u" "%g"
On:
#!/bin/bash if [ ! -d "$1" ]; then /bin/cp -r /etc/skel "$1" /bin/chmod -R 755 "$1" /bin/chown -R "$2" "$1" /bin/chgrp -R "$3" "$1" fi
Els perfils guarden la informació personal dels usuaris. En anglès s'anomenen profiles. Hi han dos tipus de perfils:
De perfils mòbils en tenim 3 tipus:
El tema dels perfils es sempre un compromís entre servei/comoditat i eficiència. Els perfils poden arribar a ocupar Gigas d'espai, el que provoca que una estació de treball Windows pugui arribar a tardar una hora en carregar.
La configuració per defecte de Samba pel que fa als perfils és la d'utilitzar perfils mòbils. Consulteu el següent apartat per saber les opcions que hi ha per tal de no utilitzar perfils mòbils.
De fet normalment no cal fer res per activar la qüestió dels perfils amb Samba. Els valors per defecte són:
logon path = \\%N\%U\profile
Aquest valor especifica on es guarden per defecte els perfils d'usuari. Del manual del fitxer smb.conf:
Per tant els perfils es guarden a una carpeta anomenada profile de la home de l'usuari. Aquesta carpeta es crea automàticament en cas de no existir durant el primer login de l'usuari.
NOTA: Que el perfil estigui a la HOME de l'usuari no és el més adequat (el pot modificar directament i després tenir problemes). Normalment la localització dels perfils es fa fora de les HOMES dels usuaris. Per exemple:
logon path = \\%L\profiles\%U
Perfils per a clients Windows 9x/Me:
Aquest clients funcionen lleugerament diferent. Utilitzen el paràmetre:
logon home = \\%N\%U
Amb aquest clients els perfils només es poden posar a la HOME. Però hi ha un truc que es fer que la HOME comenci per punt i sigui un fitxer ocult:
logon home = \\%L\%U\.profiles
Tots dos paràmetres es poden utilitzar alhora per suportat tots tipus de clients.
Es fàcil importar un perfil de Windows a Samba. A XP es pot anar al menú Start/Mi PC, botó dret, Propiedades anar a la pestanya Opciones Avançadas i aqui escollir l'opció Configuración de l'apartat perfiles de usuario i aqui escollir fer una còpia. Podrem escollir el servidor i copiar el perfil (després de autenticar-nos com a usuari Administrador del domini)
Recursos:
Hi ha 3 maneres de fer-ho:
1) Modificant el fitxer smb.conf. Cal deixar els paràmetres:
logon home =logon path =
NOTA: A la documentació de Samba posa desactivar també logon home! Si es fa així tampoc es pot accedir a la Home de l'usuari. Només cal logon path per desactivar només els perfils mòbils
En blanc.
ATENCIÓ: En blanc no és el mateix que no especificar-los. Segons el manual de smb.conf els valors per defecte són:
logon home = \\%N\%U logon path = \\%N\%U\profile
2) Modificant el registre de Windows:
Es pot utilitzar l'aplicació
gpedit.msc
Anomenada Microsoft Management Console (MMC) per indicar que la màquina client no vol utilitzar perfils mòbils. Acaba modificant el registre. El registre que es modifica és:
Local Computer Policy\ Computer Configuration\ Administrative Templates\ System\ User Profiles\
3) Canviar el tipus de perfil
Al menú Start, botó dret a My PC, seleccionem propietats i anem a la pestanya Opciones Avanzadas. Aquí seleccionem Configuració de l'apartat Perfiles de usuario i seleccionem Cambiar tipo.
Són aquells perfils amb els quals l'usuari pot fer modificacions del seu perfil però aquestes modificacions no es modificaran al finalitzar la sessió.
El procés es tan senzill com localitzar el fitxer NTUSER.DAT i renombrar-lo a NTUSER.MAN.
Recursos:
Recursos:
Es poden utilitzar les Windows Support Tools per tal de afegir-se al domini per línia d'ordre de DOS i poder obtenir més informació (utilitzant /VERBOSE) en cas d'error:
El procés encarregat de trobar un servidor de domini és el Domain Locator Process.
Comprovar els dispositius de xarxa:
C:\ netdiag /v >test.txt
Comprovar que es pot trobar el domini:
C:\Documents and Settings\Administrador>nltest /dsgetdc:INSEBRE DsGetDcName failed: Status = 1355 0x54b ERROR_NO_SUCH_DOMAIN
$ nslookup servername.childofrootdomain.rootdomain.com $ nslookup guid._msdcs.rootdomain.com
Podeu provar:
$ ipconfig /registerdns.
Una màquina que ja esta logada tindrà el nom del PDC a:
$ echo %LOGONSERVER%
El tema de les polítiques varia bastant depenent de la versió de Windows que utilitzem. Al Samba HOWTO podeu trobar les explicacions per a cada versió de Windows:
Les polítiques el que permeten es definir que pot fer cada usuari.
Windows 9x/ME Policies
Cal tenir instal·lat a windows poledit. Es pot obtenir del CD d'un Windows 95/98/Me (tools\reskit\netadmin\poledit.exe). També estaven/estan a la web de Microchoft però canvien contínuament de lloc o desapareixen....
Es poden descarregar d'una web:
Podeu utilitzar l'editor per crear un fitxer de polítiques (ntconfig.pol o config.pol) i aquest fitxer s'ha de posar al recurs compartit NELOGON. Quan l'usuari entri al sistema automàticament se li aplicaran aquestes polítiques. Es poden trobar més detalls a Windows 98 Resource Kit documentation.
També podeu utilitzar grouppol.inf. Més info a http://www.zisman.ca/poledit/.
Windows NT4-Style Policy Files:
Per crear el fitxer ntconfig.pol cal utilitzar NT Server Policy Editor (poledit.exe) que està inclòs a les versions de servidor de NT però no a les estacions de treball. També es pot tronar el Windows NT Policy Editor al Service Pack 3.
Cal tenir en compte que sovint molts valors que es modifiquen al registre local per les polítiques no es modifiquen al fer el logoff. Aquest efecte es conegut com Tatooing o Registry Spoiling i cal tenir-lo molt en compte per evitar problemes
MS Windows 200x/XP Professional Policies:
Les polítiques de Windows NT4 permeten establir paràmetres del registre per a usuaris especifics, grups o màquines que són membres d'un domini Windows NT. Aquests fitxers de polítiques també funcionen amb MS Windows 200x/XP.
A partir de MS Windows 2000 es va introduir el concepte de les Group Policy amb noves funcionalitats respecte a les polítiques de Windows NT4. Evidentment les eines per gestionar aquestes polítiques (poledit) també es van modificar.
El sistema antic de polítiques de Windows NT4 es coneix a MS Windows 2000/XP com Plantilles Administratives (Administrative Templates) dins dels Windows 2000/XP grup policies. Les noves polítiques permeten controlar els paràmetres d'Internet Explorer, canviar configuraciosn del perfil de l'usuari o indicar quines aplicacions poden utilitzar un usuari concret o un grup.
A diferència de les polítiques de NT els GPO (Group Policy Objects) no es guarden al recurs compartit [NETLOGON] sinó que es guarden al servidor Active Directory (objectes de Ldap) i en un recurs compartit anomenat SYSVOL. Aquest recurs compartit es troba als controladors de domini d'Active Directory (ja siguin PDC o BDC). La part que esta a l'Active Directory s'anomena Group Policy Container (GPC) i la que esta a SYSVOL s'anomena Group Policy Template (GPT).
Les polítiques de NT s'apliquen a l'inici de la sessió d'usuari. En canvi les GPO s'estableixen durant l'arrancada del client Windows (part de polítiques de la màquina) i quan l'usuari inicia sessió s'apliquen les polítiques específiques de l'usuari.
Amb XP l'eina poledit.exe no funciona. Podeu consultar la web http://www.zisman.ca/poledit/#NT per obtenir més informació. L'alternativa en aquests sistemes és:
gpedit.msc
Es pot executar en una línia de comandes de DOS.
Podeu obtenir més informació sobre les polítiques al 1 Samba HowTo.
Samba com a PDC NO implementa els Group Policies de MS Windows 200x/XP Professional Policies.
Recursos:
Configuració del servidor:
[global] time server = Yes dos filetimes = yes fake directory create times = yes dos filetime resolution = yes delete readonly = yes
Fitxer de logon:
net time \\sambaserver /set /yes
La sincronització de temps a màquines Unix es pot fer amb NTP.
Recursos:
IMPORTANT: Les últimes versions d'aquests fitxers amb actualitzacions i solucions d'errors els podeu trobar al subversion: http://www.iesebre.com/subversion/projectes/samba-scripts_0.1/
Consulteu els següents apartats per a veure uns scripts fets a mida que us permeten millorar certs aspectes de Samba:
Samba_com_a_PDC#Protocol_per_unir-se_al_domini._Depuraci.C3.B3_d.27errors
Llista de qüestions a comprovar:
Un exemple d'error al log:
failed to perform search; No such object at /usr/share/perl5/smbldap_tools.pm line 426. Error looking for next uid in sambaDomainName=INFOCENTRE,ou=All,dc=santabarbara,dc=com:No such object at /usr/share/perl5/smbldap_tools.pm line 1174. [2011/04/04 18:35:04.965362, 0] passdb/pdb_interface.c:348(pdb_default_create_user) _samr_create_user: Running the command `/etc/samba/scripts/machine_add -d -a "WinXP" -I "192.168.1.202" -m "provaaborrar2" -M "192.168.1.202" -w "provaaborrar2$"' gave 127
Amb nivell 2:
[2011/04/04 18:49:29.734231, 2] smbd/sesssetup.c:1390(setup_new_vc_session) setup_new_vc_session: New VC == 0, if NT4.x compatible we would close all old resources. [2011/04/04 18:49:29.735892, 2] smbd/sesssetup.c:1390(setup_new_vc_session) setup_new_vc_session: New VC == 0, if NT4.x compatible we would close all old resources. [2011/04/04 18:49:29.736228, 2] lib/smbldap.c:950(smbldap_open_connection) smbldap_open_connection: connection opened [2011/04/04 18:49:29.737152, 2] passdb/pdb_ldap.c:572(init_sam_from_ldap) init_sam_from_ldap: Entry found for user: root [2011/04/04 18:49:29.738397, 2] auth/auth.c:304(check_ntlm_password) check_ntlm_password: authentication for user [root] -> [root] -> [root] succeeded [2011/04/04 18:49:29.739412, 2] auth/token_util.c:477(create_local_nt_token) WARNING: Failed to create BUILTIN\Users group! Can Winbind allocate gids? [2011/04/04 18:49:29.797409, 0] rpc_server/srv_netlog_nt.c:669(_netr_ServerAuthenticate3) _netr_ServerAuthenticate: no challenge sent to client PROVAABORRAR2 [2011/04/04 18:49:30.057786, 2] smbd/sesssetup.c:1390(setup_new_vc_session) setup_new_vc_session: New VC == 0, if NT4.x compatible we would close all old resources. [2011/04/04 18:49:30.060053, 2] smbd/sesssetup.c:1390(setup_new_vc_session) setup_new_vc_session: New VC == 0, if NT4.x compatible we would close all old resources. [2011/04/04 18:49:30.060429, 2] lib/smbldap.c:950(smbldap_open_connection) smbldap_open_connection: connection opened [2011/04/04 18:49:30.061448, 2] passdb/pdb_ldap.c:572(init_sam_from_ldap) init_sam_from_ldap: Entry found for user: root [2011/04/04 18:49:30.062465, 2] auth/auth.c:304(check_ntlm_password) check_ntlm_password: authentication for user [root] -> [root] -> [root] succeeded [2011/04/04 18:49:30.063563, 2] auth/token_util.c:477(create_local_nt_token) WARNING: Failed to create BUILTIN\Users group! Can Winbind allocate gids? [2011/04/04 18:49:30.125259, 2] rpc_server/srv_samr_nt.c:4124(_samr_LookupDomain) Returning domain sid for domain INFOCENTRE -> S-1-5-21-4026095555-2225798725-3806780828 Error: modifications require authentication at /usr/share/perl5/smbldap_tools.pm line 1187. [2011/04/04 18:49:30.303103, 0] passdb/pdb_interface.c:348(pdb_default_create_user) _samr_create_user: Running the command `/etc/samba/scripts/machine_add -d -a "WinXP" -I "192.168.1.202" -m "provaaborrar2" -M "192.168.1.202" -w "provaaborrar2$"' gave 127
I ara un log correcte amb nivell 2:
[2011/04/04 18:52:29.372216, 2] smbd/sesssetup.c:1390(setup_new_vc_session) setup_new_vc_session: New VC == 0, if NT4.x compatible we would close all old resources. [2011/04/04 18:52:29.373886, 2] smbd/sesssetup.c:1390(setup_new_vc_session) setup_new_vc_session: New VC == 0, if NT4.x compatible we would close all old resources. [2011/04/04 18:52:29.374108, 2] lib/smbldap.c:950(smbldap_open_connection) smbldap_open_connection: connection opened [2011/04/04 18:52:29.375111, 2] passdb/pdb_ldap.c:572(init_sam_from_ldap) init_sam_from_ldap: Entry found for user: root [2011/04/04 18:52:29.376460, 2] auth/auth.c:304(check_ntlm_password) check_ntlm_password: authentication for user [root] -> [root] -> [root] succeeded [2011/04/04 18:52:29.378163, 2] auth/token_util.c:477(create_local_nt_token) WARNING: Failed to create BUILTIN\Users group! Can Winbind allocate gids? [2011/04/04 18:52:29.440896, 0] rpc_server/srv_netlog_nt.c:669(_netr_ServerAuthenticate3) _netr_ServerAuthenticate: no challenge sent to client PROVAABORRAR2 [2011/04/04 18:52:29.777142, 2] smbd/sesssetup.c:1390(setup_new_vc_session) setup_new_vc_session: New VC == 0, if NT4.x compatible we would close all old resources. [2011/04/04 18:52:29.779518, 2] smbd/sesssetup.c:1390(setup_new_vc_session) setup_new_vc_session: New VC == 0, if NT4.x compatible we would close all old resources. [2011/04/04 18:52:29.779767, 2] lib/smbldap.c:950(smbldap_open_connection) smbldap_open_connection: connection opened [2011/04/04 18:52:29.780628, 2] passdb/pdb_ldap.c:572(init_sam_from_ldap) init_sam_from_ldap: Entry found for user: root [2011/04/04 18:52:29.781542, 2] auth/auth.c:304(check_ntlm_password) check_ntlm_password: authentication for user [root] -> [root] -> [root] succeeded [2011/04/04 18:52:29.782564, 2] auth/token_util.c:477(create_local_nt_token) WARNING: Failed to create BUILTIN\Users group! Can Winbind allocate gids? [2011/04/04 18:52:29.856367, 2] rpc_server/srv_samr_nt.c:4124(_samr_LookupDomain) Returning domain sid for domain INFOCENTRE -> S-1-5-21-4026095555-2225798725-3806780828 [2011/04/04 18:52:30.087140, 2] lib/smbldap_util.c:277(smbldap_search_domain_info) smbldap_search_domain_info: Searching for:[(&(objectClass=sambaDomain)(sambaDomainName=INFOCENTRE))] [2011/04/04 18:52:30.091225, 2] passdb/pdb_ldap.c:1200(init_ldap_from_sam) init_ldap_from_sam: Setting entry for user: PROVAABORRAR2$ [2011/04/04 18:52:30.098502, 2] passdb/pdb_ldap.c:2384(ldapsam_add_sam_account) ldapsam_add_sam_account: added: uid == PROVAABORRAR2$ in the LDAP database [2011/04/04 18:52:30.100457, 2] passdb/pdb_ldap.c:572(init_sam_from_ldap) init_sam_from_ldap: Entry found for user: provaaborrar2$ [2011/04/04 18:52:30.102217, 2] passdb/pdb_ldap.c:572(init_sam_from_ldap) init_sam_from_ldap: Entry found for user: provaaborrar2$ [2011/04/04 18:52:30.104866, 2] passdb/pdb_ldap.c:572(init_sam_from_ldap) init_sam_from_ldap: Entry found for user: provaaborrar2$ [2011/04/04 18:52:30.105084, 2] passdb/pdb_ldap.c:1200(init_ldap_from_sam) init_ldap_from_sam: Setting entry for user: provaaborrar2$ [2011/04/04 18:52:30.115184, 2] passdb/pdb_ldap.c:2061(ldapsam_update_sam_account) ldapsam_update_sam_account: successfully modified uid = provaaborrar2$ in the LDAP database [2011/04/04 18:52:30.524160, 2] smbd/sesssetup.c:1390(setup_new_vc_session) setup_new_vc_session: New VC == 0, if NT4.x compatible we would close all old resources. [2011/04/04 18:52:30.526248, 2] smbd/sesssetup.c:1390(setup_new_vc_session) setup_new_vc_session: New VC == 0, if NT4.x compatible we would close all old resources. [2011/04/04 18:52:30.526445, 2] lib/smbldap.c:950(smbldap_open_connection) smbldap_open_connection: connection opened [2011/04/04 18:52:30.528338, 2] auth/token_util.c:477(create_local_nt_token) WARNING: Failed to create BUILTIN\Users group! Can Winbind allocate gids? [2011/04/04 18:52:30.538920, 2] passdb/pdb_ldap.c:572(init_sam_from_ldap) init_sam_from_ldap: Entry found for user: provaaborrar2$ [2011/04/04 18:52:30.540872, 2] passdb/pdb_ldap.c:2446(init_group_from_ldap) init_group_from_ldap: Entry found for group: 515 [2011/04/04 18:52:30.545894, 2] auth/token_util.c:477(create_local_nt_token) WARNING: Failed to create BUILTIN\Users group! Can Winbind allocate gids?
En aquest apartat anem a veure en detall els passos que segueixen una estació de treball Windows XP i un servidor Samba com a PDC per tal d'unir la màquina al domini. Treballem amb WINS (la estació de treball té com a servidor WINS el servidor SAmba PDC)
Servidor PDC i servidor Wins a la IP 192.168.1.7, la targeta de xarxa d'aquesta IP és la anomenada infocentre. La estació de treball té la IP 192.168.1.202. El servidor té nom de NETBIOS INFOCENTRESBRB i el domini és INFOCENTRE.
El propi servidor PDC s'ha de registrar com a servidor a WINS, en aquest cas el servidor WINS i el servidor PDC són la mateixa màquina.
Si executeu:
$ sudo tail -f /var/log/samba/log.nmbd
Podreu veure el log en el moment que s'inicia el servidor WINS, forçeu el reinici amb:
$ sudo service smbd restart
El resultat serà quelcom similar a:
nmbd/nmbd.c:71(terminate) Got SIGTERM: going down... [2011/04/04 16:06:09, 0] nmbd/nmbd.c:857(main) nmbd version 3.5.4 started. Copyright Andrew Tridgell and the Samba Team 1992-2010 [2011/04/04 16:06:09.999727, 0] nmbd/nmbd_logonnames.c:160(add_logon_names) add_domain_logon_names: Attempting to become logon server for workgroup INFOCENTRE on subnet 192.168.1.7 [2011/04/04 16:06:09.999786, 0] nmbd/nmbd_logonnames.c:160(add_logon_names) add_domain_logon_names: Attempting to become logon server for workgroup INFOCENTRE on subnet 10.139.29.227 [2011/04/04 16:06:09.999948, 0] nmbd/nmbd_logonnames.c:160(add_logon_names) add_domain_logon_names: Attempting to become logon server for workgroup INFOCENTRE on subnet UNICAST_SUBNET [2011/04/04 16:06:09.999994, 0] nmbd/nmbd_become_dmb.c:337(become_domain_master_browser_wins) become_domain_master_browser_wins: Attempting to become domain master browser on workgroup INFOCENTRE, subnet UNICAST_SUBNET. [2011/04/04 16:06:10.000027, 0] nmbd/ nmbd_become_dmb.c:351(become_domain_master_browser_wins) become_domain_master_browser_wins: querying WINS server from IP 10.139.29.227 for domain master browser name INFOCENTRE<1b> on workgroup INFOCENTRE [2011/04/04 16:06:14.007585, 0] nmbd/nmbd_logonnames.c:121(become_logon_server_success) become_logon_server_success: Samba is now a logon server for workgroup INFOCENTRE on subnet 192.168.1.7 [2011/04/04 16:06:14.007653, 0] nmbd/nmbd_logonnames.c:121(become_logon_server_success) become_logon_server_success: Samba is now a logon server for workgroup INFOCENTRE on subnet 10.139.29.227 [2011/04/04 16:06:15.009029, 0] nmbd/nmbd_logonnames.c:121(become_logon_server_success) become_logon_server_success: Samba is now a logon server for workgroup INFOCENTRE on subnet UNICAST_SUBNET [2011/04/04 16:06:15.009296, 0] nmbd/nmbd_become_dmb.c:110(become_domain_master_stage2) ***** Samba server INFOCENTRESBRB is now a domain master browser for workgroup INFOCENTRE on subnet UNICAST_SUBNET ***** [2011/04/04 16:06:15.009341, 0] nmbd/nmbd_become_dmb.c:292(become_domain_master_browser_bcast) become_domain_master_browser_bcast: Attempting to become domain master browser on workgroup INFOCENTRE on subnet 192.168.1.7 [2011/04/04 16:06:15.009363, 0] nmbd/nmbd_become_dmb.c:305(become_domain_master_browser_bcast) become_domain_master_browser_bcast: querying subnet 192.168.1.7 for domain master browser on workgroup INFOCENTRE [2011/04/04 16:06:15.009404, 0] nmbd/nmbd_become_dmb.c:292(become_domain_master_browser_bcast) become_domain_master_browser_bcast: Attempting to become domain master browser on workgroup INFOCENTRE on subnet 10.139.29.227 [2011/04/04 16:06:15.009428, 0] nmbd/nmbd_become_dmb.c:305(become_domain_master_browser_bcast) become_domain_master_browser_bcast: querying subnet 10.139.29.227 for domain master browser on workgroup INFOCENTRE [2011/04/04 16:06:23.018876, 0] nmbd/nmbd_become_dmb.c:110(become_domain_master_stage2) ***** Samba server INFOCENTRESBRB is now a domain master browser for workgroup INFOCENTRE on subnet 192.168.1.7 ***** [2011/04/04 16:06:23.018935, 0] nmbd/nmbd_become_dmb.c:110(become_domain_master_stage2) ***** Samba server INFOCENTRESBRB is now a domain master browser for workgroup INFOCENTRE on subnet 10.139.29.227 ***** [2011/04/04 16:06:31.028454, 0] nmbd/nmbd_become_lmb.c:395(become_local_master_stage2) ***** Samba name server INFOCENTRESBRB is now a local master browser for workgroup INFOCENTRE on subnet 192.168.1.7 ***** [2011/04/04 16:06:31.028637, 0] nmbd/nmbd_become_lmb.c:395(become_local_master_stage2) ***** Samba name server INFOCENTRESBRB is now a local master browser for workgroup INFOCENTRE on subnet 10.139.29.227 *****
Si tot és correcte el resultat ha de ser que a la base de dades WINS ha d'haver-hi les següents entrades:
$ cat /var/lib/samba/wins.dat | grep INFOCENTRE "INFOCENTRE#1e" 1302185170 0.0.0.0 e4R "INFOCENTRESBRB#00" 1302185175 192.168.1.7 10.139.29.227 66R "INFOCENTRESBRB#03" 1302185175 192.168.1.7 10.139.29.227 66R "INFOCENTRE#1b" 1302185175 192.168.1.7 10.139.29.227 64R "INFOCENTRE#00" 1302185170 0.0.0.0 e4R "INFOCENTRESBRB#20" 1302185175 192.168.1.7 10.139.29.227 66R "INFOCENTRE#1c" 1302185170 192.168.1.7 10.139.29.227 e4R
Fixeu-vos sobretot en l'última entrada que registra que el servidor PDC està a la màquina 192.168.1.7.
Vegem un exemple en que no es troba servidor PDC del domini
$ sudo tcpdump -ni infocentre tcpdump: verbose output suppressed, use -v or -vv for full protocol decode listening on infocentre, link-type EN10MB (Ethernet), capture size 65535 bytes ... 15:33:20.687038 IP 192.168.1.202.137 > 192.168.1.7.137: NBT UDP PACKET(137): REGISTRATION; REQUEST; UNICAST 15:33:20.687177 IP 192.168.1.7.137 > 192.168.1.202.137: NBT UDP PACKET(137): REGISTRATION; POSITIVE; RESPONSE; UNICAST 15:33:20.688829 IP 192.168.1.202.137 > 192.168.1.7.137: NBT UDP PACKET(137): RELEASE; REQUEST; UNICAST 15:33:20.688874 IP 192.168.1.7.137 > 192.168.1.202.137: NBT UDP PACKET(137): RELEASE; POSITIVE; RESPONSE; UNICAST 15:33:20.697451 IP 192.168.1.202.137 > 192.168.1.7.137: NBT UDP PACKET(137): QUERY; REQUEST; UNICAST 15:33:20.697482 IP 192.168.1.7.137 > 192.168.1.202.137: NBT UDP PACKET(137): QUERY; NEGATIVE; RESPONSE; UNICAST 15:33:20.713128 IP 192.168.1.202.137 > 192.168.1.255.137: NBT UDP PACKET(137): QUERY; REQUEST; BROADCAST 15:33:21.466136 IP 192.168.1.202.137 > 192.168.1.255.137: NBT UDP PACKET(137): QUERY; REQUEST; BROADCAST 15:33:22.215248 IP 192.168.1.202.137 > 192.168.1.255.137: NBT UDP PACKET(137): QUERY; REQUEST; BROADCAST
El primer que fa la màquina és registrar-se, és a dir posar a la base de dades centralitzada WINS el seu nom de màquina:
Consulteu el fitxer /var/lib/samba/wins.dat:
$ cat /var/lib/samba/wins.dat
Abans d'intentar unir la màquina al domini.
NOTA: Pot ser que la màquina ja estigues registrada, el millor que podeu fer és canviar-li el nom just abans de intentar unir-la al domini
Les línies on es veu el registre són:
15:33:20.687038 IP 192.168.1.202.137 > 192.168.1.7.137: NBT UDP PACKET(137): REGISTRATION; REQUEST; UNICAST 15:33:20.687177 IP 192.168.1.7.137 > 192.168.1.202.137: NBT UDP PACKET(137): REGISTRATION; POSITIVE; RESPONSE; UNICAST 15:33:20.688829 IP 192.168.1.202.137 > 192.168.1.7.137: NBT UDP PACKET(137): RELEASE; REQUEST; UNICAST 15:33:20.688874 IP 192.168.1.7.137 > 192.168.1.202.137: NBT UDP PACKET(137): RELEASE; POSITIVE; RESPONSE; UNICAST
Observeu que tot és correcte (respostes POSITIVE).
Després es consulta pel servidor PDC:
15:33:20.697451 IP 192.168.1.202.137 > 192.168.1.7.137: NBT UDP PACKET(137): QUERY; REQUEST; UNICAST 15:33:20.697482 IP 192.168.1.7.137 > 192.168.1.202.137: NBT UDP PACKET(137): QUERY; NEGATIVE; RESPONSE; UNICAST
Com la resposta és negativa es fa la pregunta per broadcast a tot el segment de xarxa:
15:33:20.713128 IP 192.168.1.202.137 > 192.168.1.255.137: NBT UDP PACKET(137): QUERY; REQUEST; BROADCAST 15:33:21.466136 IP 192.168.1.202.137 > 192.168.1.255.137: NBT UDP PACKET(137): QUERY; REQUEST; BROADCAST 15:33:22.215248 IP 192.168.1.202.137 > 192.168.1.255.137: NBT UDP PACKET(137): QUERY; REQUEST; BROADCAST
Si el servidor PDC està al mateix segment de xarxa ell mateix podria respondre a la consulta. El mateix, però amb una mica més d'informació podeu obtenir si feu la captura amb wireshark:
Al detall podeu veure que l'error és dona per què s'està preguntant pel domini incorrecte!: INSEBRE!
Cal tenir en compte que els usuaris que prèviament havien iniciat sessió a l'ordinador local estan "cachejats" i entraran igualment:
http://support.microsoft.com/default.aspx?scid=KB;EN-US;q172931
Recursos:
Els protocols de Windows i el NAT no són gaire amics:
TODO
Els clients Windows al fer una petició de WINS poden tenir com a resposta múltiples adreces IP per a aquells servidors samba que tenen múltiples adreces IP. Quina adreça escollirà el client és un misteri o no és previsible a priori. Per tant, cal que els clients tinguin accés a totes les adreces IP sense problemes. Això implica tenir bé les rutes i també vigilar amb el paràmetre rp_filter, tant al servidor Samba com a qualsevol router que estigui entre el client i el DC.
Vegeu rp_filter per tal de desconfigurar aquesta opció.
Lo important no és pertanyer al "nom" del grup sinó el SID del grup. En el meu cas era un problema provocat pel Gosa, que al moure de lloc els grups de domini es hi perd el SID!. A:
DN: cn=Administrators,ou=groups,ou=GrupsDomini,ou=Grups,ou=All,dc=iesmontsia,dc=org
El camp SID estava amb:
-514
Cal posar:
S-1-5-32-544
Hi ha una sèrie de SIDS ben coneguts i que són per defecte (al igual que en Unix el root sempre té el UID 0). Consulteu:
http://support.microsoft.com/kb/243330
Si esteu treballant amb Samba realment el que voleu es treballar amb WINS i no pas amb DNS. Comproveu el següent:
"Un cop unit al domini, en reiniciar l'equip i provar de fer el login, el desplegable del domini es queda buscant i al final no troba cap doimi"
Cal assegurar-nos, amb l'ús de l'Apache Directoty Studio, que els valors del gid Number i uidNumber, de la configuració del domini, no estiguin entrant en conflicte amb els uid's dels usuaris locals. Per tal d'evitar-ho, a la carpeta sambaDomainName canviar el valor d'aquests paràmetres per de 2000 (es pot posar un altre, depén del centre. El canvi es fa amb l'APDS, i loa carpeta hauria d'estar dins de ou=All)
"La xarxa no esta instal·lada o no esta configurada correctament"
I was able to fix the problem by removing and re-installing the machine's Client for Microsoft Networks, as follows:
$ sudo net getdomainsid
Apunteu el SSID que us doni per al domini i assigneu-lo localment al PDC:
$ sudo net setlocalsid S-1-5-21-1539791675-2192341285-2760677840
Si no teniu Ldap utilitzeu:
$ smbpasswd
Si teniu Ldap podeu utilitzar:
$ smbldap-passwd
En el meu cas passava per estar utilitzant la creació automàtica de Homes a Samba:
Samba#Crear_Home_i_profiles_a_la_primera_connexi.C3.B3
però sense la creació automàtica de homes a Linux:
PAM#Crear_la_home_de_l.27usuari_durant_el_primer_login
NOTA: L'efecte era curiós per què l'usuari i la paraula de pas eren correctes per a Unix però no funcionava a Windows/Samba (només entrava senes paraula de pas). Al entrar un primer cop com a usuaris Linux ja passava a funcionar...
When troubleshooting your Samba server with tcpdump, available at http://www.tcpdump.org, the best use is something like:
tcpdump −ln −vv host 192.168.1.1 | tee tcpdump.samba
While analyzing your data, you may come across an error message similar to: WARNING: Short packet. Try increasing the snap length
This actually has nothing to do with Samba, however it comes up a lot. It's tcpdump itself complaining about snaplen (−s <number>) being shorter than at least one packet during its capture. Again, it has nothing to do with Samba; it's harmless and can be ignored.
Extret de:
Consulteu els fitxers de log de Windows:
C:\WINDOWS\Debug\NetSetup.log
Al fitxer:
C:\WINDOWS\Debug\NetSetup.log.
Busqueu la línia:
NetpDoDomainJoin: status: CODI_RETORN
On si tot ha anat bé el codi de retorn a de ser 0x00, sinó us dona el codi d'error. Per exemple:
... NetpDsGetDcName: trying to find DC in domain 'INSEBRE', flags: 0x1020 01/08 09:33:33 NetpDsGetDcName: failed to find a DC in the specified domain: 0x54b 01/08 09:33:33 NetpDoDomainJoin: status: 0x54
Consulteu també:
#Comprovacions i TroubleShooting al afegir una màquina al domini
Recursos:
Tallafocs
Per identificar si el problema que tenim al intentar afegir una màquina al domini és culpa del firewall l'interessant és desconnectar-los temporalment. Si al desconnectar funciona ja sabeu que el firewall és la causa de l'error.
Al servidor Samba si teniu un firewall heu d'obrir els ports de Netbios:
$ cat /etc/services | grep NETBIOS netbios-ns 137/tcp # NETBIOS Name Service netbios-dgm 138/tcp # NETBIOS Datagram Service netbios-ssn 139/tcp # NETBIOS session service
I CIFS:
$ cat /etc/services | grep CIFS microsoft-ds 445/tcp # Microsoft Naked CIFS
Als clients Windows el firewall activat també podria ser un problema per afegir la màquina al domini.
Eines de diagnostic de Windows:
Podeu utilitzar dcdiag i netdiag. Els podeu trobar al CD de Windows XP Professional (jo he provat amb SP3), formen part de Windows Support Tools els trobareu a la carpeta del CD:
D:\SUPPORT\TOOLS
Executeu el fitxer setup.exe per instal·lar les Support Tools amb un assistent (wizard).
Altres enllaços (a mi no m'ha funciona bé dcdiag amb aquest enllaç)
http://download.microsoft.com/download/win2000platform/update/5.0.2195.2103/nt5/en-us/dcdiag_setup.exe http://download.microsoft.com/download/win2000platform/update/5.0.2195.2101/nt5/en-us/netdiag_setup.exe
No troba el domini:
Consulteu:
Comprovar WINS i resol·lució de noms:
Comproveu el sufix de netbios 1B (Indica quin és el Domain Master Browser) per al nom del domini:
$ nmblookup -R -U 192.168.0.8 INSEBRE#1B querying INSEBRE on 192.168.0.8 192.168.0.8 INSEBRE<1b> 172.16.0.3 INSEBRE<1b>
On
-U SERVIDOR_WINS
Ara comproveu el sufix de netbios 1C que us ha de mostrar tots els DC (registre de grup):
$ nmblookup -R -U 192.168.0.8 INSEBRE#1C querying INSEBRE on 192.168.0.8 192.168.0.8 INSEBRE<1c> 192.168.0.6 INSEBRE<1c> 192.168.0.3 INSEBRE<1c> 192.168.30.3 INSEBRE<1c> 192.168.20.3 INSEBRE<1c> 172.16.0.3 INSEBRE<1c>
A l'exemple anterior hi ha 3 servidors possibles (amb dos IP cadascun).
Si no teniu WINS l'intent de resoldre el nom de domini es farà per broadcast:
$ nmblookup -M INSEBRE querying INSEBRE on 192.168.111.255 querying INSEBRE on 10.36.253.31 name_query failed to find name INSEBRE#1d
A l'exemple anterior el DC no està al mateix segment de xarxa.
Comprovar que tot és correcte:
Suposem un domini amb les comptes d'usuari a Ldap. Al afegir una màquina al domini, s'ha de crear un compte de Linux equivalent al servidor PDC:
$ sudo getent passwd | grep "\\$" | more pc0depciencies$:*:3064:515:Computer:/dev/null:/bin/false pc1depciencies$:*:3065:515:Computer:/dev/null:/bin/false pc2depciencies$:*:3066:515:Computer:/dev/null:/bin/false pc3depciencies$:*:3067:515:Computer:/dev/null:/bin/false pc0depedifobra$:*:3070:515:Computer:/dev/null:/bin/false
Haurien de ser comptes de Ldap, no locals!
$ sudo cat /etc/passwd | grep "\\$"
Ha de tornar res.
Si utilitzeu Gosa les màquines les trobareu a algun lloc similar a:
ou=Computers,dc=iesebre,dc=com
Els objectes LDAP Computer són similars a:
version: 1 dn: uid=a10cano$,ou=Computers,dc=iesebre,dc=com objectClass: top objectClass: account objectClass: posixAccount objectClass: sambaSamAccount cn: a10cano$ gidNumber: 515 homeDirectory: /dev/null sambaSID: S-1-5-21-4045161930-1404234508-1517741366-1194 uid: a10cano$ uidNumber: 3443 description: Computer displayName: A10CANO$ gecos: Computer loginShell: /bin/false sambaAcctFlags: [W ] sambaNTPassword: 09B737AD270EA0539A66CD0D7B4FB4B4 sambaPwdLastSet: 1285228280
Client Windows:
Per tenir més informació, des de DOS executeu:
C:\Archivos de programa\Support Tools>nltest /dsgetdc:INSEBRE DC: \\LINUX Address: \\LINUX Dom Name: INSEBRE The command completed successfully
Virtual_Box#Pantallazo_blau_.28BSOD_Blue_Screen_Of_Death.29_al_canviar_el_nom_de_m.C3.A0quina_de_Windows
Podent haver-hi diverses raons per les quals no tindrem permisos per afegir una màquina al domini d'un PDC Samba.
invalid users= root:
Si ens dona un error de permisos intentant afegir una màquina al domini i veiem el següent error al fitxer de log del client:
$ tail -f /var/log/samba/log.winvirtualbox ... [2008/03/17 11:58:10, 2] smbd/service.c:make_connection_snum(616) user 'root' (from session setup) not permitted to access this share (IPC$)
És molt possible que tinguem el següent paràmetre al fitxer /etc/samba/smb.conf:
invalid users = root
La màquina client no té una Machine Trust Account (MTA):
Consulteu l'apartat #Machine Trust Accounts (MTA).
Podeu depurar aquests tipus d'errors veient el fitxer de log del client. Imagineu un client amb nom de NetBIOS winvirtualbox. Per veure el fitxer de log podeu executar:
$ tail -f /var/log/samba/log.winvirtualbox
Si tot va bé el missatge hauria de ser:
... amr_create_user: Running the command `/usr/sbin/useradd -d /var/lib/nobody -G machines -s /bin/false -M winvirtualbox$' gave 2 useradd: avís: el directori personal ja existeix. No s'hi copiarà cap fitxer del directori skel.
Abans de canviar el nom d'un domini és important obtenir una copia del SID:
$ sudo net getlocalsid ANTIC_DOMINI
o
$ sudo net getdomainsid
Per exemple:
$ sudo net getdomainsid SID for local machine PORTATIL is: S-1-5-21-1625948441-560733958-1016545522 SID for domain CURSICE is: S-1-5-21-4239967304-1649332975-1240260716
Un cop heu canviat el domini podeu tornar a restaurar el SID amb la comanda:
$ sudo net setlocalsid 'SID'
Cal assegurar-se de que l'usuari pot escriure a la carpeta on es guarden als perfils. Si es guarda a la home cap problema però si per exemple es modifica Samba amb:
logon path = \\%L\profiles\%u
[profiles] comment = Perfils de Windows path = /etc/samba/profiles read only = No create mask = 0600 directory mask = 0700 browseable = No
Noteu l'opció read only = no. Els permisos de la carpeta Unix també són importants:
# ls -la /etc/samba/profiles/ total 16
El més adequat és 777 que es pot establir amb:
$ sudo chmod 777 /etc/samba/profiles/
Afegim a l'apartat [global] l'opció:
domain logons = Yes
Creeu el fitxer:
/etc/samba/smbusers
Amb el següent contingut:
#### # User mapping file #### # File Format # ----------- # Unix_ID = Windows_ID # # Examples: # root = Administrator # janes = "Jane Smith" # jimbo = Jim Bones # # Note: If the name contains a space it must be double quoted. # In the example above the name 'jimbo' will be mapped to Windows # user names 'Jim' and 'Bones' because the space was not quoted. ####################################################################### root = Administrator #### # End of File ####
Això permet que els usuaris de Windows utilitzin l'usuari Administrator com a root. Ho activem afegint la línia:
username map = /etc/samba/smbusers
A l'apartat [global] del fitxer de configuració de samba.
Ara cal crear la paraula de pas per a l'usuari root a Samba:
$ sudo smbpasswd root
Podeu comprovar si funciona amb la comanda:
$ smbclient -U root -L ACACHA
Nota: Cal tenir en compte l'error típic de tenir activada l'opció: invalid users= root:
Ara mapegem els grups. Podem crear un fitxer com:
$ sudo joe initGrps.sh
#!/bin/bash # # initGrps.sh # # Create UNIX groups groupadd alumnes groupadd profes # Mapa d'usuaris essencials de Windows net groupmap add ntgroup="Domain Admins" unixgroup=root rid=512 type=d net groupmap add ntgroup="Domain Users" unixgroup=users rid=513 type=d addgroup nobody net groupmap add ntgroup="Domain Guests" unixgroup=nobody rid=514 type=d # Altres grups de domini net groupmap add ntgroup="Alumnes" unixgroup=alumnes type=d net groupmap add ntgroup="Profes" unixgroup=profes type=d
Fem el fitxer executable:
$ chmod 755 initGrps.sh
També cal configurar el servidor com a Domain Master Browser.
Superscript text