IMPORTANT: Per accedir als fitxer de subversion: http://acacha.org/svn (sense password). Poc a poc s'aniran migrant els enllaços. Encara però funciona el subversion de la farga però no se sap fins quan... (usuari: prova i la paraula de pas 123456)

http://qtsmbstatus.free.fr/index.php?page=home
http://www.likewise.com

Nitrobit

Alert.png Aquesta wiki forma part dels materials d'un curs
Curs: SambasobreLDAP, LinuxAdministracioAvancada
Fitxers: Sessio4.pdf,

Sessio5.pdf,Sessio6.pdf,AutenticacioiAutoritzacionsLinux.pdf

Repositori SVN: https://anonymous@svn.projectes.lafarga.cat/svn/iceupc/SambaSobreLDAP
Usuari: anonymous
Paraula de pas: sense paraula de pas
Autors: Sergi Tur Badenas, Lluís Pérez Vidal

Contingut

Samba. Introducció

Breu història. Origen del nom

Samba va ser crear per w:Andrew Tridgell Andrew Tridgell durant finals del 1991, principis del 1992,. Andrew Tridgell també es conegut per ser el co-inventor de l'algorisme d'rsync.

Inicialment SAMBA s'anomenava smbserver però per problemes amb una altra empresa que tenia aquesta marca registrada, van haver de canviar el nom. Per obtenir el nou nom van buscar una paraula al diccionari de Linux que contingués les lletres SMB:

$ grep -i '^s.*m.*b' /usr/dict/words
salmonberry
samba
sawtimber
scramble
....

I així va néixer Samba.

Recursos:

Protocols implementats per SAMBA

Samba implementa forces serveis i protocols:

  • NT Domain Logons

Protocol NetBeui (NetBIOS Extended User Interface)

Protocol de xarxa que utilitzava Windows en els anys 90 (versions de Windows 3.x, Windows 95 i Windows NT) i també utilitzat per altres S.O. como LAN Manager o LAN Server. No s'ha de confondre amb NetBIOS de fet és una de les possibles implementacions de NetBIOS sobre diferents tipus de xarxes:

  • NetBIOS sobre IPX/SPX
  • NetBIOS sobre TCP/IP: Aquest és un dels protocols que suporta Samba.
  • NetBIOS over NetBeui

NetBEUI no suporta encaminament i per tant només és pot utilitzar entre màquines del mateix segment de xarxa i per tant no és un protocol recomanable per a grans xarxes. Per poder utilitzar NetBIOS s'ha d'implementar en xarxes grans s'ha d'utilitzar sobre altres protocols com IPX o TCP/IP.

Tot i que esta molt associat a Windows aquest protocol va néixer a IBM. Microsoft no dona suport a NetBEUI des de Windows XP (tot i que es pot instal·lar mitjançant el CD).

Protocol NetBIOS

NetBIOS, "Network Basic Input/Output System" és una especificació d'interfície (programari) per l'accés a serveis de xarxa entre màquines amb independència del maquinari de xarxa que utilitzin. Va néixer al 1984 de la mà d'IBM com una API per dissenyar aplicacions de xarxa.

Recursos:

Els següent apartat mostren el detall dels serveis que proporciona NetBIOS:

$ cat /etc/services | grep netbios
netbios-ns      137/tcp                         # NETBIOS Name Service
netbios-ns      137/udp
netbios-dgm     138/tcp                         # NETBIOS Datagram Service
netbios-dgm     138/udp
netbios-ssn     139/tcp                         # NETBIOS session service
netbios-ssn     139/udp

NetBIOS pot establir connexió entre dues màquines de dues formes diferents:

NetBIOS Name Service (NBNS)

Consulteu l'article sobre NetBIOS Name Server.

NetBIOS Datagram Service

Un servei tipus datagrama és un servei no orientat a connexió (similar al que passa amb UDP). Els paquets s'envien directament al destinatari sense preocupar-se per l'ordre en que arribin i sense control d'errors ni reenviaments. És un sistema més ràpid que el sistema NetBIOS de sessió però menys fiable.

Ports:

$ cat /etc/services | grep netbios-dgm
netbios-dgm     138/tcp                         # NETBIOS Datagram Service
netbios-dgm     138/udp


NETBIOS session service

Un servei tipus sessió és un servei orientat a connexió. Permet control dels errors i els paquets s'envien de forma ordenada a través d'una connexió. Similar a una trucada telefònica. És un sistema més lent i complex d'implementar per però més fiable.

Ports:

$ cat /etc/services | grep netbios-ssn
netbios-ssn     139/tcp                         # NETBIOS session service
netbios-ssn     139/udp

Dominis Windows i grups de treball

Domini Windows:

També anomenats:

  • Windows Server domain /Domini Servidor de Windows
  • Windows NT Domain / Domini Windows NT

És una agrupació lògica de màquines de xarxa que comparteixen un base de dades de directori centralitzada. Aquest model segueix una model d'arquitectura de xarxa centralitzada Client/Servidor on múltiples clients comparteixen un base de dades centralitzada localitzada en un o més servidors de domini.

La base de dades s'anomena Active Directory (des de Windows 2000). També se l'havia anomenat NT Directory Services o NTDS a Windows NT. Aquesta base de dades pot contenir:

  • Comptes d'usuari
  • Informació de seguretat dels recursos del domini. Control d'accés dels usuaris als recursos.

Les màquines que tenen aquesta base de dades s'anomenen Controladors de domini (Domain Controllers).

Aquest tipus de sistemes normalment s'utilitzen en empreses i/o organitzacions mitjanes/grans.

Avantatges:

  1. Administració centralitzada: El domini sencer es pot administrar des de una sola base de dades.
  2. Single Logon Process: El control d'accés als recursos es pot fer amb un sol login.
  3. 'Escalabilitat: És un sistema més escalable.

Inconvenients:

  • Els típics dels sistemes centralitzats (si cau el servidor cau tota la xarxa).

Grups de treball:

Els grups de treball (Windows Workgroups) és un altre model d'agrupació lògica de màquines en xarxa que segueix un paradigma Peer-To-Peer. En una xarxa amb grups de treball no hi ha servidors principals i totes les màquines tenen entre si una relació d'igual a igual. Les màquines són independents (standalone) i no comparteixen una base de dades com en el cas dels dominis.

Els grups de treball són considerats més útils per a xarxes petites.

NOTA: Abans dels grups de treball existia l'opció d'utilitzar NBT Scope

Recursos:

Windows Network Neighborhood. Xarxa de Windows

Consulteu Configuració_Samba_Browsing#Windows_Network_Neighborhood._Xarxa_de_Windows.

Vegeu també WINS.

Protocol SMB/CFIS

Server Message Block (SMB) és un protocol de nivell d'aplicació. S'utilitza principalment per compartir fitxers, impressores i altres recursos en xarxes Windows. SMB proporciona un sistema d'autenticació i és la principal diferència que té respecte a NFS.

