Samba
Samba es un protocolo de transferencia de archivos, que permite la transferencia entre dispositivos windows y linux. El protocolo tiene dos demonios smbd, nmbd
.
smbd
shares, files, print.
nmbd
name resolution.
139/tcp open netbios-ssn
445/tcp open microsoft-ds
Windows utiliza el protocolo para compartir smb, hoy en dia cifs. Desde linux lo simula con samba, haciendo ver que es un dispositivo windows y permitiendo el acceso.
Diferentes rols
-
stand alone: Estar a su aire, el host puede monta directorios remotos, se administra el mismo.
-
server: Ofrecer algun servicio a otro dispositivo, un stand alone que ofrece un servicio especial (montar algún directorio).
-
controlador de domini: PDC (primari domain controle) o DC (domain controle)
Tipologia de red
-
peer to peer: una red entre iguales.
-
client/servidor: administración centralizada.
windows dominio
kerberros kingdom
Organizacion
-
workgroup: van a su aire pero pertenecen a un grupo
-
domain: pertenecen a un dominio que tienen que dar autorizacion
//server/recurso se denomina unic
$
final es un recurso windows oculto smbtree
Linux y samba
-
Un cliente de samba, para conectar a un server samba windows
-
Un server samba para compartir una carpeta
-
Puede hacer de controlador de dominio
Ordenes samba
testparm
test de configuracion de samba, ver que estoy compartiendo
smbtree
funciona en broadcast y muestra los equipos que comparten en red la red.
smbtree
smbtree -D # ver dominio
smbtree -S # ver server
smbclient # conectar a un recurso
smbclient //samba/manpages # conectar con user actual
smbclient -N //samba/manpages # user anonimo
smbclient //samba/manpages -U ramon # user ramon
smbclient //samba/manpages -U ramon%tururu # user%pasword
smbclient -d1 //samba/public # debug rango de 1-9
smbget # descargar archivo de recurso
smbget smb://samba/documentation/xz/COPYING
smbget -R smb://samba/documentation/ # recursivo
smb: \> get archivo renombre
smb: \> put archivo renombre
nmblookup samba
nmblookup -A 172.17.0.2
nmblookup -S samba # registros de recurso
pdbedit -L # usuarios de samba
-
smbclient, smbget
hacen resolucion pornmb
, que este lanza un brodcast a la red para preguntar quien hay sirviendo. -
mount
utiliza dns, por eso en vez de utilizar el nombre del server, utilizo la ip. Ademas se tiene que especificar el protocolocifs
y el usuario.
#mount -t protocolo -o usuario //server/recurso /punto_de_montaje
sudo mount -t cifs -o guest //172.17.0.2/public /mnt
Acceso gráfico
Desde el explorador de archivos, se puede acceder gráficamente a un recurse que se este sirviendo:
smb://samba/public
lmhosts equivalente a /etc/hosts lan manager
Usuarios
Samba tiene sus propios usuarios, pero estos han de existir en el sistema, ya sea linux o windows.
useradd lila
smbpasswd -a lila
Configuración
El archivo de configuración de samba, se encuentra en /etc/samba/smb.conf
define shares, recursos compartidos, y configuración global.
browseable se muestra
netbios name = jorge
Opciones shares
path = /dir1/dir2/share
comment = share description
volume = share name
browseable = yes/no
max connections = #
public = yes/no
guest ok = yes/no
guest account = unix-useraccount
guest only = yes/no
valid users = user1 user2 @group1 @group2 ...
invalid users = user1 user2 @group1 @group2 ...
auto services = user1 user2 @group1 @group2 ...
admin users = user1 user2 @group1 @group2 ...
writable = yes/no
read only = yes/no
write list = user1 user2 @group1 @group2 ...
read list = user1 user2 @group1 @group2 ...
create mode = 0660
directory mode = 0770
Permisos
Usuarios
acceso anonimo
guest ok = yes
es equivalente a public = yes
y permiten el acceso al usuario anónimo guest, que este en el sistema linux se transforma como nobody
.
si estan las dos y se contradicen, prevalece la ultima opcion.
[public]
comment = Share de contingut public
path = /var/lib/samba/public
public = yes
browseable = yes
writable = yes
guest ok = yes
solo anónimo
guest only = yes
Permite unicamente el acceso a usuarios anónimos, si intentas acceder como usuario automáticamente ara un mapping a usuario anónimo.
[public]
comment = Share de contingut public
path = /var/lib/samba/public
public = yes
browseable = yes
writable = yes
guest only = yes
lista usuarios validos
$ smbclient -U user //server/recurs
$ smbclient -U user%password //server/recurs
valid users = user1 user2 @grup1 @grup2
Permite el acceso al recurso a los usuarios indicados en la lista. Anónimo tampoco podrá acceder aun que este indicado guest ok = yes
[public]
comment = Share de contingut public
path = /var/lib/samba/public
public = yes
browseable = yes
writable = yes
guest ok = yes
valid users = lila patipla
lista usuarios restringidos
invalid users = user1 user2 userN
indica la lista de usuarios que no pueden acceder al recurso, los demás si podrán acceder. (anónimo dependerá de guest ok
)
[public]
comment = Share de contingut public
path = /var/lib/samba/public
public = yes
browseable = yes
writable = yes
guest ok = yes
invalid users = lila patipla
Admin
admin users = user
Permite definir un conjunto de usuarios que serán convertidos en el sistema como root . Es decir el usuario de samba definido como admin, tendrá permisos de root en el sistema.
[public]
comment = Share de contingut public
path = /var/lib/samba/public
writable = yes
guest ok = yes
admin users = lila
Escritura lectura
solo lectura
read only = yes
y writeable = no
, son equivalentes. De las dos maneras estamos diciendo que es solo lectura.
si estan las dos y se contradicen, prevalece la ultima opcion.
[public]
comment = Share de contingut public
path = /var/lib/samba/public
public = yes
browseable = yes
writable = no
guest ok = yes
lectura escritura
read only = no
y writable = yes
, son equivalentes
[public]
comment = Share de contingut public
path = /var/lib/samba/public
public = yes
browseable = yes
read only = no
guest ok = yes
lista usuarios lectura
read list = user1 user2 userN
lista de usuarios que solo pueden leer.
Atención esta directiva se indica en recursos que son de lectura/escritura y sirve para restringir, a los usuarios indicados, a solo lectura.
[public]
comment = Share de contingut public
path = /var/lib/samba/public
public = yes
browseable = yes
writable = yes
read list = rock
guest ok = yes
Pista de usuarios escritura
write list = user1 user2
Lista de usuarios que podrán escribir en el recurso, se utiliza en recursos que son solo de lectura.
[public]
comment = Share de contingut public
path = /var/lib/samba/public
public = yes
browseable = yes
writable = no
write list = rock
guest ok = yes
modos de directorios ficheros
create mask = 0600
y directory mask = 0700
permite establecer los permisos con los que se escribirán los archivos y directorios.
[public]
comment = Share de contingut public
path = /var/lib/samba/public
public = yes
browseable = yes
read only = no
guest ok = yes
create mask = 0600
directory mask = 0700
Homes
Por defecto la configuración de samba viene un share para la exportación de los homes de usuarios.
smbclient //samba/lila -U lila%lila
[homes]
comment = Home Directories
browseable = no
writable = yes
valid users = %S