http://qtsmbstatus.free.fr/index.php?page=home http://www.likewise.com
Curs: | SambasobreLDAP, LinuxAdministracioAvancada |
Fitxers: | Sessio4.pdf,
Sessio5.pdf,Sessio6.pdf,AutenticacioiAutoritzacionsLinux.pdf |
Repositori SVN: | https://[email protected]/svn/iceupc/SambaSobreLDAP |
Usuari: | anonymous |
Paraula de pas: | sense paraula de pas |
Autors: | Sergi Tur Badenas, Lluís Pérez Vidal |
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:
Samba implementa forces serveis i protocols:
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:
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).
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:
Consulteu l'article sobre NetBIOS Name Server.
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
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
Domini Windows:
També anomenats:
É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:
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:
Inconvenients:
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:
Consulteu Configuració_Samba_Browsing#Windows_Network_Neighborhood._Xarxa_de_Windows.
Vegeu també WINS.
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:
I una taula a la pàgina:
Passos d'una connexió SMB
Nivells de seguretat en SMB/CIFS:
Només hi han dos nivells de seguretat en SMB:
Recursos:
Introduït a Windows Vista.
NOTA: A Windows 7 teniu la versió 2.1 de SMB
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 (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:
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:
Tècnicament ens permet:
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
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
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
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:
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.
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
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:
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:
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:
Exemple de configuració:
Samba com a membre de domini:
security = domain workgroup = MIDEARTH
Cal fer dos passos extra:
$ sudo net rpc join -U administrator%password
Recursos:
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:
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:
Consulteu l'article Samba com a PDC.
Consulteu l'article Samba com a BDC.
Consulteu l'article Samba com a Domain Member Server.
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:
$ 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:
$ 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:
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:
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:
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???
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é:
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:
Consulteu: Samba#Grups
Consulteu l'article Samba amb Ldap.
Consulteu: Configuració Samba Browsing
Consulteu NetBIOS name server (NBNS).
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:
Es compleixen les següents propietats:
Els següent exemples mostren com és la relació entre els dos dominis de la gràfica de més amunt:
Recursos:
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
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
Pot fer:
NO pot fer:
El fitxer principal de configuració és /etc/samba/smb.conf. Es pot utilitzar l'ordre testparm per comprovar la sintaxi del fitxer.
$ 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"
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
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:
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
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
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
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
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 = 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
Consulteu l'article Samba com a PDC.
Consulteu NetBIOS_Name_Server#Servidor
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
Recursos:
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:
Recursos:
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
É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:
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:
Recursos:
Recursos:
Recursos:
Aquesta eina només la pot utilitzar el root i esta dissenyada per gestionar el password backend i les polítiques de comptes:
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 |
$ 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: ....
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
Cal executar:
$ sudo pdbedit -r --fullname="Victor Aluicious Laan" prova
Cal executar:
$ sudo pdbedit -x prova
# 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
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:
Recursos:
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].
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:
... [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.
$ 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:
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:
... [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.
$ 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
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
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).
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:
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: \>
La sintaxi és:
$ smbclient -M destination-host -U my-host -n my-host
On:
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' &
Si feu la connexió per Ip no funciona:
$ smbclient -M 192.168.111.17 -U uprova
Proveu per nom de màquina de netBIOS
TODO
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:
É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.
Permet crear fitxers tar directament a partir de connexions remotes smb. Exemple:
$ smbtar -s acacha -x carpetacompartida -u usuari -p contrasenya -t sue.tar
Envia a imprimir a una impressora compartida amb Samba.
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
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]
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:
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
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.
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:
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
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:
Si no especifiquem res, automàticament net intentarà utilitzar el protocol convenient. No totes les comandes estan a tots els protocols.
Recursos:
$ 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.
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)
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.
Consulteu:
Samba_com_a_PDC#Canviar_el_nom_d.27un_domini._Els_clients_ja_no_poden_tornar_a_afegir-se_al_domini
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:
$ 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
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
Consulteu Samba com a Domain Member Server
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"
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
Consulteu:
TODO
Cal indicar un flag però no sé quin és:
$ sudo net user add -F ??????? usuari
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
Al fitxer:
/var/lib/samba/$lockdir/account_policy.tdb
É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:
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:
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:
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:
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.).
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:
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:
Un backend IDMAP.
Recursos:
Amb Samba hi han tres possibles maneres (password backends aka passdb) de guardar les paraules de pas dels usuaris:
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:
This backend should be used only for backward compatibility with older versions of Samba. It may be deprecated in future releases.
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)).
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)
Com amb samba (vegeu Comanda net), amb windows també existeix una comanda net. Cal dir però que no funcionen exactament igual.
> 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.
>net use \\192.168.111.17\IPC$ /delete
Per connectar una unitat remota:
C:\> net use m: \\servername\service
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.
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.
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: [[email protected]] [/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
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
U:\>net use g: /home La unidad g: está conectada a \\caro\sergitur. Su directorio principal es g:\.
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
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
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
La sintaxi és:
$ net rpc join -S NOM_PDC -U usuari_administrador
Consulteu:
Samba com a Domain Member Server
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é:
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.
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
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
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 . . .
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:
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:
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:
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:
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>
Recursos:
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.
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.
Consulteu l'article Samba amb Ldap.
Consulteu l'article Migració de Windows a Samba.
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:
A la barra d'adreces de Nautilus.
Les passes equivalents fent només clic són:
Seleccionem Xarxa de Windows:
Seleccionem el domini casa:
i la màquina:
Accedir a un recurs remot protegit:
A la barra de navegació:
Ens preguntara per les dades de connexió:
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:
Consulteu l'article Swat.
gadmin-samba
Gnome ens aporta una eina gràfica senzilla per a la compartició de fitxers en xarxa.
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.
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
Recursos:
Consulteu la secció Eines d'administració gràfiques de l'article LDAP.
Consulteu tdb-tools.
Consulteu:
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
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
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.
Descripció del problema:
$ 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.
Entorn:
Fitxers de configuració:
Solució
<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!
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...
[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
$ sudo smbstatus Samba version 3.3.2 ...
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:
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
Cal editar el registre:
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:
Recursos:
Recursos:
Utilitzeu la opció nobrl
//netbiosname/sharename /media/sharename cifs credentials=/root/.smbcredentials,iocharset=utf8,nobrl,file_mode=0777,dir_mode=0777 0 0
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
Utilitzeu la opció lfs
Consulteu un exemple a:
Vegeu:
Cal modificar ulimit:
$ ulimit -n 16384
Per fer el canvi permanent, afegiu la línia:
* - nofile 16384
Al fitxer /etc/security/limits.conf
Recursos:
En el meu cas era per que el recurs compartit al que volia accedir no existeix o no té els permisos correctament.
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/