Aquest protocol va ser creat per IBM a finals dels 80 i modificat per Windows n-èsimes vegades. Utilitza NetBIOS per funcionar, en les seves primeres versions sobre NetBeui, després NetBIOS sobre TCP/IP i finalment directament sobre TCP/IP. Al 1996 Micro$soft va renombrar SMB a Common Internet File System (CIFS) i amb Windows Vista a tornat a canviar el nom (ara s'anomena SMB 2.0).

Versions (dialectes) de SMB:

Microsoft ha introduït múltiples modificacions a SMB i per aquesta raó tenim múltiples dialectes de SMB. LAN Manager (LM) és un sistema operatiu de xarxa desenvolupat per Microsoft juntament amb 3com. Windows va utilitzar LM per introduir "coses" a SMB. Per exemple, les paraules de pas de Windows es basen en LM i són molt conegudes per la seva vulnerabilitat (es poden crackejar en qüestió de segons utilitzant Rainbow Tables i eines com Ophcrack).

Podeu trobar un gràfic interessant sobre els protocols de xarxa de Windows a:

  • img00002-new.jpg

I una taula a la pàgina:

Passos d'una connexió SMB

  1. Establir una sessió de NetBIOS (nivell de sessió). És molt important que NetBIOS i concretament la resolució de noms de NetBIOS funcioni correctament
  2. Negociar la variant (dialecte) del protocol. Dos màquines Windows Vista utilitzaran SMB 2.0. Una Windows Vista i una versió anterior de Windows (o Samba) utilitzaran el dialecte més antic.
  3. Establir els paràmetres de sessió i connectar amb el recurs. Els paràmetres són:
  • El nom de compte i paraula de pas (si s'escau)
  • El nom del grup de treball
  • Altres paràmetres...

Nivells de seguretat en SMB/CIFS:

Només hi han dos nivells de seguretat en SMB:

  • User-level: protecció a nivell de recurs compartit. Cada recurs compartit pot tenir una paraula d'accés que protegeix tots els fitxers del recurs compartit. Primer sistema de seguretat utilitzat amb SMB
  • Share-level: la protecció s'aplica a cada fitxer compartit i es basa en drets d'accés de l'usuari. Els usuaris s'han d'autenticar al servidor. Un cop identificat el client se li assigna un UID que s'utilitza en els subsegüents accessos al servidor.

Recursos:

SMB 2.0

Introduït a Windows Vista.

  • És compatible endarrere amb SMB.

NOTA: A Windows 7 teniu la versió 2.1 de SMB

Ports utilitzats

Port 139 i port 445

Quan utilitza Windows 2000/XP/2003 el port 445 i quan utilitza 139?

Sí el client que es vol connectar a un recurs remot utilitza NetBT (Netbios sobre TCP/IP) sempre tractarà de connectar-se al servidor tant al port 139 com al 445 de forma simultània. Si hi ha una resposta del ports 445, al port 139 s'envia un RST (reset Flag de TCP) i la sessió continua el seu funcionament només pel port 445.

Sinó hi ha resposta del port 445, només continuarà la sessió des del port 139.

Si NETBT està desactivar, sempre intentarà connectar-se al port 445.

Si el servidor té NetBT activat, aleshores escolta només peticions UDP als ports 137,138, 139 i 445. Si té NetBT desactivat, aleshores només escolta peticions al port 445.

Active Directory

Active Directory (AD) és la implementació de Micro$oft dels serveis de directori de LDAP i s'utilitza com a base de dades centralitzada per a serveis d'autorització i autenticació.

Abans de l'anomenava NTDS (NT Directory Service).

La base de dades centralitzada permet organitzar els recursos en grups o unitats.

Recursos:

Altres serveis de directori

Glossari

Usos de SAMBA

Per a que és pot utilitzar Samba? Samba primordialment permet a màquines UNIX/Linux i Windows coexistir en la mateixa xarxa.

Samba pot ser útil per a:

  • No és pot pagar un servidor Windows però es necessiten les seves funcionalitats
  • Les llicències per client que accedeix al servidor Windows (Client Access Licenses CALs) que requereix Microsoft per cada client Windows que es connecta la servidor són massa cares.
  • Per proveir una àrea de dades comuna per fer una transició de Windows A linux
  • Per compartir impressores entre xarxes Windows i xarxes Linux.
  • Per una xarxa amb diferents sistemes operatius en els clients.
  • Per integrar la autenticació d'usuaris tant en Unix com en Windows
  • Per integrar a la xarxa altres sistemes operatius

Tècnicament ens permet:

  • Compartir parts d'un sistema de fitxers (carpetes)
  • Control d'accés als Recursos:
    • Shared
    • User
  • Compartir impressores
  • Servidor de resolució de noms NetBios (WINS)

Servidor SAMBA

Instal·lació

Per instal·lar samba hem d'instal·lar:

$ sudo apt-get install samba 
S'està llegint la llista de paquets… Fet 0%
S'està construint l'arbre de dependències       
S'està llegint la informació de l'estat… Fet%
Empreu «apt-get autoremove» per a suprimir-los.
S'instaŀlaran els següents paquets extres:
 libfile-copy-recursive-perl tdb-tools update-inetd
Paquets suggerits:
 openbsd-inetd inet-superserver smbldap-tools ldb-tools ctdb
S'instaŀlaran els paquets NOUS següents:
 libfile-copy-recursive-perl samba tdb-tools update-inetd
0 actualitzats, 4 nous a instaŀlar, 0 a suprimir i 0 no actualitzats.
S'ha d'obtenir 8105 kB d'arxius.
Després d'aquesta operació s'empraran 23,7 MB d'espai en disc addicional.
Voleu continuar [S/n]? s
Bai:1 http://es.archive.ubuntu.com/ubuntu/ precise/main libfile-copy-recursive-perl all 0.38-1 [20,6 kB]
Bai:2 http://es.archive.ubuntu.com/ubuntu/ precise/main update-inetd all 4.41 [19,5 kB]
Bai:3 http://es.archive.ubuntu.com/ubuntu/ precise-updates/main samba amd64 2:3.6.3-2ubuntu2.3 [8042 kB]
Bai:4 http://es.archive.ubuntu.com/ubuntu/ precise/main tdb-tools amd64 1.2.9-4 [23,2 kB]
S'ha baixat 8105 kB en 4s (1731 kB/s)
S'estan preconfigurant els paquets...
Selecting previously unselected package libfile-copy-recursive-perl.
(S'està llegint la base de dades… hi ha 106031 fitxers i directoris instaŀlats actualment.)
S'està desempaquetant libfile-copy-recursive-perl (de …/libfile-copy-recursive-perl_0.38-1_all.deb)…
Selecting previously unselected package update-inetd.
S'està desempaquetant update-inetd (de …/update-inetd_4.41_all.deb)…
Selecting previously unselected package samba.
S'està desempaquetant samba (de …/samba_2%3a3.6.3-2ubuntu2.3_amd64.deb)…
Selecting previously unselected package tdb-tools.
S'està desempaquetant tdb-tools (de …/tdb-tools_1.2.9-4_amd64.deb)…
S'estan processant els activadors per a man-db…
S'estan processant els activadors per a ufw…
S'estan processant els activadors per a ureadahead…
ureadahead will be reprofiled on next reboot
S'està configurant libfile-copy-recursive-perl (0.38-1)…
S'està configurant update-inetd (4.41)…
S'està configurant samba (2:3.6.3-2ubuntu2.3)…
Generating /etc/default/samba...
Importing account for nobody...ok
Importing account for sergi...ok
Importing account for sergiprova...ok
Importing account for santi...ok
Importing account for ebrecom...ok
Importing account for oscar.alavedra...ok
update-alternatives: s'està emprant /usr/bin/smbstatus.samba3 per a proveir /usr/bin/smbstatus (smbstatus) a «mode automàtic».
smbd start/running, process 2122
nmbd start/running, process 2156
S'està configurant tdb-tools (1.2.9-4)…
update-alternatives: s'està emprant /usr/bin/tdbbackup.tdbtools per a proveir /usr/bin/tdbbackup (tdbbackup) a «mode automàtic». 

Podem consultar els fitxers que instal·la bind amb la comanda:

$ dpkg -L 

Tenim les següents comandes/aplicacions/servidors:

$ dpkg -L samba | grep bin
/usr/bin
/usr/bin/eventlogadm
/usr/bin/smbstatus
/usr/bin/smbcontrol
/usr/bin/profiles
/usr/bin/tdbbackup
/usr/bin/pdbedit
/usr/sbin
/usr/sbin/smbd
/usr/sbin/nmbd
/usr/sbin/mksmbpasswd

I els següents fitxers de configuració:

$ dpkg -L samba | grep etc
/etc
/etc/logrotate.d
/etc/logrotate.d/samba
/etc/init.d
/etc/init.d/samba
/etc/cron.daily
/etc/cron.daily/samba

Control del servei samba. Execució, parada, status i reconfiguració de samba

Seguint els estàndards de Debian GNU/Linux (basat en el sistema d'scripts d'inicialització SystemV (http://en.wikipedia.org/wiki/System_V)) l'script de control del servidor de samba és:

/etc/init.d/samba

Les accions que podem fer amb el servei són start|stop|reload|restart|force-reload.

Cada cop que fem un canvi a la configuració de Samba haurem de fer un restart o, millor encara, un reload del servei:

$ sudo /etc/init.d/samba reload

Tal com podem veure executant:

$ sudo updatedb
$ locate samba | grep rc
/etc/rc0.d/K19samba
/etc/rc1.d/K19samba
/etc/rc2.d/S20samba
/etc/rc3.d/S20samba
/etc/rc4.d/S20samba
/etc/rc5.d/S20samba
/etc/rc6.d/K19samba 

El serveis DNS s'executa a partir del nivell 1 (cal destacar que no està disponible al nivell SINGLE USER MODE rcS.d).

Podeu trobar més informació a l'article Configuració de serveis en Linux

Funcions d'un servidor SAMBA i tipus de configuracions

Tipus de servidors i configuracions

Un servidor de xarxa Windows (o Samba) té 3 possibles configuracions:

Samba té 3 tipus de configuracions com a servidor:

Del tipus Domain Controller hi ha 3 subtipus:

Samba no pot (s'està treballant a la versió 4) treballar com a ADS Domain Controller i no pot ser un BDC d'un servidor Windows (que si d'un servidor Samba).

Del tipus membre de domini (Domain Member Server) i ha 2 subtipus:

Samba suporta tots dos tipus.

Podem saber el rol del nostre servidor amb la comanda testparm:

$ sudo testparm
...
Server role: ROLE_STANDALONE
$ sudo testparm
...
Server role: ROLE_DOMAIN_PDC

Samba Security Modes

Consulteu l'apartat Protocol SMB/CFIS per conèixer els modes de seguretat de SMB/CFIS.

Samba en canvi proveeix de més flexibilitat en aquest sentit. Samba afegeix 4 subnivells a la seguretat a nivell d'usuari. En total tenim els següent nivell de seguretat:

  • share: Cada recurs compartit utilitza una paraula de pas. Tothom que sàpiga aquesta paraula de pas pot accedir al recurs.
  • user: Cada recurs compartit del grup de treball esta configurat per permetre l'accés a un grup especific d'usuaris. En cada connexió inicial a un servidor Samba autentica l'usuari.
  • server: El sistema és idèntic a l'anterior però s'utilitza un altre servidor per a obtenir la informació dels usuaris
  • domain: Samba es converteix en membre d'un domini de Windows NT i utilitza un PDC (Primary Domain Controller) o BDC (Backup Domain Controller) per tal d'implementar l'autenticació. Un cop autenticat l'usuari manté un token amb la informació de l'usuari a partir de la qual poder determinar a quins recursos té accés.
  • ADS:

Un servidor SMB avisa als clients del nivell de seguretat que esta corrent durant l'establiment d'una sessió i només proporciona les dos opcions de SMB (user-level, share-level). El terme client és refereix a qualsevol agent que fa ús de serveis SMB amb independència de si és una estació de treball o un servidor.

User Level Security

Aquesta és la opció per defecte i és la més simple. El client s'identifica a nivell de sessió enviant un usuari i una paraula de pas. El servidor pot acceptar o denegar la sessió però no té ni idea de quins recursos vol accedir el client. Per aquesta raó, en aquest nivell el servidor només pot controlar l'accés als recursos basant-se estrictament en

  • L'usuari i la paraula de pas
  • El nom de la màquina client

Si la sessió és acceptada el client espera poder accedir als recursos remots sense que li calgui haver de tornar a especificar la paraula de pas.

El paràmetres que configura aquest nivell de seguretat al fitxer smb.conf és:

security = user

Recursos:

Share-Level Security

En aquest nivell el client s'autentica de forma separada per cada recurs al que vol accedir. Envia una paraula de pas cada cop que vol accedir a un recurs però no envia cap usuari. El client espera que cada recurs compartit tingui associat una paraula de pas amb independència de l'usuari que si connecta.

Però els sistemes Linux sempre han d'utilitzar un usuari. Els sistemes Windows associen la contrasenya a un recurs però Samba utilitza l'esquema d'autenticació de Unix on la parella a autenticar és usuari/contrasenya i no pas recurs/contrasenya.

Al iniciar una sessió els clients passen un usuari al servidor (sense contrasenya). Samba guarda aquest usuari en una llista de possibles usuaris. Quan els client accedeix a un recurs concret, apunta el nom del recurs (útil per l'accés a les HOMES) i la llista d'usuaris que apareguin al fitxer smb.conf. Aleshores la paraula de pas es comprova per cada un dels possibles usuaris. Si hi ha coincidència aleshores s'autentica amb aquest usuari.

Quan aquesta llista no és disponibles, aleshores Samba envia una petició al sistema Unix per trobar l'usuari a qui li correspon la contrasenya. Això es fa utilitzat NSS i la configuració del fitxer /etc/nsswitch.conf

Exemple:

$ cat /etc/nsswitch.conf 

passwd: files nis ldap
shadow: files nis ldap
group: files nis ldap

Aquest nivell s'estableix amb:

security = share

Recursos:

Domain Security Mode (User-Level Security)

En aquest cas la base de dades d'usuaris esta centralitzada en un controlador de domini i es compartida per tot els membres d'un domini (context de seguretat del domini). Un servidor primari controlador de domini (PDC) és el responsable de mantenir la integritat de la base de dades de comptes de seguretat. Els Backup domain controllers (BDCs) només proveeixen de serveis d'autenticació i logon.

Si s'utilitza

security = domain

Aleshores el servidor Samba és torna en un servidor membre del domini inclòs encara que a més sigui el PDC. Per aquesta raó, totes les màquines que participin en el domini han de tenir una compte de màquina en la base de dades de seguretat.

El nivell de seguretat de domini utilitza un sistema de seguretat basat en l'usuari (user-level security) i inclús les màquines s'han de validar a l'arrancada del sistema. La compte de màquina és un compte més d'usuari de Samba però es diferencien de les comptes d'usuari perquè acaben en $. El nom de la compte serà doncs NETBIOS_NAME$. La contrasenya és genera de forma aleatòria i només es coneguda pels controladors de domini i la màquina membre. Si la màquina no es pot validar a l'inici del sistema els usuaris no podran entrar al domini utilitzant aquesta màquina perquè es considerarà la màquina com de no confiança (not trusted machine).

Hi han tres possibles configuracions de membres de domini:

  1. Primary domain controller (PDC)
  2. Backup domain controller (BDC)
  3. Domain member server (DMS)

Exemple de configuració:

Samba com a membre de domini:

security = domain
workgroup = MIDEARTH

Cal fer dos passos extra:

  1. Afegir la màquina com a compte al servidor Samba
  2. Afegir la màquina al domini:
$ sudo net rpc join -U administrator%password

Recursos:

ADS Security Mode (User-Level Security)

Tant Samba 2.2 com Samba 3 es poden unir a un domini Active Directory. Això és possible si el servidor esta corrent en mode nadiu ja que Active Directory en mode natiu accepta perfectament membres de domini de l'estil NT4.

Amb Samba 3 a més un es pot afegir com a membre nadiu d'Active Directory. Això pot ser útil si hi ha una política de seguretat que prohibeix els protocol d'autenticació de NT

El terme realm és utilitzat per a descriure una arquitectura d'autenticació Kerberos (igual que a Micro$oft ADS ).

Exemple de configuració:

realm = your.kerberos.REALM
security = ADS

Potser també cal:

password server = your.kerberos.server

Recursos:

Server Security (User Level Security)

Aquest mode es manté per compatibilitat enrere i existeix per que abans és el mode que s'utilitzava quan Samba no podia actuar com un PDC. És molt recomanable no utilitzar aquesta opció per que té moltes deficiències.

Recursos:

Controlador primari de domini (Primary Domain Controller)

Consulteu l'article Samba com a PDC.

Controlador secundari de domini (Backup Domain Controler)

Consulteu l'article Samba com a BDC.

Membre de domini. Domain Member Server

Consulteu l'article Samba com a Domain Member Server.

SIDS

Tots els recursos tenen el seu propi Security Identifier aka SID o NT Security Identifiers:

Vegem alguns exemples de SID

SID de domini:

$ sudo net getlocalsid CASA
SID for domain CASA is: S-1-5-21-1914028906-1894631975-4136909023

SID de màquina:

  • Estan compostos per el SID del domini+ un RID (relative identifier).
$ sudo pdbedit -Lv casadespatx$
Unix username:        casadespatx$
NT username:          casadespatx$
Account Flags:        [W          ]
User SID:             S-1-5-21-1914028906-1894631975-4136909023-101004
...

SID d'usuari o grup:

  • Estan compostos per el SID del domini+ un RID (relative identifier)
$ sudo pdbedit -Lv sergi
Server's Role (logon server) NOT ADVISED with domain-level security
Unix username:        sergi
NT username:          sergi
Account Flags:        [UX         ]
User SID:             S-1-5-21-1914028906-1894631975-4136909023-21000
...

El format del SID és:

S 1 5 21-3623811015-3361044348-30300820 1013
The string is a SID. The revision level (the version of the SID specification). The identifier authority value. domain or local computer identifier a Relative ID (RID). Any group or user that is not created by default will have a Relative ID of 1000 or greater.

Possible identifier authority values are:

  • 0 - Null Authority
  • 1 - World Authority
  • 2 - Local Authority
  • 3 - Creator Authority
  • 4 - Non-unique Authority
  • 5 - NT Authority
  • 9 - Resource Manager Authority
See "Custom Principals" section on http://msdn.microsoft.com/en-us/library/aa480244.aspx http://blogs.msdn.com/larryosterman/archive/2004/09/01/224051.aspx

L'usuari administrador sempre té el RID 500 (hi està mapejat al root de Unix):

dn: uid=root,ou=All,dc=iesalfacs,dc=cat
objectClass: inetOrgPerson
objectClass: organizationalPerson
objectClass: person
objectClass: posixAccount
objectClass: sambaSamAccount
objectClass: shadowAccount
objectClass: top
cn: root
gidNumber: 0
homeDirectory: /home/root
sambaSID: S-1-5-21-3639968310-533092537-190950812-500
sn: root
uid: root
uidNumber: 0
gecos: Netbios Domain Administrator
...

Un altre valor típic és el 501 de l'usuari guest/nobody:

dn: uid=nobody,ou=All,dc=iesalfacs,dc=cat
objectClass: inetOrgPerson
objectClass: organizationalPerson
objectClass: person
objectClass: posixAccount
objectClass: sambaSamAccount
objectClass: shadowAccount
objectClass: top
cn: nobody
gidNumber: 514
homeDirectory: /nonexistent
sambaSID: S-1-5-21-3639968310-533092537-190950812-501
sn: nobody
uid: nobody
uidNumber: 65534
loginShell: /bin/false
...

Hi ha una sèrie de RIDS per defecte:

SID Descripció
S-1-5-18 Local System, a service account that is used by the operating system.
S-1-5-19 NT Authority, Local Service
S-1-5-20 NT Authority, Network Service
S-1-5-domain-500 A user account for the system administrator. By default, it is the only user account that is given full control over the system.
S-1-5-domain-501 Guest user account for people who do not have individual accounts. This user account does not require a password. By default, the Guest account is disabled.
S-1-5-domain-512 Domain Admins - a global group whose members are authorized to administer the domain. By default, the Domain Admins group is a member of the Administrators group on all computers that have joined a domain, including the domain controllers. Domain Admins is the default owner of any object that is created by any member of the group.
S-1-5-domain-513 Domain Users.
S-1-5-domain-514 Domain Guests - A global group that, by default, has only one member, the domain's built-in Guest account.

Recursos:

Com es calcula el RID?

aka RID Allocation

NOTA: Quan diem calcular el RID estem parlant de calcular el SID, ja que el SID d'un objecte és sempre una part fixa (SID_DEL_DOMINI) més el RID

Sembla que hi ha un mètode àntic i obsolet i un d'actual i a més si utilitzem gosa el mètode pot ser diferent:

Mètodo antic (abans de la versió 3.0.25 de Samba):

uid * 2 + 1000
gid * 2 + 1001

S'utilitza amb les bases de dades de password de samba aka passdb (smbpasswd o ldapsam_compat) antigues.

If you want to use old way, you have to use 'old' passdb such as smbpasswd or ldapsam_compat instead of ldapsam or tdbsam, although they can not keep the detail information of 
users.

Mètode actual (sambaNextRid attribute):

Sembla ser que hi ha 3 paràmetres possibles:

De l'esquema Ldap:

  • sambaNextRid: Next NT rid to give out for anything
  • sambaNextUserRid: Next NT rid to give our for users
  • sambaNextGroupRid: Next NT rid to give out for groups
  • sambaAlgorithmicRidBase: Base at which the samba RID generation algorithm should operate

Utilitzat amb bases de dades tipus ldapsam o tdbsam (https://lists.samba.org/archive/samba/2011-September/163994.html)

Amb gosa

En el meu cas sembla ser que el RID és simplement dos vegades el uidnumber???

algorithmic rid base

Segons el manual:

$ man smb.conf | grep -A 10  "algorithmic rid base"
      algorithmic rid base (G)

          This determines how Samba will use its algorithmic mapping from uids/gid to the RIDs needed to construct NT Security Identifiers.

          Setting this option to a larger value could be useful to sites transitioning from WinNT and Win2k, as existing user and group rids would otherwise clash with sytem users etc.

          All UIDs and GIDs must be able to be resolved into SIDs for the correct operation of ACLs on the server. As such the algorithmic mapping can´t be ´turned off´, but pushing it ´out of the
          way´ should resolve the issues. Users and groups can then be assigned ´low´ RIDs in arbitrary-rid supporting backends.

          Default: algorithmic rid base = 1000

          Example: algorithmic rid base = 100000


Si teniu el problema The value of 'algorithmic RID base' has changed since the LDAP database was initialised:

[2008/05/28 09:55:03, 0] passdb/pdb_ldap.c:pdb_init_ldapsam(5733)
  The value of 'algorithmic RID base' has changed since the LDAP
  database was initialised.  Aborting.
[2008/05/28 09:55:03, 0] passdb/pdb_interface.c:make_pdb_method_name(146)
  pdb backend ldapsam:ldap://localhost:389 did not correctly init 
(error was NT_STATUS_UNSUCCESSFUL)
[2008/05/28 09:55:03, 0] lib/util.c:smb_panic(1632)
  PANIC (pid 7067): pdb_get_methods_reload: failed to get pdb methods 
for backend ldapsam:ldap://localhost:389
 ...

Vegeu també:

Grups de Windows

SID Descripció
S-1-5-18 Local System, a service account that is used by the operating system.
S-1-5-19 NT Authority, Local Service
S-1-5-20 NT Authority, Network Service
S-1-5-domain-500 A user account for the system administrator. By default, it is the only user account that is given full control over the system.
S-1-5-domain-501 Guest user account for people who do not have individual accounts. This user account does not require a password. By default, the Guest account is disabled.
S-1-5-domain-512 Domain Admins - a global group whose members are authorized to administer the domain. By default, the Domain Admins group is a member of the Administrators group on all computers that have joined a domain, including the domain controllers. Domain Admins is the default owner of any object that is created by any member of the group.
S-1-5-domain-513 Domain Users.
S-1-5-domain-514 Domain Guests - A global group that, by default, has only one member, the domain's built-in Guest account.
S-1-5-domain-550 Operadors de les impressores printoperators. Consulteu CUPS i Samba i CUPS. Samba_i_CUPS#Configuraci.C3.B3_dels_recursos_compartits

Recursos:

Gestió de grups

Consulteu: Samba#Grups

Samba amb Ldap

Consulteu l'article Samba amb Ldap.

Configuració de Browsing a Samba

Consulteu: Configuració Samba Browsing

Windows Internet Name Service (WINS)

Consulteu NetBIOS name server (NBNS).

Interdomain Trust Relationships

El sistema de dominis de Windows NT 4.0 no és jeràrquic (en canvi Active Directory sí que ho és) i per tant no es poden establir relacions jeràrquiques entre dominis. Aquest fet afecta a l'escalabilitat del sistema i a la delegació de responsabilitats. És diu que Windows NT 4.0 utilitza un espai de noms pla (flat namespace). L'alternativa amb Windows NT són les relacions de confiança (trust) entre dominis. Un domini pot confiar en els usuaris d'un altre domini:

IterdomainTrust.png

Es compleixen les següents propietats:

  • El sentit de la relació de confiança és sempre unidireccional. Si es necessita una relació de confiança bidireccional és necessari establir 2 relacions de confiança
  • Les relacions de confiança no són transitives. Suposem 3 dominis domini1, domini2 i domini3. El fet que el domini1 sigui un domini de confiança del domini2 i que el domini2 sigui un domini de confiança del domini3 no implica quels dominis 1 i 3 tinguin una relació de confiança.
  • En canvi a Active Directory és tot el contrari (les relacions són bidireccionals i transitives)
  • Samba 3 implementa el model de Windows NT4 i pot interactuar amb dominis AD de forma similar al que poden fer màquines Windows NT4

Els següent exemples mostren com és la relació entre els dos dominis de la gràfica de més amunt:

  • El DomA confia en el DomB. DomA és el Trusting domain i DomB és el Trusted domain
  • Els usuaris de DomB poden accedir als recursos de DomA
  • Els usuaris del DomA NO poden accedir als recursos de DomB
  • Els grups globals de DomB es poden utilitzar al domA.
  • Els grups globals de DomA NO es poden utilitzar al domA
  • El DomB apareix al diàleg de login de les estacions de treball del DomA
  • El DomA NO apareix al diàleg de login de les estacions de treball del DomB
  • Als usuaris del trusting (DomA) NO se'ls pot donar permisos ni privilegis ni accés al trusted domain (DomB).
  • El trusting domain (DomA) pot accedir i utilitzar les comptes d'usuari del trusted domain (DomB)
  • Als administradors del trusted domain (DomB) sel's i pot donar permisos per administrar el trusting domain (DomA)
  • Als usuaris del trusted domain (DomB) se'ls i poden donar drets privilegis del trusting domain (DomA)
  • Als grups de domini del trusted domain (DomB) se'ls poden assignar drets i permisos del trusting domain (DomA)
  • Els grups de domini del trusted domain (DomB) poden ser membres dels grups locals de tots els clients Windows que siguin membres del domini A

Recursos:

Samba com a Trusted Domain

Al PDC del trusted domain cal afegir un usuari especial per a la relació de confiança:

$ sudo smbpasswd -a -i rumba
$ sudo pdbedit -Lv rumba

Us recomanen que abans de fer la relació de confiança entre dominis consulteu l'article Samba com a PDC. També cal destacar que per tal que la relació funcioni correctament es necessari utilitzar winbind

Samba com a Trusting Domain

Al PDC del trusting domain cal afegir la relació de confiança amb la comanda net:

$ sudo net rpc TRUSTEDDOMAIN_NAME establish rumba

Us recomanen que abans de fer la relació de confiança entre dominis consulteu l'article Samba com a PDC. També cal destacar que per tal que la relació funcioni correctament es necessari utilitzar winbind

Què pot i què no pot fer Samba

Pot fer:

  • Servidor de Fitxers
  • Servidor d'impressores
  • Servidor Dfs de Microsoft
  • Controlador de domini principal
  • Windows 95/98/Me Authentication
  • Windows NT/2000/XP authentication
  • Local Master Browser i backup
  • Domain master browser
  • Servidor primari de WINS

NO pot fer:

  • Controlador de domini secundari (backup) quan el servidor primari és Windows.
  • Controlador de domini Active Directory (planejat per Samba 4)
  • Servidor secundari de WINS

Configuració de SAMBA

El fitxer principal de configuració és /etc/samba/smb.conf. Es pot utilitzar l'ordre testparm per comprovar la sintaxi del fitxer.

/etc/default/samba

$ cat /etc/default/samba
# Defaults for samba initscript
# sourced by /etc/init.d/samba
# installed at /etc/default/samba by the maintainer scripts
#

#
# This is a POSIX shell fragment
#  

# How should Samba (smbd) run? Possible values are "daemons"
#	or "inetd".
RUN_MODE="daemons"

Afegir usuaris

Només usuaris windows:

$ useradd -s /sbin/nologin usuario-windows
$ smbpasswd -a usuario-windows

Usuaris de windows i de Linux (amb accés al shell):

$ useradd -s /bin/bash usuario-windows
$ passwd usuario-windows
$ smbpasswd -a usuario-windows

Compartició de carpetes

El fitxer de configuració que instal·la Samba té una sèrie d'exemples de com configurar Carpetes compartides. La sintaxi bàsica és:

[recurs_compartit]
      comment = comentari
      path = /ruta/del/recurs/a/compartir

Es poden utilitzar les següents opcions:

  • guest ok: Defineix si es permet l'accés anònim. El valor pot ser Yes o No.
  • public: Equivalent a l'anterior.
  • browseable: Decideix si el recurs es mostra a la llista de recursos compartits. El valor pot ser Yes o No.
  • writable: Defineix si es permet l'escriptura. El valor pot ser Yes o No.
  • read only: Equivalent a l'anterior però amb l'efecte contrari. El valor pot ser Yes o No.
  • valid users: Defineix quins usuaris o grups poden accedir al recurs compartit. Es poden especificar múltiples usuaris separats per comes o noms de grup (amb l'arroba @ davant). Exemple: fulanito, menganito, @administradors.
  • write list: Defineix quins usuaris poden accedir amb permisos d'escriptura. Mateixa sintaxi que l'anterior.
  • admin users: Defineix quins usuaris poden accedir amb permisos d'administració (superusuaris) del recurs compartit . Mateixa sintaxi que l'anterior.
  • directory mask: Defineix quins permisos tindran els subdirectoris del recurs compartit. Exemple 1777. És el mateix que el directori mode.
  • create mask: Defineix quins permisos tindran els fitxers creats al recurs compartit. Exemple 1777.

Exemple:

[carpeta_compartida]
       comment = Directori del servidor
       path = /home/user/recurs_compartit
       guest ok = Yes
       read only = Yes
       write list = fulano, administrador
       directory mask = 0755
       create mask = 0644
usershares

Si el servidor Samba es configura correctament els usuaris poden compartir carpetes amb Samba. El nautilus pot compartir si s'instal·la el plugin nautilus-share.

També es poden definir i consultar els recursos compartits d'usuari amb l'ordre net:

$ net usershare list -l

Es poden definir carpetes compartides amb:

$  net usershare add ssbate_public /home/usuari/Public "Carpeta Pública de usuari" Everyone:R guest_ok=y

L'anterior és un exemple de carpeta compartida pública per a tothom. Es pot definir usuaris amb:

$ net usershare add ssbate_public /home/usuari/pepe "Carpeta Pública de usuari" pepe:F

Dona accés complet (F) a l'usuari pepe.

Per obtenir informació dels usershares:

$ net usershare info
[ssbate_public]
path=/home/usuari/Public
comment=Carpeta Pública de usuari
usershare_acl=Everyone:R,
guest_ok=y


/var/lib/samba/usershares

Un altre opció és crear un fitxer a la carpeta /var/lib/samba/usershares. Per exemple:

$ cat /var/lib/samba/usershares/mp3
#VERSION 2
path=/linux2/mp3
comment=
usershare_acl=S-1-1-0:R
guest_ok=y

Crearia un recurs compartit anomenat MP3.

Això funciona per què el paràmetre per què és el valor per defecte de l paràmetre usershare path:

$ sudo testparm -s -v | grep share
Load smb config files from /etc/samba/smb.conf
Processing section "[printers]"
Processing section "[print$]"
Processing section "[prova]"
Loaded services file OK.
Server role: ROLE_STANDALONE
	add share command = 
	change share command = 
	delete share command = 
	registry shares = No
	usershare allow guests = Yes
	usershare max shares = 100
	usershare owner only = Yes
	usershare path = /var/lib/samba/usershares
	usershare prefix allow list = 
	usershare prefix deny list = 
	usershare template share = 
	panic action = /usr/share/samba/panic-action %d
	administrative share = No
	afs share = No
	share modes = Yes

Compartició d'impressores

Path complet d'un recurs Samba:

smb://[username[:password]@][workgroup/]server/printshare

Si es desitja que es pugui imprimir per la impressora sense necessitat d'usuari i contrasenya s'ha de configurar amb el paràmetre public = Yes:

[printers]
      comment = Un comentari
      path = /var/spool/samba
      printable = Yes
      browseable = No
      writable = no
      printable = yes
      public = Yes

NOTA: Els sistemes Windows 95, 98 y ME solen tenir problemes per comunicar-se amb Samba a l'hora d'imprimir. Cal afegir uns paràmetres per solucionar aquest inconvenient:

[printers]
      comment = Impressores
      path = /var/spool/samba
      printable = Yes
      browseable = No

      writable = no printable = yes

      public = Yes
      print command = lpr -P %p -o raw %s -r
      lpq command = lpstat -o %p
      lprm command = cancel %p-%j

Es poden definir els grups o usuaris que poden administrar la cua de la impressora:

[printers]
      ......
      printer admin = fulano, @opers_impresion


Configuracions de seguretat

La seguretat és un tema important a Samba. Tenim diferents opcions alhora de controlar l'accés als recursos. La primera opció és mantenir una llista de les màquines que tenen accés i de les màquines que no. Això ho aconseguim amb els paràmetres:

  • hosts allow: Es poden establir rangs de xarxa. Per exemple per una xarxa de classe C 192.168.1.0/24 cal escriure 192.168.1.Exemple
hosts allow = 192.168.1. 127.

El paràmetre interfaces permet establir des de quines targetes s'escoltaran peticions. Atenció a la sintaxi:

interfaces = 192.168.1.254/24

Configuració de Samba com a Controlador de Domini

Consulteu l'article Samba com a PDC.

Servidor WINS

Consulteu NetBIOS_Name_Server#Servidor

Fitxers de log

Els fitxers de log es troben a

/var/log/samba

Hi ha un fitxer de log per cada dimoni actiu (smbd, nmbd, winbind):

/var/log/samba/log.nmbd
/var/log/samba/log.smbd

Hi ha un log per a Swat:

/var/log/samba/log.swat

Els noms del fitxers s'estableix amb el paràmetre:

log file = /var/log/samba/log.%m

On %m és el nom NetBIOS del client. Trobem un fitxer de log per cada client

Podeu consultar els paràmetres de log amb:

$ cat /etc/samba/smb.conf | grep log
       syslog = 0
       log file = /var/log/samba/log.%m
       max log size = 1000
  • Log Level: Controla la quantitat d'informació a mostrar (valor entre 0-10). Amb 3 ja hi ha força informació. El valor per defecte és 0.
  • syslog: Controla si volem enviar la informació de log al registre central de logs de Unix
  • syslog only: Indica que només volem utilitzar syslog.

Recursos:

veto files

Comandes Samba

smbpasswd

Aquesta utilitat és similar a la comanda passwd (canviar contrasenyes dels usuaris locals) o yppasswd (contrasenyes de NIS). És important no confondre la comanda amb un dels tipus de password backends. smbpasswd permet mantenir les contrasenyes dels usuaris de samba amb independència del backend que s'utilitzi.

smbpasswd és una aplicació client servidor. Quan canviem la contrasenya d'un usuari es modificar a tota la xarxa. També pot ser utilitzada per canviar contrasenyes en servidors Windows NT.

Podem realitzar les següents accions:

  • Afegir o eliminar comptes d'usuaris o de màquines.
  • Activar o desactivar comptes d'usuaris o de màquines.
  • Establir NULL user passwords
  • Gestionar la confiança de comptes entre dominis.

Recursos:

smbstatus

La comanda smbstatus mostra les connexions NetBIOS actives (és similar a la comanda NBTSTAT de DOS). Per exemple si ens connectem a un recurs remot:

$ smbclient //PC1/prova -N
Anonymous login successful
Domain=[MYCASA] OS=[Unix] Server=[Samba 3.0.26a]
smb: \> 

I executem a la màquina remota que ens connectem:

$ smbstatus 

Samba version 3.0.26a
PID     Username      Group         Machine                        
-------------------------------------------------------------------

Service      pid     machine       Connected at
-------------------------------------------------------
prova        14891   ubuntu-sala   Sun Jan 27 20:33:50 2008


No locked files

Sovint s'utilitza conjuntament amb watch per veure l'estat del servidor en temps real:

$ sudo watch -n5 -d smbstatus

Un altre exemple:

$ smbstatus

Samba version 3.4.7
PID     Username      Group         Machine                        
-------------------------------------------------------------------
28099     linux$        Domain Computers  linux        (192.168.0.6)
22987     sbenavent     sbenavent     a14pc0       (172.16.1.130)
4301      aaznar        aaznar        secpc5       (192.168.30.15)

Service      pid     machine       Connected at
-------------------------------------------------------
departaments   4301   secpc5        Sat Oct 23 11:54:06 2010
departaments   22987   a14pc0        Fri Oct 22 19:01:59 2010
IPC$         28099   linux         Sun Oct 17 19:46:21 2010  

No locked files

També es pot mostrar només la informació d'un usuari específic:

$ smbstatus -u aazpar

Samba version 3.4.7
PID     Username      Group         Machine                        
-------------------------------------------------------------------
14543     aazpar        aazpar        secpc5       (192.168.30.15)

Service      pid     machine       Connected at
-------------------------------------------------------
aazpar       14543   secpc5        Sat Oct 23 11:53:20 2010

O només mostrar els recursos compartits (shares):

$ smbstatus -S

Service      pid     machine       Connected at
-------------------------------------------------------
secretaria   14543   secpc5        Sat Oct 23 11:53:23 2010
sgqualitat   14543   secpc5        Sat Oct 23 11:53:21 2010
aazpar       14543   secpc5        Sat Oct 23 11:53:20 2010
direccio     14543   secpc5        Sat Oct 23 11:53:26 2010

O mostrar només la llista de processos actius:

$ smbstatus -p

Samba version 3.4.7
PID     Username      Group         Machine                        
-------------------------------------------------------------------
14543     aaznar        aaznar        secpc5       (192.168.30.15)

Vegeu també l'script:

/usr/share/doc/samba-doc/examples/misc/extra_smbstatus
#!/bin/csh
if ($1 == "-p") then
  smbstatus -p |sort -u
else if ($1 == "-c") then
  echo There are `smbstatus -p |sort -u |grep -n -v z |grep -c :` unique smbd processes running.
 else if ($1 == "-l") then
  echo `date '+ %d/%m/%y %H:%M:%S'` `smbstatus -p |sort -u |grep -n -v z |grep -c :` >>$2
else if ($1 == "-cs") then
  echo There are `smbstatus |awk '$1==share {n++;} END {print n}' share=$2` concurrent connections to share: $2
else if ($1 == "-csl") then
 echo `date '+ %d/%m/%y %H:%M:%S'` `smbstatus |awk '$1==share {n++;} END {print n}' share=$2` >>$3
else
 echo "'smbstat -c'         ==> Count unique smbd processes."
 echo "'smbstat -p'         ==> List unique smbd processes."
 echo "'smbstat -l logfile' ==> Append a log entry for the number of"
 echo "                          concurrent and unique processes to logfile."
 echo "'smbstat -cs sharename'"
 echo "                     ==> Count processes connected to sharename (assumed unique)"
 echo "'smbstat -csl sharename logfile'"
 echo "                     ==> Append a log entry for the number of concurrent"
 echo "                         processes connected to sharename (assumed unique)"
endif

Run this script from cron eg.

0,5,10,15,20,25,30,35,40,50,55 * * * * /usr/local/samba/bin/smbstat -l /usr/local/samba/var/smbdcount.log

Recursos:

Inseriu ací text sense format

smbcontrol

És una petita eina que permet enviar missatges de control de samba.

La comanda s'utilitza de la següent manera:

De forma interactiva:

$ smbcontrol [-i] [-s]

O no interactiva:

$ smbcontrol [destination] [message-type] [parameter]

On destination és:

  • smdb: El missatge s'envia en broadcast a tots els dimonis smdb
  • nmdb: el missatge s'envia al dimoni especificat al fitxer nmdb.pid
  • Un identificador de procés

i on messa-type és el tipus de missatge. Consulteu el manual (man smbcontrol) per tal de conèixer totes les opcions.

Exemples

Forçar una nova elecció de master browser:

$ smbcontrol nmbd force-election

Recursos:

profiles

Recursos:

tdbbackup

Recursos:

pdbedit

Recursos:

Aquesta eina només la pot utilitzar el root i esta dissenyada per gestionar el password backend i les polítiques de comptes:

  • Afegir/eliminar/modificar comptes d'usuaris.
  • Mostrar llistes d'usuaris
  • Migrar comptes d'usuaris i grups
  • Gestionar les polítiques de comptes
  • Gestionar les polítiques d'accés del domini.

La següent taula mostra una comparativa entre les polítiques globals de domini de Samba i Windows NT:

NT4 policy Name

Samba Policy Name

NT4 Range

Samba Range

Samba Default

Maximum Password Age

maximum password age

0 - 999 (days)

0 - 4294967295 (sec)

4294967295

Minimum Password Age

minimum password age

0 - 999 (days)

0 - 4294967295 (sec)

0

Mimimum Password Length

min password length

1 - 14 (Chars)

0 - 4294967295 (Chars)

5

Password Uniqueness

password history

0 - 23 (#)

0 - 4294967295 (#)

0

Account Lockout - Reset count after

reset count minutes

1 - 99998 (min)

0 - 4294967295 (min)

30

Lockout after bad logon attempts

bad lockout attempt

0 - 998 (#)

0 - 4294967295 (#)

0

*** Not Known ***

disconnect time

TBA

0 - 4294967295

0

Lockout Duration

lockout duration

1 - 99998 (min)

0 - 4294967295 (min)

30

Users must log on in order to change password

user must logon to change password

0/1

0 - 4294967295

0

*** Registry Setting ***

refuse machine password change

0/1

0 - 4294967295

0

Mostrar la llista d'usuaris i màquines

$ sudo pdbedit -Lv
---------------
Unix username:        sergi
NT username:          sergi
Account Flags:        [UX         ]
User SID:             S-1-5-21-1914028906-1894631975-4136909023-21000
Primary Group SID:    S-1-5-21-1914028906-1894631975-4136909023-513
Full Name:            Sergi Tur Badenas
Home Directory:       \\acacha\sergi
HomeDir Drive:        U:
Logon Script:         
Profile Path:         \\acacha\sergi\profile
Domain:               CASA
Account desc:         Sergi
Workstations:         
Munged dial:          
Logon time:           0
Logoff time:          never
Kickoff time:         never
Password last set:    ds, 24 mar 2007 17:39:49 CET
Password can change:  ds, 24 mar 2007 17:39:49 CET
Password must change: never
Last bad password   : 0
Bad password count  : 0
Logon hours         : FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
---------------
Unix username:        bego
NT username:          bego
A ccount Flags:        [UX         ]
User SID:             S-1-5-21-1914028906-1894631975-4136909023-21pdb_get_group_sid: Failed to find Unix account for ubuntusala$
002
Primary Group SID:    S-1-5-21-1914028906-1894631975-4136909023-513
Full Name:            Bego Sole
Home Directory:       \\acacha\bego
HomeDir Drive:        U:
Logon Script:         
Profile Path:         \\acacha\bego\profile
Domain:               CASA
Account desc:         
Workstations:         
Munged dial:          
Logon time:           0
Logoff time:          never
Kickoff time:         never
Password last set:    ds, 24 mar 2007 17:41:34 CET
Password can change:  ds, 24 mar 2007 17:41:34 CET
Password must change: never
Last bad password   : 0
Bad password count  : 0
Logon hours         : FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
---------------  
Unix username:        portatil$
NT username:          portatil$
Account Flags:        [W          ]
User SID:             S-1-5-21-1914028906-1894631975-4136909023-101002
Primary Group SID:    (NULL SID)
Full Name:            portatil
Home Directory:       \\acacha\portatil_
HomeDir Drive:        
Logon Script:         
Profile Path:         \\acacha\portatil_\profile
Domain:               CASA
Account desc:         Portatil
Workstations:         
Munged dial:          
Logon time:           0
Logoff time:          never
Kickofpdb_get_group_sid: Failed to find Unix account for casadespatx$
f time:         never
Password last set:    ds, 24 mar 2007 17:43:22 CET
Password can change:  ds, 24 mar 2007 17:43:22 CET
Password must change: never
Last bad password   : 0
Bad password count  : 0
Logon hours         : FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
--------------- 

Les màquines acaben amb el caràcter $. Es pot consultar la informació d'una sola compte:

$ sudo pdbedit -Lv sergi

També es poden mostrar en l'antic format smbpasswd:

$ sudo pdbedit -Lw
sergi:1000:84B0D8E14D158FF8417EAF50CFAC29C3:AF6DD3FD4E2EA8BDE1695A3F05EFBF52:[UX         ]:LCT-46055455:
bego:1002:84B0D8E14D158FF8417EAF50CFAC29C3:AF6DD3FD4E2EA8BDE1695A3F05EFBF52:[UX         ]:LCT-460554BE:
....

Afegir una compte

Cal executar:

$ sudo pdbedit -a prova
Cannot locate Unix account for prova


Com podeu veure la compte ha d'existir prèviament com a compte Unix local.

$ sudo pdbedit -a prova
new password:
retype new password:
Unix username:        prova
NT username:          prova
Account Flags:        [U          ]
User SID:             S-1-5-21-1914028906-1894631975-4136909023-1000
Primary Group SID:    S-1-5-21-1914028906-1894631975-4136909023-513
Full Name:            ,,,
Home Directory:       \\acacha\prova
HomeDir Drive:        
Logon Script:         
Profile Path:         \\acacha\prova\profile
Domain:               CASA
Account desc:         
Workstations:         
Munged dial:          
Logon time:           0
Logoff time:          never
Kickoff time:         never
Password last set:    dg, 03 feb 2008 13:18:43 CET
Password can change:  dg, 03 feb 2008 13:18:43 CET
Password must change: never
Last bad password   : 0
Bad password count  : 0
Logon hours         : FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF

Modificar un compte

Cal executar:

$ sudo pdbedit -r --fullname="Victor Aluicious Laan" prova


Eliminar una compte

Cal executar:

$ sudo pdbedit -x prova

Altres exemples

# min password length = 8 characters.
#password history = last 4 passwords.
#maximum password age = 90 days.
#minimum password age = 7 days.
#bad lockout attempt = 8 bad logon attempts.
#lockout duration = forever, account must be manually reenabled.

Comandes:

$ sudo  pdbedit -P "min password length" -C 8
account policy value for min password length was 5
account policy value for min password length is now 8
$ sudo  pdbedit -P "password history" -C 4
account policy value for password history was 0
account policy value for password history is now 4
$ sudo  pdbedit -P "maximum password age" -C 7776000
account policy value for maximum password age was 4294967295
account policy value for maximum password age is now 7776000
$ sudo  pdbedit -P "minimum password age" -C 7
account policy value for minimum password age was 0
account policy value for minimum password age is now 7
$ sudo  pdbedit -P "bad lockout attempt" -C 8
account policy value for bad lockout attempt was 0
account policy value for bad lockout attempt is now 8
$ sudo  pdbedit -P "lockout duration" -C -1
account policy value for lockout duration was 30
account policy value for lockout duration is now 4294967295

Importació/exportació de backends

La comanda pdbedit permet fer conversions entre backends:

$ sudo pdbedit -i smbpasswd -e tdbsam

Un cop executada esta comanda cal modificar smbpasswd per tdbsam al fitxer smb.conf.

Recursos:

mksmbpasswd

Recursos:

Documentació Samba

El paquet samba-doc ens instal·la la documentació de Samba, i el paquet samba-doc-pdf el mateix en PDF:

$ sudo apt-get install samba-doc samba-doc-pdf

La resta de fitxers són manuals i documentació (carpeta /usr/share/doc/samba-doc). De la documentació cal destacar el fitxer README:

$ cd /usr/share/doc/samba-doc
$ gunzip README.gz 

i la carpeta /usr/share/doc/samba-doc/examples amb multitud d'exemples de configuració de Samba. Amb la comanda

$ firefox usr/share/doc/samba-doc/htmldocs/index.html

Si tenim instal·lat el paquet podem fer click [file:///usr/share/doc/samba-doc/htmldocs/index.html aqui].

Hooks Samba

preexec

IMPORTANT: Es poden posar a qualsevol share inclòs netlogon

Vegeu com per exemple podeu generar un fitxer de log per a monitoritzar les connexions:

A /etc/samba/smb.conf:

...
[netlogon]
      comment = Logon
      path = /etc/samba/netlogon
      browseable = No
      root preexec = /etc/samba/scripts/netlogon_hook -u "%u" -S "%S" -m "%m" -I "%I"
      #preexec = echo \"%u connected to %S from %m (%I)\" >> /tmp/log

On /etc/samba/scripts/netlogon_hook:

$ cat /etc/samba/scripts/netlogon_hook

#!/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/netlogon"

while getopts ":u:S:I:m:" opt; do
  case $opt in  
    u)
      #echo "-u was triggered" >&2
      UISSET=TRUE
      U=$OPTARG
      ;;
    S)
      #echo "-s was triggered" >&2
      SISSET=TRUE
      S=$OPTARG  
      ;;
                            
    I)
      #echo "-I was triggered" >&2
      IISSET=TRUE
      I=$OPTARG
      ;;
    m)
      #echo "-m was triggered" >&2
      MISSET=TRUE
      M=$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


HOSTNAME=$(hostname)
##preexec = echo \"%u connected to %S from %m (%I)\" >> /tmp/log
echo "$(LANG=C;date +'%b %d %T') $HOSTNAME [$$]: $U connected to $S from $M ($I)" >> $LOG_FILE


Ara podeu consultar el log:

$ sudo tail -f /var/log/samba/netlogon
Mar 31 20:10:38 caro [1642]: celinesanchez connected to netlogon from a33-pc14 (172.16.3.104)
Mar 31 20:10:45 caro [1652]: pauroig connected to netlogon from a33-pc10 (172.16.3.100)
Mar 31 20:12:49 caro [2067]: eralda connected to netlogon from a30pcprofe (172.16.3.10)
Mar 31 20:14:34 caro [2161]: vaguilella connected to netlogon from a33pcprofe (172.16.3.90)
Mar 31 20:17:30 caro [2286]: noeliasastre connected to netlogon from a32pc06 (172.16.3.76)
Mar 31 20:18:07 caro [2748]: carmengarcia connected to netlogon from a32pc03 (172.16.3.73)
Mar 31 20:21:05 caro [2828]: jessicaisern connected to netlogon from a22pcprofe (172.16.2.60)
Mar 31 20:21:50 caro [2852]: leticiahunault connected to netlogon from a19-2pc06 (172.16.1.186)
Mar 31 20:23:26 caro [3298]: dsubirats connected to netlogon from a32pcprofe (172.16.3.70)
Mar 31 20:25:15 caro [3363]: consuelogalan connected to netlogon from b2pc07 (172.16.1.57)

NOTA: Val la pena configurar logrotate per fer rotar aquest fitxers de lo i que no creixin indefinidament.

preexec examples

$ man smb.conf
...
 preexec (S)

          This option specifies a command to be run whenever the service is connected to. It takes the usual
          substitutions.

          An interesting example is to send the users a welcome message every time they log in. Maybe a message 
          of the
          day? Here is an example:

          preexec = csh -c ´echo \"Welcome to %S!\" | /usr/local/samba/bin/smbclient -M %m -I %I´ &

          Of course, this could get annoying after a while :-)

          See also preexec close and postexec.

          Default: preexec =

          Example: preexec = echo \"%u connected to %S from %m (%I)\" >> /tmp/log

Recursos:

postexec

IMPORTANT: Es poden posar a qualsevol share inclòs netlogon

Vegeu com per exemple podeu generar un fitxer de log per a monitoritzar les desconnexions, similar a l'anterior:

A /etc/samba/smb.conf:

...
[netlogon]
      comment = Logon
      path = /etc/samba/netlogon
      browseable = No
      root preexec = /etc/samba/scripts/netlogon_hook -u "%u" -S "%S" -m "%m" -I "%I"
      root postexec = /etc/samba/scripts/netlogoff_hook -u "%u" -S "%S" -m "%m" -I "%I"
        

On /etc/samba/scripts/netlogoff_hook:

$ cat /etc/samba/scripts/netlogoff_hook

#!/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/netlogon"

while getopts ":u:S:I:m:" opt; do
  case $opt in  
    u)
      #echo "-u was triggered" >&2
      UISSET=TRUE
      U=$OPTARG
      ;;
    S)
      #echo "-s was triggered" >&2
      SISSET=TRUE
      S=$OPTARG  
      ;;
                            
    I)
      #echo "-I was triggered" >&2
      IISSET=TRUE
      I=$OPTARG
      ;;
    m)
      #echo "-m was triggered" >&2
      MISSET=TRUE
      M=$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


HOSTNAME=$(hostname)
#Example: postexec = echo \"%u disconnected from %S from %m (%I)\" >> /tmp/log

echo "$(LANG=C;date +'%b %d %T') $HOSTNAME [$$]: $U disconnected from $S from $M ($I)" >> $LOG_FILE


Ara podeu consultar el log:

$ sudo tail -f /var/log/samba/netlogon
...
Apr 01 21:19:08 caro [31183]: marccamacho disconnected from netlogon from a19-2pc04 (172.16.1.184)
Apr 01 21:20:25 caro [31213]: mariamor connected to netlogon from a19-2pc01 (172.16.1.181)
Apr 01 21:20:36 caro [31222]: mariamor disconnected from netlogon from a19-2pc01 (172.16.1.181)
Apr 01 21:20:49 caro [31229]: mariamor connected to netlogon from a19-2pc01 (172.16.1.181)
Apr 01 21:21:15 caro [31240]: vicentcebolla disconnected from netlogon from e14pc04 (172.16.0.94)
Apr 01 21:23:09 caro [31642]: laurade1 disconnected from netlogon from e14pc05 (172.16.0.95)
Apr 01 21:23:56 caro [31679]: cristianbrull disconnected from netlogon from e14pc06 (172.16.0.96)
Apr 01 21:26:43 caro [31725]: nuriaromeu disconnected from netlogon from e14pc01 (172.16.0.91)
Apr 01 21:27:25 caro [31741]: cintaescudero disconnected from netlogon from e14pc02 (172.16.0.92)
Apr 01 21:31:42 caro [32209]: mariamor disconnected from netlogon from a19-2pc01 (172.16.1.181)

NOTA: Val la pena configurar logrotate per fer rotar aquest fitxers de lo i que no creixin indefinidament.

postexec examples

$ man smb.conf
...
 postexec (S)

          This option specifies a command to be run whenever the service is disconnected. It takes the usual substitutions. The command may be run as
          the root on some systems.

          An interesting example may be to unmount server resources:

          postexec = /etc/umount /cdrom

          Default: postexec =

          Example: postexec = echo \"%u disconnected from %S from %m (%I)\" >> /tmp/log

Recursos compartits administratius. Share admins (admin$, IPC$)

  • admin$: Representa la carpeta C:/Windows
  • IPC$: Representa el registre no es troba a Windows 7?

Els podeu observar amb:

$ smbclient -N -L localhost
Anonymous login successful
Domain=[MSHOME] OS=[Unix] Server=[Samba 3.0.22] 

       Sharename       Type      Comment
       ---------       ----      -------
       ADMIN$          IPC       IPC Service (casa-linux server (Samba, Ubuntu))
       IPC$            IPC       IPC Service (casa-linux server (Samba, Ubuntu))
       print$          Disk      Printer Drivers
Anonymous login successful
Domain=[MSHOME] OS=[Unix] Server=[Samba 3.0.22] 

A Samba els podeu crear a mida (des de la versió 3.0.20) amb:

enable asu support = no

I poseu una entrada

[admin$]

Del manual:

$ man smb.conf 
...
enable asu support (G)

 Hosts running the "Advanced Server for Unix (ASU)" product require some special accomodations such as creating a builtin 
 [ADMIN$] share that only supports IPC connections. The has been the default behavior in smbd for many years. However, certain 
 Microsoft applications such as the Print Migrator tool require that the remote server support an [ADMIN$} file share. Disabling 
 this parameter allows for creating an [ADMIN$] file share in smb.conf.

 Default: enable asu support = no

Client SAMBA

Instal·lació del client

Per instal·lar samba hem d'instal·lar:

$ sudo apt-get install smbclient smbfs

Podem consultar els fitxers que instal·la el client de samba amb la comanda:

$ dpkg -L 

Tenim les següents comandes/aplicacions/servidors:

$ dpkg -L smbclient | grep bin
/usr/bin
/usr/bin/findsmb
/usr/bin/smbclient
/usr/bin/smbget
/usr/bin/smbtar
/usr/bin/rpcclient
/usr/bin/smbspool
/usr/bin/smbtree
/usr/bin/smbcacls
/usr/bin/smbcquotas
$ dpkg -L smbfs | grep bin
/sbin
/sbin/mount.cifs
/sbin/umount.cifs
/usr/bin
/usr/bin/smbmount
/usr/bin/smbumount
/usr/bin/smbmnt
/sbin/mount.smbfs
/sbin/mount.smb

La resta de fitxers són manuals i documentació (carpeta /usr/share/doc/smbfs).

Comandes del client Samba

Comanda smbmount

Ordre proporcionada pel paquet smbfs que permet muntar una unitat remota de samba. De fet és un ordre mount (mount.cifs) més i com a tal funciona de forma similar a la resta d'ordres mount:

Comanda smbclient

NOTA: A Windows podeu utilitzar l'ordre net view

La comanda smbclient és una petita aplicació que ens permet utilitzar samba com a client com si fos una mena d'accés FTP. S'utilitza sobretot per saber quins recursos Samba ens ofereix una màquina remota:

$ smbclient -U usuario -L NET_BIOS_NAME

Com a netbios name heu d'utilitzar un nom de màquina windows o podeu posar la Ip.

Exemple:

$ smbclient -Usergitur -L 192.168.1.5

Per exemple:

$ smbclient -U sergi -L ACACHA
Password: 
Domain=[CASA] OS=[Unix] Server=[Samba 3.0.26a]

        Sharename       Type      Comment
        ---------       ----      -------
        IPC$            IPC       IPC Service (acacha server (Samba, Ubuntu))
        carpeta           Disk      
        print$          Disk      Printer Drivers
        PDF             Printer   PDF
        sergi           Disk      Home directory of sergi
Domain=[CASA] OS=[Unix] Server=[Samba 3.0.26a]

        Server               Comment
        ---------            -------
        ACACHA               acacha server (Samba, Ubuntu) 

        Workgroup            Master
        ---------            -------
        CASA                 ACACHA
        MSHOME               UBUNTU-SALA

En cas que no tinguem accés:

$ smbclient -U pepe -L ACACHA
Password: 
session setup failed: NT_STATUS_LOGON_FAILURE

També i podem accedir anònimament:

$ smbclient -L ACACHA -N
Anonymous login successful
Domain=[CASA] OS=[Unix] Server=[Samba 3.0.26a]

        Sharename       Type      Comment
        ---------       ----      -------
        IPC$            IPC       IPC Service (acacha server (Samba, Ubuntu))
        carpeta         Disk      
        print$          Disk      Printer Drivers
        PDF             Printer   PDF
Anonymous login successful
Domain=[CASA] OS=[Unix] Server=[Samba 3.0.26a]  

        Server               Comment
        ---------            -------
        ACACHA               acacha server (Samba, Ubuntu)   

        Workgroup            Master
        ---------            -------
        CASA                 ACACHA
        MSHOME               UBUNTU-SALA

I en aquest cas només es mostren els recursos compartits per a tothom.

Tot i que no és recomanable, es pot connectar directament aportant la paraula de pas:

# smbclient //ACACHA/carpeta -Usergi%parauladepas

Per tant és una eina que podem utilitzar per tal de comprovar usuaris.

Però smbclient va més enllà. Un cop connectats disposem d'una línia de comandes. El format és:

$ smbclient //NETBIOS_NAME/Recurs

Per exemple:

$ smbclient //ACACHA/carpeta
Password: 
Anonymous login successful
Domain=[CASA] OS=[Unix] Server=[Samba 3.0.26a]
smb: \> 

En aquest cas em pogut accedir tot i no saber la contrasenya ja que es tracta d'un recurs anònim. Si no volem que ens pregunti la contrasenya:

$ smbclient //ACACHA/carpeta -N

Si és un recurs protegit podem especificar l'usuari:

$ smbclient //ACACHA/sergi -U sergi 

Les comandes que podem utilitzar ens les proporciona la comada help:

smb: \> help
?              altname        archive        blocksize      cancel         
case_sensitive cd             chmod          chown          close          
del            dir            du             exit           get            
getfacl        hardlink       help           history        lcd            
link           lock           lowercase      ls             mask           
md             mget           mkdir          more           mput           
newer          open           posix          posix_open     posix_mkdir    
posix_rmdir    posix_unlink   print          prompt         put            
pwd            q              queue          quit           rd             
recurse        reget          rename         reput          rm             
rmdir          showacls       setmode        stat           symlink        
tar            tarmode        translate      unlock         volume         
vuid           wdel           logon          listconnect    showconnect   

Podem utilitzar les comandes de navegació pel sistema de fitxers de Unix (cd, ls) i algunes de les habituals de modificació de fitxers (rm, mkdir) o altres (del, rename) sempre que i tinguem permisos.

Per exemple podem obtenir un fitxer executant:

> get fitxer.txt 
getting file \fitxer.txt of size 7675829 as fitxer.txt (9476,5 kb/s) (average 9476,5 kb/s)
smb: \> exit
$ ls
fitxer.txt ...
...

o canviar d'usuari:

> logon bego
Password: 
Current VUID is 105
smb: \>

Enviar missatges amb smbclient

La sintaxi és:

$ smbclient -M destination-host -U my-host -n my-host

On:

  • destination-host: Ha de ser el nom de màquina de la màquina que ha de rebre el missatge. No funciona si es posa una IP (al menys a mi no em funciona). Nota: Cal tenir el servei missatger (Windows Messenger) activat al destinatari. Podeu activar/desactivar els missatges amb net start.
  • -U my-host: Permet canviar el remitent del missatge
  • -n: ???

NOTA: A la documentació de Samba posa -I per indicar l'origen, però no funciona:

-M NetBIOS name
          This options allows you to send messages, using the "WinPopup" protocol, to another computer. Once a connection is established you then type your message,
          pressing ^D (control-D) to end.

          If the receiving computer is running WinPopup the user will receive the message and probably a beep. If they are not running WinPopup the message will be lost,
          and no error message will occur.

          The message is also automatically truncated if the message is over 1600 bytes, as this is the limit of the protocol.

          One useful trick is to pipe the message through smbclient. For example: smbclient -M FRED < mymessage.txt will send the message in the file mymessage.txt to the
          machine FRED.

          You may also find the -U and -I options useful, as they allow you to control the FROM and TO parts of the message.

          See the message command parameter in the smb.conf(5) for a description of how to handle incoming WinPopup messages in Samba.

          Note: Copy WinPopup into the startup group on your WfWg PCs if you want them to always be able to receive messages.

Es poden enviar missatges UDP amb altres eines com ksalup

http://ksalup.sourceforge.net

A Windows hi ha l'eina winpopup.exe (nota: només disponible a versions anteriors a Windows XP, vegeu també winchat i MSG.EXE) que serveix per enviar un missatge a una màquina o a un usuari. El receptor del missatge ha de tenir winpopup obert per tal de rebre el missatge.

Es pot utilitzar l'ordre net per enviar missatges administratius que executaran una finestra de popup. Des de Windows amb l'ordre net:

$ net send maya "Who's There?"

On Maya és el nom de màquina i "Who's There?" és el missatge.

NOTA: A l'ordre net de Samba no hi ha opció send. S'utilitza smbclient:

A Linux es pot especificar quin ordre s'executarà per tal de mostrar els missatges rebuts (no s'utilitza per enviar missatges). Per exemple:

[global]
   message command = /bin/mail -s "SMB Message From %f on %m" root <%s; rm %s

En aquest cas el missatge s'envia utilitzant l'ordre mail i es po consultar per línia d'ordres escrivint mail.

També podríem utilitzar Zenit:

message command = DISPLAY=:0 zenity --info --title "Message Netsend de %f" --text %s

O un altre exemple amb popper-send:

message command = /usr/local/kde/bin/popper-send.sh %s %f &

Cal tenir en compte que l'usuari que s'utilitza és l'usuary nobody i no té permisos per utilitzar el client X:

$ xhost +local:nobody

També es pot utilitzar linpopup:

message command = /bin/sh -c '/usr/bin/linpopup "%f" "%m" %s; rm %s' & 
session request failed

Si feu la connexió per Ip no funciona:

$ smbclient -M 192.168.111.17 -U uprova 

Proveu per nom de màquina de netBIOS

message start: ERRSRV - ERRmsgoff (Not receiving messages.)

TODO

Comanda findsmb

Permet localitzar màquines amb recursos compartits a la xarxa:

$ findsmb
                                *=DMB
                                +=LMB
IP ADDR         NETBIOS NAME     WORKGROUP/OS/VERSION 
---------------------------------------------------------------------
192.168.12.20   sergi-ubuntu-desktop.local+[MSHOME] [Unix] [Samba 3.0.26a]
$ findsmb

                                *=DMB
                                +=LMB
IP ADDR         NETBIOS NAME     WORKGROUP/OS/VERSION 
---------------------------------------------------------------------
192.168.1.3     ACACHA        *[CASA] [Unix] [Samba 3.0.26a]
192.168.1.4     UBUNTU-SALA   +[MSHOME] [Unix] [Samba 3.0.26a]
192.168.1.5     SERGI         +[SERGI] [Windows 5.1] [Windows 2000 LAN Manager]
192.168.1.6     PORTATIL       [MSHOME] [Unix] [Samba 3.0.26a]


Recursos:

Comanda smbget

És una comanda similar a wget però que permet descarregar fitxers accessibles via Samba. Exemple:

$ smbget -R smb://acacha/carpetacompartida/prova -n

Descàrrega de forma recursiva tots es fitxers de la carpeta compartida carpetacompartida de la màquina acacha.

Comanda smbtar

Permet crear fitxers tar directament a partir de connexions remotes smb. Exemple:

$ smbtar -s acacha -x carpetacompartida -u usuari -p contrasenya -t sue.tar

Comanda smbspool

Envia a imprimir a una impressora compartida amb Samba.


Comanda smbtree

NOTA: A Windows l'ordre similar és net view sense paràmetres

Permet mostrar un arbre de dominis/màquines i recursos compartits amb Samba:

$ sudo smbtree -N
MSHOME
        \\UBUNTU-SALA                   ubuntu-sala server (Samba, Ubuntu)
                 \\UBUNTU-SALA\print$            Printer Drivers
                 \\UBUNTU-SALA\prova
                 \\UBUNTU-SALA\IPC$              IPC Service (ubuntu-sala server (Samba, Ubuntu))
        \\PORTATIL                      portatil server (Samba, Ubuntu)
                \\PORTATIL\LaserJet-1018        LaserJet-1018
                \\PORTATIL\PDF                  PDF
                \\PORTATIL\IPC$                 IPC Service (portatil server (Samba, Ubuntu))
                \\PORTATIL\print$               Printer Drivers
GRUPO_TRABAJO
        \\SERGI          
                \\SERGI\C$              Recurso predeterminado
                \\SERGI\Mi música     
                \\SERGI\IPC$            IPC remota
CASA
        \\ACACHA                        acacha server (Samba, Ubuntu)
                \\ACACHA\PDF                    PDF
                \\ACACHA\IPC$                   IPC Service (acacha server (Samba, Ubuntu))
                \\ACACHA\print$                 Printer Drivers 


Mostrar els dominis de la xarxa:

$ smbtree -D -N
MSHOME
GRUPO_TRABAJO
CASA

Mostrar noms de màquina i dominis de la xarxa:

$ sudo smbtree -N -S
MSHOME
        \\UBUNTU-SALA                   ubuntu-sala server (Samba, Ubuntu)
        \\PORTATIL                      portatil server (Samba, Ubuntu)
GRUPO_TRABAJO
        \\SERGI          
CASA
        \\ACACHA                        acacha server (Samba, Ubuntu)

L'ordre similar per a windows és l'ordre net:

C:> net view

rpcclient

Afegir un driver:

$ rpcclient localhost -N -A /tmp/0533c4cbe0a02 -c 'adddriver "Windows NT x86" "A30_ImpressoraLaserjetP2015:pscript5.dll:A30_ImpressoraLaserjetP2015.ppd:ps5ui.dll:pscript.hlp:NULL:RAW:pscript5.dll,A30_ImpressoraLaserjetP2015.ppd,ps5ui.dll,pscript.hlp,pscript.ntf,cups6.ini,cupsps6.dll,cupsui6.dll"

Exemple extret de la sortida de l'ordre cupsaddsmb.

Establir el driver a una impressora (setdriver):

$ rpcclient localhost -N -A /tmp/0533c4cc45093 -c 'setdriver HP_HP_LaserJet_P2015_Series HP_HP_LaserJet_P2015_Series'

Mostrar els drivers d'un servidor d'impressores:

$ rpcclient -Usergitur -c enumdrivers Caro
Enter sergitur's password: 

[Windows NT x86]
Printer Driver Info 1: 
	Driver Name: [HP LaserJet 2200 Series PCL]

Printer Driver Info 1:
	Driver Name: [HP LaserJet 1100 (MS)] 

Printer Driver Info 1:
	Driver Name: [HP LaserJet 2200 Series PS (MS)]

Printer Driver Info 1:
	Driver Name: [AGFA-AccuSet v52.3]

Printer Driver Info 1:
	Driver Name: [HP LaserJet P2015 Series PCL 6]

Muntar unitats de xarxa

Abans d'accedir a un servidor Samba voldrem saber quins recursos ens ofereix aquest servidor. Ho podem fer connectant a l'entorn de xarxa d'administradors com anutilus o podem utilitzar la comanda smbclient de la següent forma:

$ smbclient -N -L localhost
Anonymous login successful
Domain=[MSHOME] OS=[Unix] Server=[Samba 3.0.22]

        Sharename       Type      Comment
        ---------       ----      -------
        ADMIN$          IPC       IPC Service (casa-linux server (Samba, Ubuntu))
        IPC$            IPC       IPC Service (casa-linux server (Samba, Ubuntu))
        print$          Disk      Printer Drivers
Anonymous login successful
Domain=[MSHOME] OS=[Unix] Server=[Samba 3.0.22] 

        Server               Comment
        ---------            -------
        CASA-LINUX           casa-linux server (Samba, Ubuntu)
        PORTATIL             PORTATIL FAMILIA TUR SOLE  

        Workgroup            Master
        ---------            -------
        MSHOME               CASA-LINUX
        WORKGROUP            WINDOWS-VMWARE 

Per muntar la unitat podem utilitzar la comanda smbmount:

$ smbmount //alguna_maquina/algún_volumen /punto/de/montaje/

Exemple:

$ smbmount //192.168.168.253/tmp /mnt/smbshare

Si el servidor requereix d'usuari i password es poden utilitzar els paràmetres -username=usuari, -password=contrasenya i -workgroup=MIGRUPO.

A distribucions de Linux recents es pot utilitzar la comanda mount:

$ mount -t smbfs -o username=el_necesario,password=el_requerido //alguna_maquina/algún_volumen /punto/de/montaje/

En veritat el que fan es redireccionar mount -t smbfs a smbmount.

Per entrar com a convidat:

$ mount -t smbfs -o guest //LINUX/FTP //var/ftp

Per muntar de forma permanent un recurs anònim cal afegir una entrada al fitxer /etc/fstab:

//LINUX/FTP   /var/ftp   smbfs   user,auto,guest,ro,gid=100   0 0

La configuració al servidor seria:

[FTP]
        comment = Programática libre (RPMS)
        path = /var/ftp/pub
        public = Yes

Per muntar de forma permanent un recurs protegit cal afegir una entrada al fitxer /etc/fstab:

//servername/carpeta_compartida /mountdirectory smbfs username=windowsuserename,password=windowspassword 0 0

NOTA: El fitxer /etc/fstab és llegible per tothom! Per tant és un problema de seguretat posar aquí les contrasenyes. Cal utilitzar el sistema de credencials.

Utilitzar el sistema de credencials és utilitzar un fitxer de credencials. Aquest fitxer guarda l'usuari i el password i es pot establir de només lectura per a l'usuari. El lloc típic per al fitxer de credencials és a la HOME de l'usuari. Per exemple, creem un fitxer anomenat smbpasswd a la HOME:

$ cd
$ echo username=mywindowsusername > .smbpasswd
$ echo password=mywindowspassword >> .smbpasswd
$ chmod 600 .smbpasswd

Aleshores el fitxer /etc/fstab queda de la següent manera:

//servername/sharename /mountdirectory smbfs credentials=/home/myhomedirectory/.smbpasswd 0 0

També es pot utilitzar al muntar unitats:

$ smbmount //servername/sharename /mountdirectory -o credentials=/home/myhomedirectory/.smbpasswd

NOTA: Un inconvenient addicional és que muntant les unitats de l'anterior forma només l'usuari root hi pot escriure.

Per solucionar aquest problema podem afegir les següents opcions:

//servername/sharename /mountdirectory smbfs credentials=/home/myhomedirectory/. smbpasswd,uid=mylinuxusername,gid=mylinuxgroupname 0 0

Si es vol que múltiples usuaris tinguin permís de lectura i escriptura de la unitat muntada cal crear un grup i afegir els usuaris al grup. El fitxer /etc/fstab, queda de la següent manera:

//servername/sharename /mountdirectory smbfs credentials=/home/myhomedirectory/. smbpasswd,gid=sambausersgroup 0 0

Recursos:

Permetre als usuaris no root muntar unitats samba remotes

Crear un grup i afegir el usuaris al grup

$ sudo groupadd samba
$ sudo adduser user samba

Editar sudo per permetre als usuaris del grup muntar unitats samba

$ sudo visudo
## Members of the admin group may gain root privileges
%admin ALL=(ALL) ALL
%samba   ALL=(ALL) /bin/mount,/bin/umount,/sbin/mount.cifs,/sbin/umount.cifs

Ara podran fer:

mkdir ~/mnt
mount -t cifs //myserver_ip_address/myshare ~/mnt -o username=samb_user,noexec

Configuració de clients

Configuració amb DHCP

Es poden configurar els servidors WINS dels clients amb DHCP i els paràmetre

option netbios-name-servers 192.168.10.66, 192.168.10.97;

Consulteu l'apartat Servidor WINS de l'articles sobre DHCP.

Problemes de visualització de recursos remots (Browsing List)

SMB proveeix un mecanisme per tal que els clients puguin accedit a una llista de màquines que estan compartint recursos. Aquesta llista s'anomena Browse List. Aquesta llista només conté les màquines que estan oferint recursos remots.

La llista de màquines visualitzades es guarda al fitxer /var/cache/samba/browse.dat:

$ cat /var/cache/samba/browse.dat
"CASA"                    c0001000 "ACACHA"                      "CASA"
"ACACHA"                  408d9b0b "acacha server (Samba, Ubuntu)" "CASA"
"MSHOME"                  c0001000 "UBUNTU-SALA"                 "MSHOME" 

Pot ser molt útil en cas de problemes consultar el fitxer de log:

$ tail -f /var/log/samba/log.nmbd

   Samba server ACACHA is now a domain master browser for workgroup CASA on subnet 192.168.1.3
  
  *****
[2008/01/31 13:36:24, 0] nmbd/nmbd_become_lmb.c:become_local_master_stage2(396)
  *****
  
  Samba name server ACACHA is now a local master browser for workgroup CASA on subnet 192.168.1.3
  
  *****

La quantitat d'informació que apareixerà en aquest fitxer depèn del paràmetre loglevel.

Un problema habitual és no tenir ben configurada la compte guest. Cal recordar que la connexió IPC$ utilitza aquest usuari per accedir a la llista de recursos compartits. La connexió IPC$ (\\server\IPC$ ) és la que s'utilitza.

NOTA: Alguns recursos poder tenir activat l'opció de no permetrà l'accés anònim.

Altres problemes poden ser no haver configurat bé els paràmetres de xarxa al fitxer smb.conf.

Recursos:

Fitxers comuns (client-servidor)

Els fitxers que són comuns a client i servidor es troben al paquet samba-common:

$ dpkg -L samba-common

Comandes:

$ dpkg -L samba-common | grep bin
/usr/bin
/usr/bin/net
/usr/bin/nmblookup
/usr/bin/smbpasswd
/usr/bin/testparm

Fitxers de configuració:

$ dpkg -L samba-common | grep etc
/etc
/etc/samba
/etc/samba/gdbcommands
/etc/dhcp3
/etc/dhcp3/dhclient-enter-hooks.d
/etc/dhcp3/dhclient-enter-hooks.d/samba
/etc/pam.d
/etc/pam.d/samba

Comandes

Comanda net

Net és una comanda que permet administrar samba i servidors CIFS remotament. És l'equivalent de la comanda net de DOS.

Hi han tres tipus de protocols:

  • ADS: ActiveDirectory
  • RAP: Utilitzat per antics Win9x/NT3
  • RPC: Utilitzat per NT4 and Windows 2000.

Si no especifiquem res, automàticament net intentarà utilitzar el protocol convenient. No totes les comandes estan a tots els protocols.

Recursos:

net sam provision

$ man net | grep -A 10 PROVISION
  SAM PROVISION
      Only available if ldapsam:editposix is set and winbindd is running. Properly populates the ldap tree with the basic accounts (Administrator) and groups (Domain Users, Domain Admins, Domain
      Guests) on the ldap tree.


Gestió d'usuaris samba

Per consultar els usuaris cal executar:

$ net rpc user -Usergi
Password:
sergi
bego

NOTA: L'ordre cal executar-la al servidor PDC del domini o des de una màquina que sigui membre del domini!. Podeu saber si sou membre d'un domini i de quin amb:

$ sudo net rpc testjoin
Join to 'CURSICE' is OK

Això si executem la comanda des de el mateix servidor. Per fer-ho remotament:

$ net rpc user -Usergi -I192.168.1.3

o

$ net rpc user -Usergi -SACACHA

o

$ net rpc user -Usergi -S ACACHA

NOTA: A l'exemple cal que canvieu ACACHA pel nom NetBIOS del vostre servidor o qe poseu la IP del vostre servidor

Per cada comanda tenim ajuda en cas d'error:

$ net rpc user list -Usergi -S ACACHA 
No command: list

net [<method>] user [misc. options] [targets]
        List users

net [<method>] user DELETE <name> [misc. options] [targets]
        Delete specified user 

net [<method>] user INFO <name> [misc. options] [targets]
        List the domain groups of the specified user 

net [<method>] user ADD <name> [password] [-c container] [-F user flags] [misc. options] [targets]
        Add specified user 

net [<method>] user RENAME <oldusername> <newusername> [targets]
        Rename specified user  

Valid methods: (auto-detected if not specified)
        ads                             Active Directory (LDAP/Kerberos)
        rpc                             DCE-RPC
        rap                             RAP (older systems)  

Valid targets: choose one (none defaults to localhost)
        -S or --server=<server>         server name
        -I or --ipaddress=<ipaddr>      address of target server
        -w or --workgroup=<wg>          target workgroup or domain  

Valid miscellaneous options are:
        -p or --port=<port>             connection port on target
        -W or --myworkgroup=<wg>        client workgroup
        -d or --debuglevel=<level>      debug level (0-10) 
        -n or --myname=<name>           client name
        -U or --user=<name>             user name
        -s or --configfile=<path>       pathname of smb.conf file
        -l or --long                    Display full information
        -V or --version                 Print samba version information
        -P or --machine-pass            Authenticate as machine account
        -C or --comment=<comment>       descriptive comment (for add only)
        -c or --container=<container>   LDAP container, defaults to cn=Users (for add in ADS only)

Obtenir els SID de domini i de màquina. getlocalsid i getdomainsid

Per obtenir el sid local de la màquina:

$ sudo net getlocalsid
SID for domain SAMBA02 is: S-1-5-21-3639968310-533092537-190950812

Per obtenir el de domini:

$ sudo net getdomainsid
SID for local machine SAMBA02 is: S-1-5-21-3639968310-533092537-190950812
SID for domain INSALFACS is: S-1-5-21-3639968310-533092537-190950812

En l'últim cas coincideixen al tractar-se de un PDC. Vegeu també l'article SID per saber més sobre els Identificadors de domini. Consulteu també algorithmic rid base.

Canviar el nom del domini, canviar el SID

Consulteu:

Samba_com_a_PDC#Canviar_el_nom_d.27un_domini._Els_clients_ja_no_poden_tornar_a_afegir-se_al_domini

Apagar màquines Windows remotes

NOTA: A Windows podeu fer el mateix amb l'ordre Windows:shutdown

NOTA: A partir del Service Pack 3 de Microsoft, aquesta ordre no funciona per defecte. Cal desactivar Utilitzar uso compartido simple de archivos

La comanda:

$ sudo net rpc shutdown -I 192.168.1.20 -U sergi

Apaga la màquina remota Windows amb IP 192.168.1.20 utilitzant un usuari administrador de la màquina (en aquest cas sergi). Si no volem que pregunti la contrasenya podem executar:

$ net rpc shutdown -I 192.168.1.20 -U sergi%parauladepas

Els shutdowns no es fan immediatament i tenim un temps per cancel·lar el shutdown:

$ sudo net rpc abortshutdown -I 192.168.1.20 -U sergi

Podem utilitzar les següents opcions:

  • -r: tornar a iniciar després del shutdown
  • -f: Força la finalització de totes les aplicacions
  • -t: El temps (en segons) que ha de transcorre abans del shutdown
  • -C missatge: El missatge que es mostrarà
$ sudo net rpc shutdown -r -f -t50 -C "Reinici de la màquina " -I 192.168.1.20 -U sergi

Podeu abortar el shutdown repetint la mateixa ordre però posant net rcp abortshutdown:

$ net rpc abortshutdown -r -f -t500 -C "Reinici de la màquina " -I 192.168.111.17 -U sergitur
Enter sergitur's password:

Shutdown successfully aborted

Apagar màquines Samba remotes

NOTA: Si configureu bé samba, una màquina Linux podrà ser aturada mitjançant l'ordre shutdown de Windows

Es segueix el mateix pas que l'apartat anterior però abans cal configurar Samba. A l'apartat [globals] afegiu:

shutdown script = /etc/samba/shutdown %m %t %r %f
abort shutdown script = /sbin/shutdown -c

Creeu el fitxer /etc/samba/shutdown:

$ sudo joe /etc/samba/shutdown

Amb el següent contingut:

#!/bin/bash

$time=0
let "time/60"
let "time++"

/sbin/shutdown $3 $4 +$time $1 &

I el feu executable:

$ sudo chmod +x /etc/samba/shutdown

Comproveu que la configuració de samba és correcta:

$ sudo testparm

I torneu a iniciar Samba:

$ sudo /etc/init.d/samba restart

Ara ja podeu apagar la màquina remota Samba amb:

$ sudo net rpc shutdown -I 192.168.1.3 -U root

Unir-se a un domini amb l'ordre net

Consulteu Samba com a Domain Member Server

Grups

Abans hi havia un ordre smbgroupedit. Ara és obsoleta, es fa tot amb l'ordre map.

Grups NT:

Consultar els grups NT disponibles a un servidor/DOMINI

Des del servidor:

$ sudo net rpc group list -U root
Enter root's password:
alumnes
Domain Users
professors
Domain Guests
Domain Admins

Remotament:

$ sudo net rpc group list -U root -I 192.168.1.101

On 192.168.1.101 és la IP del servidor i l'usuari root en tots dos casos és l'administrador del domini (cal haver-lo creat al servidor amb: $ sudo smbpasswd -a root)

NOTA: Una cosa són els grups NT i un altre els mappings. Els mappigns relacionen grups Windows amb grups Unix. Per defecte no hi ha mappings però si que existeixen els grups Domain Guests, Domain Admins i Domains Users

NOTA: Els mappings si teiu els grups a un servidor Ldap no us caldran si el mateix objecte de l'arbre Ldap és alhora un grup de Linux i un grup de Windows

Afegir un grup

$ sudo net rpc group add "alumnes1" -Uroot

TODO, per què surt l'error:

Failed to add group 'alumnes1' with: Access is denied.

Consultar els membres d'un grup:

$ sudo net rpc group members "Domain Admins"
Enter root's password:
CURSICE\root

Afegir/eliminar un membre a un grup:

$ sudo net rpc group addmem "NOM_DOMINI\Domain Admins" usuari -Uroot
$ sudo net rpc group delmem "NOM_DOMINI\Domain Admins" usuari -Uroot

Si us dona l'error:

Could not add cursice to NOM_DOMINI\Domain Admins: NT_STATUS_ACCESS_DENIED

Consultar els mappings de grups:

$ sudo net groupmap list

Si tenim Ldap i utilitzem libnss-ldap podeu executar:

$ sudo getent group | grep "Domain"
Domain Admins:*:512:root
Domain Users:*:513:
Domain Guests:*:514:
Domain Computers:*:515:
$ sudo net groupmap list | grep "Domain"
Domain Admins (S-1-5-21-4045161930-1404234508-1517741366-512) -> Domain Admins
Domain Users (S-1-5-21-4045161930-1404234508-1517741366-513) -> Domain Users
Domain Guests (S-1-5-21-4045161930-1404234508-1517741366-514) -> Domain Guests
Domain Computers (S-1-5-21-4045161930-1404234508-1517741366-515) -> Domain Computers
$ sudo su
# id
uid=0(root) gid=0(root) grups=0(root),512(Domain Admins)

Com podeu veure els grups de Windows també existeixen com usuaris locals...

Afegir un mapping:

Per exemple els mappings més habituals són:

$ sudo net groupmap add ntgroup="Domain Admins" unixgroup=root rid=512 type=d
$ sudo net groupmap add ntgroup="Domain Users" unixgroup=users rid=513 type=d
$ sudo net groupmap add ntgroup="Domain Guests" unixgroup=nobody rid=514 type=d

Cal assegurar-se que els grups Unix root, users i nobody existeixen a la màquina. Per exemple:

$ sudo addgroup nobody

NOTA: nobody sol ser l'únic grup que cal crear. A Ubuntu server 9.04 el grup users i el grup root ja existeixen

Treure un mapping:

$ sudo net groupmap delete ntgroup="Domain Admins"

Privilegis

http://www.samba.org/samba/docs/man/Samba-HOWTO-Collection/rights.html

Per defecte estan activats a samba però depèn del paràmetre del fitxer /etc/samba/smb.conf:

enable privileges = Yes

Segons el manual:

enable privileges (G)

          This parameter controls whether or not smbd will honor privileges assigned to specific SIDs via either net rpc rights or one of the Windows user and group
          manager tools. This parameter is enabled by default. It can be disabled to prevent members of the Domain Admins group from being able to assign privileges to
          users or groups which can then result in certain smbd operations running as root that would normally run under the context of the connected user.

          An example of how privileges can be used is to assign the right to join clients to a Samba controlled domain without providing root access to the server via
          smbd.

          Please read the extended description provided in the Samba HOWTO documentation.

          Default: enable privileges = yes


Els privilegis possibles són:

Privilege	                Description

SeMachineAccountPrivilege       Add machines to domain

SePrintOperatorPrivilege        Manage printers

SeAddUsersPrivilege             Add users and groups to the domain 

SeRemoteShutdownPrivilege       Force shutdown from a remote system

SeDiskOperatorPrivilege         Manage disk share

SeTakeOwnershipPrivilege        Take ownership of files or other objects

SeBackupPrivilege               Back up files and directories

SeRestorePrivilege              Restore files and directories

Consultar els privilegis:

Permet saber tots els privilegis possibles que hi ha a un servidor:

# sudo net rpc rights list -Uroot -I192.168.50.41
Enter root's password:
     SeMachineAccountPrivilege  Add machines to domain
      SeTakeOwnershipPrivilege  Take ownership of files or other objects
             SeBackupPrivilege  Back up files and directories
            SeRestorePrivilege  Restore files and directories
     SeRemoteShutdownPrivilege  Force shutdown from a remote system
       SePrintOperatorPrivilege  Manage printers
           SeAddUsersPrivilege  Add users and groups to the domain
       SeDiskOperatorPrivilege  Manage disk shares

On amb -I heu d'indicar l'adreça Ip del servidor, i root és l'usuari administrador del domini.

Consultar els privilegis de tots els usuaris:

A l'exemple utilitzem un usuari anomenat sergitur, aquest usuari ha de tenir permisos (podeu utilitzar sinó l'usuari root)

$ sudo net rpc rights list accounts -Usergitur -I192.168.0.207
Enter sergitur's password:
BUILTIN\Print Operators
No privileges assigned

BUILTIN\Account Operators
No privileges assigned

BUILTIN\Backup Operators
No privileges assigned

BUILTIN\Server Operators
No privileges assigned

BUILTIN\Administrators
SeMachineAccountPrivilege
SeTakeOwnershipPrivilege
SeBackupPrivilege
SeRestorePrivilege
SeRemoteShutdownPrivilege
SePrintOperatorPrivilege
SeAddUsersPrivilege
SeDiskOperatorPrivilege

Everyone
No privileges assigned


Consultar els privilegis d'un usuari concret:

$ sudo net rpc rights list sergitur -Uroot

Donar privilegis a un grup:

$ net rpc rights grant 'INSMONTSIA\Domain Admins' SeMachineAccountPrivilege -I192.168.0.11 -Uroot
Enter root's password:
Successfully granted rights.

A l'exemple INSMONTSIA és el nom del domini.

Donar privilegis a un usuari

Amb grant:

$ sudo net rpc rights grant "sergitur" SeMachineAccountPrivilege -Uroot

Només ho pot fer l'usuari root o qui tingui el privilegi SeAddUsersPrivilege.

Un altre exemple:

$ net -d 3 -S JAZZY rpc rights grant 'JAZZY\tech' SeMachineAccountPrivilege

Un exemple de com afegir tots els privilegis:

$ sudo net rpc rights grant "sergitur" 
$ sudo net rpc rights list -Uroot -Usergitur
$ sudo net rpc rights grant "sergitur" SeTakeOwnershipPrivilege -Usergitur
$ sudo net rpc rights grant "sergitur" SeBackupPrivilege -Usergitur
$ sudo net rpc rights grant "sergitur" SeRestorePrivilege -Usergitur
$ sudo net rpc rights grant "sergitur" SeRemoteShutdownPrivilege -Usergitur
$ sudo net rpc rights grant "sergitur" SePrintOperatorPrivilege -Usergitur
$ sudo net rpc rights grant "sergitur" SeAddUsersPrivilege -Usergitur
$ sudo net rpc rights grant "sergitur" SeDiskOperatorPrivilege -Usergitur

IMPORTANT: Si se quiere usar el usuario del dominio "INSEBRE\ejemplo" hay que añadir la opción -I y la IP del servidor

O podeu utilitzar el següent script de bash:

#!/bin/bash

#$ sudo net rpc rights list -Uroot -I192.168.1.7
#Enter root's password:
#     SeMachineAccountPrivilege  Add machines to domain
#      SeTakeOwnershipPrivilege  Take ownership of files or other objects
#             SeBackupPrivilege  Back up files and directories
#            SeRestorePrivilege  Restore files and directories
#     SeRemoteShutdownPrivilege  Force shutdown from a remote system
#      SePrintOperatorPrivilege  Manage printers
#           SeAddUsersPrivilege  Add users and groups to the domain
#       SeDiskOperatorPrivilege  Manage disk shares

USER="root"
USER1="root"
SERVER_IP="192.168.1.7"

echo "Privileges of user $USER before executing this command:"

/usr/bin/net rpc rights list "$USER" -U$USER1 -I$SERVER_IP

echo

for privilege in SeMachineAccountPrivilege SeTakeOwnershipPrivilege SeBackupPrivilege SeRestorePrivilege \
                 SeRemoteShutdownPrivilege SePrintOperatorPrivilege SeAddUsersPrivilege SeDiskOperatorPrivilege ; do
        /usr/bin/net rpc rights grant "$USER" $privilege -U$USER1 -I$SERVER_IP
 done

echo

echo "Privileges of user $USER after executing this command:"

/usr/bin/net rpc rights list "$USER" -U$USER1 -I$SERVER_IP


També podeu fer:

$ sudo net rpc rights grant "santifilgueira" SeTakeOwnershipPrivilege SeBackupPrivilege SeRestorePrivilege SeRemoteShutdownPrivilege SePrintOperatorPrivilege 
SeAddUsersPrivilege SeDiskOperatorPrivilege -Usergitur
$ sudo net rpc rights list sergitur -Usergitur
Enter sergitur's password:
SeMachineAccountPrivilege
SeTakeOwnershipPrivilege
SeBackupPrivilege
SeRestorePrivilege
SeRemoteShutdownPrivilege
SePrintOperatorPrivilege
SeAddUsersPrivilege
SeDiskOperatorPrivilege

IMPORTANT: Sembla que els privilegis s'han d'assignar a cada servidor!! No es guarden a Ldap.

Revocar privilegis:

Amb revoke:

net -U santifilgueira rpc rights revoke 'Unix User\ramontoya' SeTakeOwnershipPrivilege SeBackupPrivilege SeRestorePrivilege SeRemoteShutdownPrivilege SePrintOperatorPrivilege

Elimina los privilegios del usuario indicado

Vegeu també Samba_amb_Ldap#Domain_Admins

Crear usuaris que puguin afegir màquines al domini

Consulteu:

Crear un usuari de màquina (MTA)
TODO

Cal indicar un flag però no sé quin és:

$ sudo net user add -F ??????? usuari
Resol·lució de problemes. Troubleshooting

Si el primary group RID del root no és 512 aleshores no és del grup Admins?

Potser que sigui per què no hi ha el mapping. Proveu:

Eliminar l'usuari root de Samba:

$ sudo smbpasswd -x root

Crear els mappings per defecte (al menys el del grup Domain Admins):

$ sudo net groupmap add ntgroup="Domain Admins" unixgroup=root rid=512 type=d
$ sudo net groupmap add ntgroup="Domain Users" unixgroup=users rid=513 type=d
$ sudo addgroup nobody
$ sudo net groupmap add ntgroup="Domain Guests" unixgroup=nobody rid=514 type=d

Tornar-lo a crear:

$ sudo smbpasswd -a root

Consulteu el RID si és correcte amb:

$ pdbedit -vL root
Primary Group SID:    S-1-5-21-4239967304-1649332975-1240260716-512
On es guarden els privilegis?

Al fitxer:

/var/lib/samba/$lockdir/account_policy.tdb

Comanda nmblookup

És una comanda client que permet resoldre noms de NetBIOS sobre una xarxa TCP/IP. Per exemple si volem saber la IP de la màquina

$ nmblookup ubuntu-sala
Server's Role (logon server) NOT ADVISED with domain-level security
querying ubuntu-sala on 192.168.1.255
192.168.1.2 ubuntu-sala<00>

També podem cercar per un tipus de recurs NetBIOS (Resource Type):

$ nmblookup INSEBRE#1B
querying INSEBRE on 192.168.0.255
192.168.0.8 INSEBRE<1b>

IMPORTANT: Per tant, compte amb nmblookup que no us mostra tots els tipus de registre, només mostra per defecte els 00 (màquines de treball). Podeu utilitzar -S per mostrar tots els tipus de recursos de la màquina

També podem consultar noms de grup:

$ nmblookup MSHOME
Server's Role (logon server) NOT ADVISED with domain-level security
querying MSHOME on 192.168.1.255
192.168.1.6 MSHOME<00>
192.168.1.2 MSHOME<00>
169.254.98.26 MSHOME<00>

Podem mostrar tots els Local Master Browser (LMB) d'un segment de xarxa:

$ nmblookup -M -- -
Server's Role (logon server) NOT ADVISED with domain-level security
querying __MSBROWSE__ on 192.168.1.255
192.168.1.3 __MSBROWSE__<01>
192.168.1.2 __MSBROWSE__<01>

Del manual de smb.conf:

 -M
      Searches for a master browser by looking up the NetBIOS name name with a type of 0x1d. If
      name is "-" then it does a lookup on the special name __MSBROWSE__. Please note that in order 
      to use the name "-", you need to make sure "-" isnŽt parsed as an argument, e.g. use : 
      nmblookup -M -- -.

És a dir, podeu utilitzar també:

$  nmblookup -M __MSBROWSE__

O consultar el LMB d'un grup de treball concret:

$ nmblookup -M casa
querying casa on 192.168.1.255
192.168.1.3 casa<1d>

La consulta és pot fer sobre un servidor WINS concret:

$ nmblookup -U servidor_WINS -R nom

Per exemple

$ nmblookup -U samba.org -R "IRIX#1B"

Fer una consulta per IP:

$ nmblookup -A 192.168.1.15

També se pot utilitzar per consultar l'estat amb -S:

NOTA: -S indica que a més de tornar la IP es mostri l'estat del node corresponent, és a dir tots els noms de NetBIOS registrats per aquella màquina.

# nmblookup -S "CARO#<20>"
querying CARO on 192.168.0.255
192.168.0.8 CARO<00>

i a més mostra:

Looking up status of 192.168.0.8
	CARO            <00> -         H <ACTIVE>  
	CARO            <03> -         H <ACTIVE> 
	CARO            <20> -         H <ACTIVE> 
	..__MSBROWSE__. <01> - <GROUP> H <ACTIVE> 
	ALUMNAT         <1d> -         H <ACTIVE> 
	ALUMNAT         <1b> -         H <ACTIVE> 
	ALUMNAT         <1c> - <GROUP> H <ACTIVE> 
	ALUMNAT         <1e> - <GROUP> H <ACTIVE> 
	ALUMNAT         <00> - <GROUP> H <ACTIVE> 

	MAC Address = 00-00-00-00-00-00

On:

  • Nom NetBIOS. Primera fila: Nom registrat

Per exemple:

CARO            <00> -         H <ACTIVE>  

I:

CARO            <03> -         H <ACTIVE> 

Determina que aquesta màquina té disponible el servei de missatges popup (tipus 03) i que comparteix fitxers (tipus 20).

En canvi:

ALUMNAT         <00> - <GROUP> H <ACTIVE>

Està definint el domini ALUMNAT (tipus 00 i GROUP). A més la màquina 192.168.08 és:

IMPORTANT: Fixeu-vos com el tipus 00 té significats diferents si és tracta d'un nom únic o d'un grup!

Defineix una estació de treball (tipus 00) amb el nom registrat caro en un tipus de node H i que està activa Per expressar el tipus de nom de NetBIOS s'afegeix "#<tipus>" al nom NetBIOS. També es pot utilitzar "*" (amb les cometes incloses), el que farà que es consultin totes les màquines (broadcast si no hi ha WINS o totes les màquines registrades al servidor WINS).

El següent exemple és utilitzant WINS:

$ nmblookup -R -S -U 192.168.0.8 '*'

querying * on 192.168.0.8
192.168.0.8 *<00>
Looking up status of 192.168.0.8 
	CARO            <00> -         H <ACTIVE> 
	CARO            <03> -         H <ACTIVE> 
	CARO            <20> -         H <ACTIVE> 
	..__MSBROWSE__. <01> - <GROUP> H <ACTIVE> 
	ALUMNAT         <1d> -         H <ACTIVE> 
	ALUMNAT         <1b> -         H <ACTIVE> 
	ALUMNAT         <1c> - <GROUP> H <ACTIVE> 
	ALUMNAT         <1e> - <GROUP> H <ACTIVE> 
	ALUMNAT         <00> - <GROUP> H <ACTIVE> 

	MAC Address = 00-00-00-00-00-00

Sense WINS seria:

$ nmblookup -S '*'

La comanda equivalent en Windows és NBTSTAT.

La funcionalitat és similar a la comanda host per a DNS.

Recursos:

Comanda smbpasswd

Permet gestionar les contrasenyes dels usuaris de Samba

$ sudo smbpasswd sergi

Ens demanarà l'usuari i contrasenya de l'usuari. En cas que ens doni l'error:

Failed to find entry for user sergi.
Failed to modify password entry for user sergi

Segurament ens esta indicant que l'usuari no existeix com a usuari de Unix.

L'opció -x (com a root) permet borrar un usuari:

$ sudo smbpasswd -x sergi

Recursos:

Comanda testparm

Serveix per provar els paràmetres de configuració de samba:

$ testparm 
Load smb config files from /etc/samba/smb.conf
Processing section "[printers]"
Processing section "[print$]"
Processing section "[homes]"
Processing section "[aMule]"
Loaded services file OK.
Server role: ROLE_DOMAIN_PDC
Press enter to see a dump of your service definitions
 
[global]
       workgroup = CASA
       server string = %h server (Samba, Ubuntu)
       obey pam restrictions = Yes
...

IMPORTANT: Només mostra els valors que són diferents dels valors per defecte. Per mostra-ho tot utilitzeu -v:

$ sudo testparm -v

I per que mostri tot sense necessitar de pressionar cap tecla:

$ sudo testparm -v -s

Aleshores es poden buscar valors concrets de configuració, per exemple:

$ sudo testparm -s | grep algorithmic
...

No mostra res. En canvi:

$ sudo testparm -s -v | grep algorithmic
	algorithmic rid base = 1000

La comanda és mol útil per treballar en un servidor en execució. Fem les proves de configuració a un fitxer diferent (smb.conf.master):

#  cd /etc/samba
#  testparm -s smb.conf.master > smb.conf
#  testparm

Recursos:

Gestió de comptes d'usuari amb Samba

Sistemes d'encriptació. Windows vs Unix

El sistema d'encriptació de Windows és diferent al sistema d'encriptació de Unix. Clients antics de Windows enviaven les contrasenyes sense xifrar (text clar) per la xarxa a l'hora d'intentar validar-se en un domini. Actualment totes les versions de Windows envien les contrasenyes xifrades.

No hi ha un sistema per passar una paraula de pas xifrada en sistema Windows a Unix. És per aquesta raó que no es poden utilitzar les contrasenyes dels usuaris de Linux (tot i que si es poden utilitzar els usuaris) i cal emmagatzemar les contrasenyes en algun altre lloc. A més Windows emmagatzema certa informació per a cada usuari que no podem trobar disponible en la base de dades d'usuaris Unix (les màquines des de les quals l'usuari podran validar-se, l'script de logon, etc.).

Identificadors Samba (SID) vs identificadors Unix (UID)

Per al correcte funcionament de Samba és imprescindible que es faci un mapeig correcte dels identificador de Samba versus els identificadors Unix. Els següents esquemes mostren aquest procediment:

Idmap-sid2uid.png

Idmap-uid2sid.png

Totes les operacions que es fan en un sistema Linux requereixen d'un identificador d'usuari (UID). De forma similar totes les operacions de les versions de servidor de Windows MS Windows NT4/200x requereixen també d'un identificador (SID).

Samba proporciona dos mètodes per mapejar UID a SID:

  • Cada usuaris de Samba ha de tenir el corresponent usuari local Unix. Samba pot cridar a la comanda useradd per afegir l'usuari.
  • L'altre opció és fer un mapeig de SID vs UID amb idmap. Això es pot fer amb els paràmetres idmap uid i idmap gid del fitxer smb.conf.

idmap_ad

Un backend IDMAP.

Recursos:

Password Backends

Amb Samba hi han tres possibles maneres (password backends aka passdb) de guardar les paraules de pas dels usuaris:

  • smbpasswd: Aquest sistema és considera obsolet.
  • tdbsam: Recomanat per a tots els sistemes simples.
  • ldapsam: Recomanat en sistemes complexes, funciona amb una base de dades Ldap
ldapsam_compat: TODO

Podeu considerar els passwords backends com a base de dades d'usuaris i contrasenyes.

El paràmetre que s'encarrega de configurar el password backend al fitxer /etc/samba/smb.conf és:

passdb backend

Exemples:

passdb backend = ldapsam:ldap://localhost

Del manual (man smb.conf):

passdb backend (G)
            This  option allows the administrator to chose which backend will
            be used for storing user and  possibly  group  information.  This
            allows  you  to  swap between dfferent storage mechanisms without
            recompile.

            The parameter value is divided  into  two  parts,  the  backend’s
            name,  and a ’location’ string that has meaning only to that par‐
            ticular backed. These are separated by a : character.

            Available backends can include:

               ·  smbpasswd - The default smbpasswd backend. Takes a path  to
                  the smbpasswd file as an optional argument.

               ·  tdbsam  -  The  TDB based password storage backend. Takes a
                  path to the  TDB  as  an  optional  argument  (defaults  to
                  passdb.tdb in the private dir directory.

               ·  ldapsam  - The LDAP based passdb backend. Takes an LDAP URL
                  as an optional argument (defaults to ldap://localhost)

Compatibilitat enrere:

Samba versió 3 suporta altres backends per tal de ser compatible amb versions anteriors. Aquests backends seran eliminats en futures versions:

  • Plaintext: No és realment un backend. Pot utilitzar els fitxers tradicionals de UNIX (etc/passwd o /etc/shadow).
  • smbpasswd:
   This backend should be used only for backward compatibility with older versions of Samba. It may be deprecated in future releases. 
  • ldapsam_compat: suport ldap per a versions 2 de Samba.

smpasswd

tdbsam

Aquest backend guarda les contrasenyes de l'antic format smbpasswd i també suporta el format extended MS Windows NT/200x SAM. La informació es guarda en un fitxer binari amb extensió tdb (trivial database). Aquest sistema permet implementar tots els sistemes de control dels servidors MS Windows NT4/200x.

Tdbsam permet tot el que pot fer el ldap però no esta recomanat per instal·lacions amb més de 250 usuarisi i a més no suporta configuracions múltiples de controladors de domini (Per exemple un controlador primari de domini (PDC) més un o més backups (BDC)).

ldapsam

La versió 3 ha introduït un suport estes per a LDAP i permet més opcions de control. Es poden utilitzar configuracions de control d'accés per usuari, perfils, etc i suporta perfectament sistemes distribuïts (Controladors primaris de domini amb múltiples backups)

Clients Windows

Comandes de Windows

Comanda net de Windows

Com amb samba (vegeu Comanda net), amb windows també existeix una comanda net. Cal dir però que no funcionen exactament igual.

Fer un login remot

> net use \\192.168.111.17 /u:insebre\sergitur

Un cop fet el login remot podem executar ordres remotes a aquella màquina. Consulteu l'exemple Windows:Shutdown.

Fer un logout

>net use \\192.168.111.17\IPC$ /delete

Connectar-se a una unitat remota

Per connectar una unitat remota:

C:\> net use m: \\servername\service

Mostrar les connexions actuals

Aquest exemple s'ha realitzat amb un usuari de domini.

Podeu consultar les connexions amb:

U:\>net use
Se registrarán las nuevas conexiones.
 
Estado       Local     Remoto                    Red

-------------------------------------------------------------------------------
Conectado    U:        \\caro\sergitur           Red de Microsoft Windows
Conectado    X:        \\caro\Departaments       Red de Microsoft Windows
Conectado    LPT1      \\caro\A30_ImpressoraLaserjetP2015
                                                 Red de Microsoft Windows
Conectado    LPT2      \\caro\A30_ImpressoraLaserjetP2015
                                                  Red de Microsoft Windows
Conectado    LPT4      \\caro\A30_ImpressoraLaserjetP2015
                                                Red de Microsoft Windows
Se ha completado el comando correctamente.

Si executeu:

U:\>net use X: /DELETE
X: ha sido eliminado.

Ara veureu una connexió menys:

U:\>net use
Se registrarán las nuevas conexiones.
  

Estado       Local     Remoto                    Red

-------------------------------------------------------------------------------
Conectado    U:        \\caro\sergitur           Red de Microsoft Windows
Conectado    LPT1      \\caro\A30_ImpressoraLaserjetP2015
                                                 Red de Microsoft Windows
Conectado    LPT2      \\caro\A30_ImpressoraLaserjetP2015
                                                 Red de Microsoft Windows
Conectado    LPT4      \\caro\A30_ImpressoraLaserjetP2015
                                                Red de Microsoft Windows
Se ha completado el comando correctamente.

Mostrar les dades d'una unitat connectada

U:\>net use x:
Nombre local         X:
Nombre remoto        \\caro\Departaments
Tipo de recurso      Disco
Estado               Conectado
Abiertos             0
Nº de conexiones     1
Se ha completado el comando correctamente.

També es pot utilitzar amb impressores però han d'estar disponibles.

Ajuda per a connectar/utilitzar unitats remotes

De:

Net use

Connects a computer to or disconnects a computer from a shared resource, or displays information about computer connections. The command also controls persistent net  
connections. Used without parameters, net use retrieves a list of network connections.

Syntax

net use [{DeviceName | *}] [\\ComputerName\ShareName[\volume]] [{Password | *}]] [/user:[DomainName\]UserName] [/user:[DottedDomainName\]UserName] [/user: [UserName@DottedDomainName] [/savecred] [/smartcard] [{/delete | /persistent:{yes | no}}]

net use [DeviceName [/home[{Password | *}] [/delete:{yes | no}]]

net use [/persistent:{yes | no}] Top of pageTop of page Parameters

DeviceName : Assigns a name to connect to the resource or specifies the device to be disconnected. There are two kinds of device names: disk drives (that is, D: through Z:) and printers (that is, LPT1: through LPT3:). Type an asterisk (*) instead of a specific device name to assign the next available device name.

\\ComputerName\ShareName : Specifies the name of the server and the shared resource. If ComputerName contains spaces, use quotation marks around the entire computer name from the double backslash (\\) to the end of the computer name (for example, "\\Computer Name\Share Name"). The computer name can be from 1 to 15 characters long.

\volume : Specifies a NetWare volume on the server. You must have Client Service for NetWare installed and running to connect to NetWare servers.

Password : Specifies the password needed to access the shared resource. Type an asterisk (*) to produce a prompt for the password. The password is not displayed when you type it at the password prompt.

/user : Specifies a different user name with which the connection is made.

DomainName : Specifies another domain. If you omit DomainName, net use uses the current logged on domain.

UserName : Specifies the user name with which to log on.

DottedDomainName : Specifies the fully-qualified domain name for the domain where the user account exists.

/savecred : Stores the provided credentials for reuse.

/smartcard : Specifies the network connection is to use the credentials on a smart card. If multiple smart cards are available, you are asked to specify the credential.

/delete : Cancels the specified network connection. If you specify the connection with an asterisk (*), all network connections are canceled.

/persistent:{yes | no} : Controls the use of persistent network connections. The default is the setting used last. Deviceless connections are not persistent. Yes saves all connections as they are made, and restores them at next logon. No does not save the connection being made or subsequent connections. Existing connections are restored at the next logon. Use /delete to remove persistent connections.

/home : Connects a user to the home directory.

net help command : Displays help for the specified net command. Top of pageTop of page Remarks •

Connecting and disconnecting from a network resource

Use net use to connect to and disconnect from a network resource, and to view your current connections to network resources. You cannot disconnect from a shared directory if you use it as your current drive or an active process is using it. •

Viewing connection information

To view information about a connection, you can do either of the following: •

Type net use DeviceName to get information about a specific connection. •

Type net use to get a list of all the computer's connections. •

Using deviceless connections

Deviceless connections are not persistent. •

Connecting to NetWare servers

After you install and run Client Service for NetWare, you can connect to a NetWare server on a Novell network. Use the same syntax that you use to connect to a Windows Networking server, except you must include the volume you to which you want to connect. •

Using quotation marks

If the ServerName that you supply contains spaces, use quotation marks around the text (that is, "Server Name"). If you omit quotation marks, an error message appears. Top of pageTop of page Examples

To assign the disk-drive device name E: to the Letters shared directory on the \\Financial server, type:

net use e: \\financial\letters

To assign (map) the disk-drive device name M: to the directory Mike within the Letters volume on the \\Financial NetWare server, type:

net use m: \\financial\letters\mike

To connect the user identifier Dan as if the connection were made from the Accounts domain, type:

net use d:\\server\share /user:Accounts\Dan

To disconnect from the \\Financial\Public directory, type:

net use f: \\financial\public /delete

To connect to the resource memos shared on the \\Financial 2 server, type:

net use k: "\\financial 2" \memos

To restore the current connections at each logon, regardless of future changes, type:

net use /persistent:yes Top of pageTop of page

Utilitzeu també:

U:\>net help use

Connectar-se a una impressora remota

Consulteu Samba_i_CUPS#Connectar_un_client_Windows_a_una_impressora_per_l.C3.ADnia_d.27ordres_de_DOS_o_Netlogon

Desconnectar-se d'una unitat remota o impressora

Per desconnectar la impressora podeu utilitzar:

c:\> NET USE unitat: /DELETE

Si la unitat està ocupada us mostrarà el següent missatge:

U:\>net use u: /DELETE
Hay archivos abiertos y/o búsquedas incompletas de directorios pendientes en la
conexión con u:.

¿Desea continuar la desconexión y forzar el cierre? (S/N) [N]: n

Podeu donar una resposta per defecte amb:

U:\>net use u: /DELETE /YES
Hay archivos abiertos y/o búsquedas incompletas de directorios pendientes en la
conexión con u:.

u: ha sido eliminado.

Es poden desconnectar totes les unitats amb:

U:\>net use u: /DELETE * /YES

Per a impressores consulteu Samba_i_CUPS#Connectar_un_client_Windows_a_una_impressora_per_l.C3.ADnia_d.27ordres_de_DOS_o_Netlogon

Connectar un usuari a la seva home

U:\>net use g: /home
La unidad g: está conectada a \\caro\sergitur. Su directorio principal es g:\.

Connexions persistents

TODO

Registre de Windows Windows NT, 2000 and XP:

Usuaris actuals

[HKEY_CURRENT_USER\Software\Microsoft\Windows NT\CurrentVersion\Network\Persistent Connections]

Nous usuaris:

regedt32.exe
HKEY_USERS\.DEFAULT\Software\Microsoft\Windows NT\CurrentVersion\Network\Persistent Connections
Double click on SaveConnections
Change to 'no' (don't type the quotes). Click OK
Close the registry editor

Fitxer NETLOGON d'exemple

Un fitxer de NETLOGON pot contenir quelcom similar a:

net time \\SERVER_NETBIOS_NAME /set /yes
net use p: \\SERVER_NETBIOS_NAME\aulalinux
net use LPT1: \\SERVER_NETBIOS_NAME\MyPrinter

Que estableix l'hora del client, un recurs compartit que es munta a l'unitat p: i la configuració d'una impressora. Consulteu Samba com a PDC per tal d'obtenir més informació.

L'ordre equivalent a net use per Samba és:

smbclient

Veure els recursos compartits d'una maquina. net view

NOTA: A Linux podeu utilitzar l'ordre smbclient

Si l'utilitzeu sense paràmetres us mostra la llista de servidors disponibles (similar a l'ordre smbtree a Linux):

U:\>net view
Servidor               Descripción

-----------------------------------------------------------------------
\\A14PC0
\\A35PC0
\\ASPPC0
\\ASPPC1
\\CARO                 Alumnat
\\DEPELECTRICPC2
\\DEPSSCPC1
\\EUROPA               Gestio
\\LINUX                Professorat
\\MANTENIMENT          Manteniment server (Samba, Ubuntu)
\\P-E9404F66AD824
\\PC0DEPADMIN
\\PC0DEPCIENCIES
\\PC0DEPEDIFOBRA
\\PC0DEPELECTRIC       pc0depelectric
...
Se ha completado el comando correctamente.

NOTA: Només mostra els servidors del domini o grup de treball al que esteu connectats. Si voleu consultar altres dominis o grups de treball:

> NET VIEW /DOMAIN
Dominio

----------------------------------------------------------------------
INICIOMS
INSEBRE
WORKGROUP
Se ha completado el comando correctamente.

Mostra els dominis o grups de treball disponibles.

Podeu consultar els servidors/estacions de treball d'un domini concret amb:

> net view /DOMAIN:insebre
Servidor               Descripción

---------------------------------------------------------------------
\\A14PC0
\\A30PC00
\\A32PC07
\\ASPPC0
\\ASPPC1
\\CARO                 Alumnat
\\DEPELECTRICPC2
\\DEPSANITATPC02
\\DEPSANITATPC04
\\DEPSANITATPC05
\\DEPSSCPC1
\\EUROPA               Gestio
\\LINUX                Professorat
\\MANTENIMENT          Manteniment server (Samba, Ubuntu)
\\P-E9404F66AD824
...

Se ha completado el comando correctamente.

Per consultar els recursos compartits d'una màquina concreta:

C:\> net view \\192.168.1.1
Shared resources at \\192.168.1.1
Share name Type Used as Comment
-----------------------------------------------------------
pub          Disk
private       Disk
The command completed successfully.

O també podeu utilitzar el nom NetBIOS:

U:\>net view \\caro
Recursos compartidos en \\caro

Alumnat

Nombre de recurso compartido  Tipo       Usado como
               Comentario

------------------------------------------------------------------
A30_ImpressoraLaserjetP2015   Impresora
                HP LaserJet P2015 Series
departaments                  Disco      X:
                Carpetes dels diferents Departaments del Centre
HP_HP_LaserJet_P2015_Series   Impresora
                HP HP LaserJet P2015 Series
sergitur                      Disco      U:
                Home Directories
Se ha completado el comando correctamente.

NOTA: L'ordre similar a net view per a Samba és smbtree

C:\> net use j: \\192.168.1.1\pub
The command completed successfully.

L'ordre equivalent de samba és smbtree

Unir-se a un domini Windows NT

La sintaxi és:

$ net rpc join -S NOM_PDC -U usuari_administrador

Consulteu:

Samba com a Domain Member Server

Enviar missatges amb net send

NOTA: Amb l'ordre smbclient -M es pot enviar un missatge a un client Windows des de Samba

Tenim varies formes d'enviar un missatge amb l'ordre send de Windows:

> NET SEND * "Missatge"

Envia un missatge de difusió a tots els clients registrats al domini local (domini definit pel registre de NetBIOS<00>) a través de cada protocol (si un client es connecta per 3 protocols, p. ex. NWLINK, TCP/IP i NetBEUI rebrà 3 missatges)

> NET SEND /DOMAIN:NAME "Missatge"

Envia un missatge al domini especificat. Com l'anterior s'envia un missatge a cada protocol.

NOTA: Amb NET SEND * i NET SEND /DOMAIN:NAME, només els usuaris de la subxarxa local que pertanyen al mateix domini rebran el missatge 150881 . La difusió de missatges no es encaminada pels routers

> NET SEND NAME "Missatge"

Envia un missatge dirigit a la màquina amb nom de NetBIOS "NAME" (busca el registre de tipus <03>).

> NET SEND /USERS

Envia un missatge dirigit a l'entrada NetBIOS <03> per al nom d'equip i a cada sessió establerta al servidor.

> SERVER MANAGER - SEND MESSAGE

Envia un missatge dirigit a l'entrada <03> de NetBIOS per a cada equip connectat al servidor. A diferencia de NET SEND /USERS, solament s'envia un missatge a cada equip connectat, encara que l'equip hagui establert múltiples sessions al servidor.

Vegeu també:

Consulteu també:

Activar/aturar un servei. net start/stop

Es pot iniciar el "missatger" de Windows (Windows Messenger) amb:

U:\> net start messenger
El servicio de Mensajero está iniciándose.
El servicio de Mensajero se ha iniciado con éxito.

O aturar amb:

U:\>net stop messenger
El servicio de Mensajero está deteniéndose.........
El servicio de Mensajero fue detenido con éxito.

Es pot consultar tota la llista de serveis amb:

C:\Documents and Settings\prova>net start
Se han iniciado estos servicios de Windows:

  Actualizaciones automáticas
  Administrador de cuentas de seguridad
  Administrador de discos lógicos
  Almacenamiento protegido
  Audio de Windows
  Ayuda de NetBIOS sobre TCP/IP
  Ayuda y soporte técnico
  Centro de seguridad
  Cliente de seguimiento de vinculos distribuidos
  Cliente DHCP
  Cliente DNS
  Cliente Web
  Cola de impresión
  Compatibilidad de cambio rápido de usuario
  Conexiones de red
  Configuración inalámbrica rápida
  Detección de hardware shell
  Estación de trabajo
  Examinador de equipos
  Firewall de Windows/Conexión compartida a Internet (ICS)
  Horario de Windows
  Iniciador de procesos de servidor DCOM
  Inicio de sesión secundario
  Instrumental de administración de Windows
  Java Quick Starter
  Llamada a procedimiento remoto (RPC)
  Machine Debug Manager
  NLA (Network Location Awareness)
  Notificación de sucesos del sistema
  Plug and Play
  Programador de tareas
  Registro de sucesos
  Registro remoto
  SEMC SDK Service
  Servicio de descubrimientos SSDP
  Servicio de informe de errores
  Servicio de puerta de enlace de capa de aplicación
  Servicio de restauración de sistema
  Servicio de transferencia inteligente en segundo plano
  Servicios de cifrado
  Servicios de Terminal Server
  Servicios IPSEC
  Servidor
  Sistema de sucesos COM+
  Temas
  VirtualBox Guest Additions Service

Se ha completado el comando correctamente.

Comanda shutdown a Windows

NOTA: oco! al copiar i pegar ordre a MS-DOS, sovint els "-" no es copien correctament.

L'ordre shutdown apaga un ordinador Windows. La sintaxi és:

>shutdown
Uso: shutdown [-l | -s | -r | -a] [-f] [-m \\equipo] [-t xx] [-c "comentario"] [
-d up:xx:yy]

       Sin argumentos  Mostrar este mensaje (igual a -?)
       -i                Mostrar interfaz GUI, debe ser la primera opción
       -l                      Cerrar sesión (no se puede usar con la opción -m)
       -s                      Apagar el equipo
       -r                      Apagar y reiniciar el equipo
       -a                      Anular el apagado de equipo
       -m \\equipo             Equipo que se apagará/reiniciará/anulara
       -t xx                   Establecer el tiempo de espera de apagado en xx
                              segundos
       -c "comentario"         Comentario de apagado (máximo, 127 caracteres)
       -f                      Fuerza el cierre de aplicaciones sin advertir
       -d [u][p]:xx:yy         Código de motivo de apagado
                               u es el código de usuario
                               p es el código de apagado planeado
                               xx es el código primario del motivo de apagado
                             (entero positivo menor que 256)
                               yy es el código secundario del motivo de apagado

                             (entero positivo menor que 65536)

Amb:

> shutdown -i

S'inicia una eina gràfica.

Per fer un reboot:

> shutdown -r

Es pot abortar un shutdown amb :

> shutdown -a

NOTA: Cal repetir l'ordre i posar -a

Es pot també aturar una màquina remota si teniu un usuari administrador a la màquina remota amb l'opció -m:

> shutdown -r -m \\192.168.111.17

Si poseu l'anterior no funcionarà a no ser que ja tingueu una sessió iniciada al servidor remot. La podeu iniciar amb l'ordre net use:

> net use \\192.168.111.17 /u:insebre\sergitur

Ara si repetiu l'ordre:

> shutdown -r -m \\192.168.111.17

S'iniciarà el shutdown. També ho podeu fer amb l'ordre runas.

net use \\remotepcname password /u:domainname\username

Vegeu també shutdown a Linux.

Comanda runas

Permet executar ordres utilitzant un usuari diferent:

U:\>runas /u:insebre\sergitur "shutdown -r -t 30 -f -m \\BSFWIN"

L'usuari que utilitzeu per fer el shutdown remot ha de ser administrador del domini o administrador de la màquina.

NOTA: A l'exemple, sembla ser que només funciona si la màquina que envia el missatge està dins del domini de la màquina que es fa apagar

Comanda cmd

C:\WINDOWS\system32>help cmd
Inicia una nueva instancia del intérprete de comandos de Windows XP

CMD [/A | /U] [/Q] [/D] [/E:ON | /E:OFF] [/F:ON | /F:OFF] [/V:ON | /V:OFF]
    [[/S] [/C | /K] cadena] 

/C      Ejecuta el comando especificado en cadena y luego finaliza
/K      Ejecuta el comando especificado en cadena pero sigue activo
/S      Modifica el tratamiento de cadena después de /C o /K (consultar
        más abajo)
/Q      Deshabilita el eco
/D      Deshabilita le ejecución de los comandos de AutoRun del registro
        (consultar más abajo)
/A      Utiliza ANSI para la salida de comandos internos hacia una
        canalización o un archivo
/U      Utiliza UNICODE para la salida de comandos internos hacia una
        canalización o un archivo
/T: fg  Configura los colores de primer y segundo plano (para obtener
        más información, consulte COLOR /?)
/E:ON   Habilita las extensiones de comando (consultar más abajo)
/E:OFF  Deshabilita las extensiones de comando (consultar más abajo)
/F: ON  Habilita los caracteres de terminación de los nombres de archivos
       y directorios (consultar más abajo)
/F: OFF Deshabilita los caracteres de terminación de los nombres de
Presione una tecla para continuar . . .

Comanda NBTSTAT

NBTSTAT són les inicials de NetBios Remote Machine Name Table. Segons la documentació de Windows [1]:

Displays NetBIOS over TCP/IP (NetBT) protocol statistics, NetBIOS name tables for both the local computer and remote computers, and the NetBIOS name cache. Nbtstat allows a refresh of the NetBIOS name cache and the names registered with Windows Internet Name Service (WINS). Used without parameters, nbtstat displays help.

NOTA: Aquesta ordre és per a Windows. L'ordre "similar" per a Linux/Samba és nmblookup

El paràmetre més utilitzat és -a:

  • -a RemoteName : Displays the NetBIOS name table of a remote computer, where RemoteName is the NetBIOS computer name of the remote computer. The NetBIOS name table is the list of NetBIOS names that corresponds to NetBIOS applications running on that computer.
C:\> NBTSTAT -a ubuntu-sala

      NetBIOS Remote Machine Name Table
  Name               Type         Status
---------------------------------------------
HYDRA          <00>  UNIQUE      Registered
HYDRA          <03>  UNIQUE      Registered
HYDRA          <20>  UNIQUE      Registered

On els camps són:

Per tant us mostra els noms de les aplicacions NetBIOS d'una màquina remota.

NOTA: Recordeu que els noms de màquina de Windows, tot i que sovint coincideixen amb els noms de màquina DNS, no té per què ser així, són coses diferents. Consulteu WINS

Es pot aconseguir la mateixa informació utilitzant una adreça IP:

C:\>nbtstat -A 192.168.111.17

Conexión de área local:
Dirección IP: [192.168.111.17] Id. de ámbito : []

           NetBIOS Remote Machine Name Table

      Nombre               Tipo         Estado
   ---------------------------------------------
   P-E9404F66AD824<00>  Único       Registrado
   GRUPO_TRABAJO  <00>  Grupo       Registrado
   P-E9404F66AD824<20>  Único       Registrado

   Dirección MAC = 08-00-27-33-29-6A

Podeu consultar la taula de noms local consultant la vostra propia màquina per la IP que té (no és pot utilitzar localhost ni 127.0.0.1). O també podeu fer:

C:\Documents and Settings\Administrador>nbtstat -n

Conexión de área local:
Dirección IP: [192.168.111.17] Id. de ámbito : []

               Tabla de nombres locales NetBIOS

      Nombre             Tipo         Estado
   ---------------------------------------------
   P-E9404F66AD824<00>  Único       Registrado
   GRUPO_TRABAJO  <00>  Grupo       Registrado
   P-E9404F66AD824<20>  Único       Registrado

En l'exemple anterior la màquina no està compartint cap recurs, a la que compartiu una carpeta el resultat és:

C:\>nbtstat -n

Conexión de área local:
Dirección IP: [192.168.111.17] Id. de ámbito : []

               Tabla de nombres locales NetBIOS

      Nombre             Tipo         Estado
   ---------------------------------------------
   P-E9404F66AD824<00>  Único       Registrado
   GRUPO_TRABAJO  <00>  Grupo       Registrado
   P-E9404F66AD824<20>  Único       Registrado
   GRUPO_TRABAJO  <1E>  Grupo       Registrado
   GRUPO_TRABAJO  <1D>  Único       Registrado
   ..__MSBROWSE__.<01>  Grupo       Registrado

Es pot utilitzar l'opció -S:

  • -S: Displays NetBIOS client and server sessions, listing the remote computers by destination IP address only.
C:\>nbtstat -S

Local Area Connection: 

Node IpAddress: [172.16.0.142] Scope Id: []  

NetBIOS Connection Table

Local Name State In/Out Remote Host Input Output

---------------------------------------

Per tal de mostrar l'estat de la sessió de NETBIOS actual. Us mostrarà les connexions que teniu actualment.

Switch Name Funtion
-a < name > adapter status Returns the NetBIOS name table and MAC address of the address card for the computer name specified.
-A < IP address > Adapter status Lists the same information as -a when given the target's IP address.
-c cache Lists the contents of the NetBIOS name cache.
[ Number ] Interval Typing a numerical value tells Nbtstat to redisplay selected statistics each interval seconds, pausing between each display. Press Ctrl+C to stop redisplaying statistics.
-n names Displays the names registered locally by NetBIOS applications such as the server and redirector.
-r resolved Displays a count of all names resolved by broadcast or WINS server.
-R Reload Purges the name cache and reloads all #PRE entries from LMHOSTS.
-RR ReleaseRefresh Releases and reregisters all names with the name server.
-s sessions Lists the NetBIOS sessions table converting destination IP addresses to computer NetBIOS names.
-S Sessions Lists the current NetBIOS sessions and their status, with the IP address.

La sortida de la comanda:

NBTSTATOutput.png

Exemples:

nbtstat -a <name> - list the NetBIOS name table (HOSTS file) for the remote computer specified.
nbtstat -A <ip address> - as above but specified by IP address.
nbtstat -c - list names and IP addresses in the local NetBIOS cache.
nbtstat -n - list all the NetBIOS names for the local computer (those used by the various services). This is called the Local NetBIOS Names Table.
nbtstat -r - NetBIOS statistics.
nbtstat -R - reloads the local NetBIOS cache.
nbtstat -RR - releases and refreshes registration of the local NetBIOS names of the client with WINS.
nbtstat -s - lists currently open NetBIOS sessions by name.
nbtstat -S - lists currently open NetBIOS sessions by IP address

La comanda equivalent en Samba és nmblookup.

Es pot utilitzar per consultar la cache:

C:\nbtstat -c

Conexión de área local:
Dirección IP: [192.168.111.17] Id. de ámbito : []

                  Tabla caché remota de NetBIOS

   Nombre            Tipo       Dir de Host      Vida [s]
   ------------------------------------------------------------
   CARO           <20>  Único           192.168.0.8         175
   192.168.0.252  <20>  Único           192.168.0.252       482

La resolució de noms es pot aconseguir per paquets de broadcast o per WINS, podeu consultar com heu resolt la màquina amb:

C:\>nbtstat -r

   Estadísticas de resolución y registro de nombres NetBIOS
   --------------------------------------------------------

   Resueltos por difusión     = 0
   Resueltos por el servidor de nombres   = 0

   Registrados por difusión   = 6
   Registrados por el servidor de nombres = 0

El truc és primer fer un ping i després consultar aquesta ordre.

Recursos:

Saber si una màquina és el Local Master Browse

C:\> nbtstat -a hydra

      NetBIOS Remote Machine Name Table

Name                            Type         Status
----------------------------------------------------------
HYDRA                     <00>  UNIQUE       Registered
HYDRA                     <03>  UNIQUE       Registered
HYDRA                     <20>  UNIQUE       Registered
.._ _MSBROWSE_ _.         <01>  GROUP        Registered
SIMPLE                    <00>  GROUP        Registered
SIMPLE                    <1D>  UNIQUE       Registered
SIMPLE                    <1E>  GROUP        Registered

MAC Address = 00-00-00-00-00-00

La entrada de recurs que busquem ( resource entry) és:

.._ _MSBROWSE_ _.<01>.

Indica que la màquina està funcionant com a Local master browser per a la subxarxa actual. <math>Inseriu una fórmula ací</math>

adminpak i supporttools

Recursos:

SRVTOOLS

NEXUS.exe

Enviar missatges per consola

Per enviar un missatge a una màquina remota heu d'anar a:

Menú Inicio/Mi PC/Boto dret/Administrar

Sobre la consola d'administració del sistema. Un cop aquí feu boto dret a Carpetas Compartidas, escolliu Todas las Tareas i l'opció Enviar Mensage Administrativo.

Samba variables

Variables

TODO

POSIX user. Two variables, %uold and %unew, will be substituted with the old and new usernames, respectively. The script should 
return 0 upon successful
The %z %t %r %f variables are expanded as follows:


          ·   %z will be substituted with the shutdown message sent to the server.
          ·   %t will be substituted with the number of seconds to wait before effectively starting the shutdown procedure.
          ·   %r will be substituted with the switch -r. It means reboot after shutdown for NT.
          ·   %f will be substituted with the switch -f. It means force the shutdown even if applications do not respond for NT.

Configurar Samba per a Ldap

Consulteu l'article Samba amb Ldap.

Migració de Windows NT a Samba

Consulteu l'article Migració de Windows a Samba.

Nautilus

Podem utilitzar el Nautilus de gnome com a client gràfic de Samba. Veiem-ne alguns exemples.

Accedir a un recurs no protegit i visible:

Només cal escriure:

NautilusSamba1.png

A la barra d'adreces de Nautilus.

Les passes equivalents fent només clic són:

NautilusSamba5.png

Seleccionem Xarxa de Windows:

NautilusSamba6.png

Seleccionem el domini casa:

NautilusSamba8.png

i la màquina:

NautilusSamba9.png

Accedir a un recurs remot protegit:

A la barra de navegació:

NautilusSamba.png

Ens preguntara per les dades de connexió:

NautilusSamba2.png

Fixeu-vos que si no posem nom d'usuari, automàticament utilitza el nom d'usuari de l'usuari Linux que estem utilitzant. Podem indicar explícitament l'usuari en format URI:

NautilusSamba3.png

NautilusSamba4.png

Swat Samba web Administration Tool

Consulteu l'article Swat.

Gadmin

gadmin-samba

Gnome.Gnome-system-tools

Gnome ens aporta una eina gràfica senzilla per a la compartició de fitxers en xarxa.

  • Suporta NFS i Samba.
  • La comanda és shares-admin i forma part del paquet gnome-suystem-tools.

Podem utilitzar aquesta eina per conèixer el funcionament bàsic de la compartició de fitxer de Samba. Primer afegim un nou recurs compartit amb l'eina i després consultem el fitxer de configuració de Samba /etc/samba/smb.conf.

SharesAdmin.jpg SharesAdmin1.jpg

Veiem com queda la carpeta compartida AdministracioAvanzadaLinux2006-2007 al fitxer de configuració de Samba:

[AdministracioAvanzadaLinux2006-2007]
      path = /home/sergi/docs/ICE/2006-2007/AdministracioAvanzadaLinux2006-2007
      guest ok = Yes

Altres eines d'administració gràfica (GUI) de Samba

  • Gosa
  • Smb4K
  • LDAP Account Manager
  • Webmin
  • .utwente.nl/users/frank/smb2www/ SMB2WWW

Recursos:

GUI Account Managment Tools

Consulteu la secció Eines d'administració gràfiques de l'article LDAP.

Manipulació de fitxers tdb

Consulteu tdb-tools.

rootpreexec

Consulteu:

wall

A la carpeta:

/usr/share/doc/samba-doc/examples/misc

Hi ha un script per enviar un missatge (popup):

$ sudo perl ./wall.perl 

Enter message for Samba clients of this host
(terminated with single '.' or end of file):
Prova
.

Consulteu l'ordre wall

VFS Module

Ever wondered why Samba seems to log so many things, except what you’re interested in? So did I, and it took me a while to find out that 1) there actually is a solution and 2) how to configure this. Here’s how.

The solution to logging what a user is actually doing can be achieved with Stackable VFS Modules, which is available since Samba 3. Unfortunately, the link there does not describe the full_audit module, which I highly recommend using instead of audit or extd_audit. The reason for this is that I couldn’t get those modules to log simple things like a file upload by a user, unless I chose VFS log level 10. Using the Full_audit VFS Module

If you’re running Debian unstable like I do, then full_audit is included when installed from the APT. To find out which modules you have, take a look in /usr/lib/samba/vfs. When you’re sure you have the module, configure it as follows in smb.conf: view source print? 1 vfs objects = full_audit 2 3 full_audit:prefix = %u|%I|%m|%S 4 full_audit:success = mkdir rename unlink rmdir pwrite 5 full_audit:failure = none 6 full_audit:facility = LOCAL7 7 full_audit:priority = NOTICE

Let’s go through it one line at a time.

   * vfs objects: we’d like to use the full_audit module.
   * full_audit:prefix: Every line that full_audit outputs will be prefixed by this line, in which you can use Samba variables. This line will prefix the username, IP, machine name and share name, separated by pipes.
   * full_audit:success: This specifies which actions will actually be logged when it has successfully been completed. unlink is in this case a delete action and pwrite is an upload action.
   * full_audit:failure: Specifies which actions should be logged, but which have resulted in a failure. Since a failure will often mean that nothing has been changed, I found that it is not interesting to log any of these actions.
   * full_audit:facility: By default, full_audit will only write to the system syslog, but you can specify a different ‘syslog facility’ to write all output to a different log file. Custom syslog facilities should be named local[number], where number is a number between 0 and 7 (don’t ask me why syslogd doesn’t support any name). I’ll get back on this later.
   * full_audit:priority: This line sets the severity of the log messages that are generated, like ‘notice’, ‘info’, ‘warning’, ‘debug’, ‘alert’. There are probably more, but these are the most well-known ones.

Creating a Syslogd Facility

To specify a custom log file to which full_audit should write, you should create a new syslogd facility. A facility can be described in syslog.conf. Since I had chosen the facility local7, I can add that facility to the configuration like this: view source print? 1 local7.* /var/log/samba/log.audit

This line means that all log messages of facility local7 will be written to /var/log/samba/log.audit. The star is needed to say that I’d like to log messages of any severity to the same log file. Finally, restart the syslogd daemon: /etc/init.d/sysklogd restart Final Words

   * When things don’t seem to be working, ensure you have restarted/reloaded syslogd and samba.
   * If there is anything bad you could say about full_audit, then it would be that it can’t output log messages to the log file specified in smb.conf. I always found it very useful that Samba could log by machine name by specifying log file = /var/log/samba/log.%m, but full_audit cannot use this. If you find a way though, please let me know!
   * Other references: A blog in a language I can’t read where I took the configuration part from: Monitoring Aktivitas Samba

Output Example

Here is an example of what the configuration just explained generates: view source print? 1 Aug 10 11:52:52 rhino smbd_audit: moiristo|123.45.67.89|moiristo|moiristo|unlink|ok|public/Upload/hypnotoad.gif 2 Aug 10 11:52:59 rhino smbd_audit: moiristo|123.45.67.89|moiristo|moiristo|pwrite|ok|public/Upload/hypnotoad.gif 3 Aug 10 11:53:41 rhino smbd_audit: moiristo|123.45.67.89|moiristo|moiristo|rename|ok|public/Upload/hypnotoad.gif|public/Upload/hypnotoads.gif 4 Aug 10 11:53:51 rhino smbd_audit: moiristo|123.45.67.89|moiristo|moiristo|rename|ok|public/Upload/hypnotoads.gif|public/Upload/hypnotoad.gif

Samba i ACLs

Cal activar les línies:

nt acl support = yes
ea support = yes

I tenir un sistema de fitxers muntat amb suport per a ACLs (Vegeu Linux ACLs)

Vegeu també ACLs.

TroubleShooting

Samba/Netlogon d'usuaris acabats de crear, entren sense paraula de pas

Descripció del problema:

  • Els usuaris no entren a les estacions de treball amb el seu usuari i password normals. El pitjor de tot és que si que entren sense posar paraula de pas
  • Passa tant en el login de les estacions de treball, com al afegir una màquina al domini (posant per exemple la paraula de pas de Julio) o també amb un smbclient
  • El problema es soluciona un cop l'usuari a entrat al menys un cop amb usuari Linux directament:
$ su usuari

El pròxim logon de Windows ja funciona correctament amb la paraula de pas que li pertoca i ja no entra més sense paraula de pas.

  • Problema de PAM???
  • A gosa s'entra correctament amb l'usuari i paraula de pas que toca

Entorn:

  • Logon Server: un Samba com a BDC amb el passwd backend un Ldap en local, replica synrepl (nota: a l'infocentre de Santa Barbara també em va passar amb un PDC amb Ldap master)
  • Usuaris donats d'alta amb Gosa 2.7

Fitxers de configuració:

Solució

  • Al actualitzar gosa de la versió 2.7 a 2.7.1 s'ha tornat a arreglar però no és un bug del gosa era un problema de fitxer de configuració gosa.conf ja que al actualitzar et força a tornar a crear el fitxer gosa.conf. Amb els valors per defecte:
  <main default="default"
       warnSSL="true"
       forceSSL="false"
       forceGlobals="true"
       ignoreLdapProperties="false"
       rfc2307bis="false"
   >

Funciona. Abans hi havia:

  <main default="default"
       warnSSL="true"
       forceSSL="true"
       forceGlobals="true"
       ignoreLdapProperties="false"
       logging="true"
       listSummary="true"
       displayErrors="false"
       schemaCheck="true"
       copyPaste="true"
       ldapStats="false"
       storeFilterSettings="true"
       sendCompressedOutput="true"
       modificationDetectionAttribute="entryCSN"
       language="es_ES"
       theme="default"
       sessionLifetime="7200"
       templateCompileDirectory="/var/spool/gosa"
       debugLevel="0"
       sambaHashHook='perl -MCrypt::SmbHash -e "print join(q[:], ntlmgen \$ARGV[0]), $/;"'

Que collons és la última línia!!! Doncs l'error que no se com el vaig posar!


No deixa logar al sistema sense cap missatge d'error

Sembla un problema de configuració de PAM. El problema són les línies:

auth optional pam_smbpass.so migrate

Al fitxer /etc/pam.d/common-auth i també la línia:

password	optional			pam_smbpass.so nullok use_authtok use_first_pass

Al fitxer /etc/pam.d/common-password.

Si les comentem tornen a funcionar.

En el meu cas però sembla que l'error venia provocat per haver fet canvis a la base de dades Ldap

$ sudo pdbedit -vL
smbldap_search_domain_info: Searching for:[(&(objectClass=sambaDomain)(sambaDomainName=INFOCENTRE))]
smbldap_open_connection: connection opened
The value of 'algorithmic RID base' has changed since the LDAP
database was initialised.  Aborting. 
pdb backend ldapsam:"ldap://localhost" did not correctly init (error was NT_STATUS_UNSUCCESSFUL)
PANIC (pid 3195): pdb_get_methods_reload: failed to get pdb methods for backend ldapsam:"ldap://localhost" 

BACKTRACE: 7 stack frames:
 #0 pdbedit(log_stack_trace+0x1a) [0x7fdc86f6be5a]
 #1 pdbedit(smb_panic+0x1f) [0x7fdc86f6bf1f]
 #2 pdbedit(+0x861b3) [0x7fdc86f031b3]
 #3 pdbedit(initialize_password_db+0x14) [0x7fdc86f05f64]
 #4 pdbedit(main+0x3d8) [0x7fdc86edc6d8]
 #5 /lib/libc.so.6(__libc_start_main+0xfe) [0x7fdc85849d8e]
 #6 pdbedit(+0x5db89) [0x7fdc86edab89]
smb_panic(): calling panic action [/usr/share/samba/panic-action 3195]
smb_panic(): action returned status 0
Can not dump core: corepath not set up

Concretament vaig canviar el valor de l'atribut SambaAlgorithmicRidBase...

Crear Home i profiles a la primera connexió

[homes]
root preexec = /etc/samba/scripts/mk_sambadir "/m/samba3/home/%u" "%u" "%g"

[Profiles]
root preexec = /etc/samba/scripts/mk_sambadir "/m/samba3/profiles/%U" "%U" "%g"

On:

/etc/samba/scripts/mk_sambadir:
#!/bin/bash
if [ ! -d "$1" ]
then
   mkdir "$1"
fi
   chmod 770 "$1" -R
   chown "$2" "$1" -R
   chgrp "$3" "$1" -R

Un altre opció:

#!/bin/bash

if [ ! -e /home/DOMAIN/$1 ]; then
	mkdir /home/DOMAIN/$1
	chown $1:"Domain Users" /home/DOMAIN/$1
fi
exit 0

Vegeu també:

PAM#Crear_la_home_de_l.27usuari_durant_el_primer_login

Conèixer la versió de Samba

$ sudo smbstatus

Samba version 3.3.2
...

Conflicte d'IP

Windows al iniciar la màquina comprova mitjançant una petició ARP (paquet ARP-REQUEST) si hi ha alguna altre màquina a la xarxa amb la mateixa IP. Cita:

Al iniciar el sistema, cuando se inicializa el protocolo IP, envía una solicitud ARP que contiene su propia dirección IP y MAC para que otros equipos pueden actualizar a su ARP almacena en caché. Si ya hay un equipo con la dirección IP, el equipo "antiguo" responderá con una respuesta ARP que contiene su dirección IP y MAC, que indica un conflicto.

Com que la màquina que ja estava a la xarxa ha respost amb un ARP-REPLY que s'envia a tota la xarxa i per tant, actualitza totes les caches ARP de totes les màquines de la xarxa, la màquina més nova tindrà un problema per tal de comunicar-se amb la resta de màquines de la xarxa. La solució és:

  • Canviar la IP
  • Renviar una ARP-REPLY a tota la xarxa amb la nova informació

Error al afegir un client Windows a un domini SAMBA. RequireSignOrSeal

NOTA: Segons [2] no cal seguir aquest pas si tenim un Samba 3 o superior

Si us trobeu amb un error "Domain not found" a l'intentar autenticar una sessió Windows proveu de modificar la següent variable del registre de Windows:

HKEY_LOCAL_MACHINE\System\Services\Netlogon\Parameters\requiresignorseal

Cal canviar aquesta variable de 1 a 0.

Per accedir al registre accediu a una consola de DOS (menú Inicio, Ejecutar i poseu cmd) i executeu:

regedit

Error DNS a l'afegir client Windows XP a domini SAMBA

Afegir client Windows XP a Samba

Cal editar el registre:

  • Cal canviar el següents paràmetres de [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Netlogon\Parameters]:
    • "requiresignorseal"=dword:00000000
    • "signsecurechannel"=dword:00000000

Per editar el registre de Windows s'executa:

regedit

A una finestra MS-DOS, o a l'opció executar del menú Inici.

Hi ha diferents fitxers a la carpeta /usr/share/doc/samba-doc/registry que els podem fer servir per modificar registres de Windows:

$ ls -l
total 52
-rw-r--r-- 1 root root 1433 2005-05-13 18:59 FolderRedir.adm
-rw-r--r-- 1 root root  871 2005-05-13 18:59 NT4-Locking.reg
-rw-r--r-- 1 root root  303 2005-05-13 18:59 NT4_PlainPassword.reg
-rw-r--r-- 1 root root  303 2005-05-13 18:59 Win2000_PlainPassword.reg
-rw-r--r-- 1 root root  794 2005-05-13 18:59 Win-2Kx-XPP-DeleteCachedProfiles.reg
-rw-r--r-- 1 root root  452 2005-05-13 18:59 Win-2Kx-XPP-ForceLocalProfile.reg
-rw-r--r-- 1 root root  122 2005-05-13 18:59 Win95_PlainPassword.reg
-rw-r--r-- 1 root root  122 2005-05-13 18:59 Win98_PlainPassword.reg
-rw-r--r-- 1 root root  190 2005-05-13 18:59 Win9X-CacheHandling.re g
-rw-r--r-- 1 root root  230 2005-05-13 18:59 WindowsTerminalServer.reg
-rw-r--r-- 1 root root  122 2005-05-13 18:59 WinME_PlainPassword.reg
-rw-r--r-- 1 root root  288 2005-05-13 18:59 Win-NT-DeleteRoamingProfile.reg
-rw-r--r-- 1 root root 1026 2005-05-13 18:59 WinXP_PlainPassword.reg

Recursos:

Samba i Windows Vista

Recursos:

Problemes amb gedit

Recursos:

Problemes amb salvar fitxers d'OpenOffice

Utilitzeu la opció nobrl

//netbiosname/sharename    /media/sharename        cifs    credentials=/root/.smbcredentials,iocharset=utf8,nobrl,file_mode=0777,dir_mode=0777 0 0

Com permetre el muntatge d'unitats de xarxa als usuaris

Per motius de seguretat només el superusuari (root) pot muntar unitats. Si es desitja que els usuaris del sistema puguin muntar unitats Samba podem executar:

$ chmod 4755 /usr/bin/smbmnt
$ chmod 4755 /usr/bin/smbumount

No es permet treballar amb fitxers més grans de 2GB en una unitat remota muntada amb samba .lfs option.

Utilitzeu la opció lfs

Consulteu un exemple a:

Vegeu:

rlimit_max: rlimit_max (8192) below minimum Windows limit (16384) executant testparm

Cal modificar ulimit:

$ ulimit -n 16384 

Per fer el canvi permanent, afegiu la línia:

* - nofile 16384

Al fitxer /etc/security/limits.conf

Recursos:


Tree connect failed: NT_STATUS_BAD_NETWORK_NAME

En el meu cas era per que el recurs compartit al que volia accedir no existeix o no té els permisos correctament.

Windows 7

Al Windows 7 cal fer un parell d'afegits al registre abans d'introduir-lo al domini SAMBA. Ho indica a la wiki de samba:

http://wiki.samba.org/index.php/Windows7

També, des d'aquesta pàgina, es pot descarregar un fitxer per afegir al registre de Windows 7 la informació necessària.

Windows Registry Editor Version 5.00
 
[HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\LanManWorkstation\Parameters]
"DNSNameResolutionRequired"=dword:00000000
"DomainCompatibilityMode"=dword:00000001 

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\Netlogon\Parameters]
"RequireSignOrSeal"=dword:00000001
"RequireStrongKey"=dword:00000001

També cal activar la login screen amb Ctrl+Alt+Supr, consulteu:

http://www.howtogeek.com/howto/windows-vista/enable-ctrlaltdelete-for-vista-logon-screen/

Vegeu també

Enllaços externs