Samba es:
– La implementación libre del protocolo SMB/CIFS originalmente desarrollada por Andrew Tridgell y en la actualidad mantenida por un grupo de colaboradores.
– Un conjunto de servicios y herramientas que permiten integrar redes UNIX – UNIX y redes UNIX – Windows de forma transparente al usuario.
* smbd: Servicio que administra ficheros e impresora permite autenticación y autorización.
* nmbd: Provee servicios NetBIOS y puede actuar como servidor WINS
* smbclient: Es un cliente estilo ftp para acceder a los recursos compartidos
* pdbedit: Utilidad para administrar la base de datos de usuarios samba
* net: Permite administrar el servidor Samba
Instalar samba
CentOS / Fedora / RHEL / BLAG
# yum install samba3x samba3x-client samba3x-doc
Debian / Ubuntu
$ sudo apt-get install samba samba-doc samba-tools smbclient
Añadir usuarios a la Base de Datos Samba
# pdbedit -a nom-usr (nom-usr debe ser un usuario UNIX)
Mostrar detalles del usuario creado
# pdbedit -Lv
Obligar a cambiar passwd en el primer acceso
# net sam set pwdmustchangenow nom-usr yes
Cambiar contraseña cada 30 días
# pdbedit -P "maximum password age" -C 30
Actualizar contraseña
Debes Conectarte por ssh al servidor samba y ejecutar
$ smbpasswd
Como root puedes actualizar la contraseña de otros usuarios
# smbpasswd nom-usr
Compartiendo recursos
Para compartir un recurso determinado debemos editar el fichero smb.conf en CentOS, Debian / Ubuntu lo podemos encontrar en /etc/samba/smb.conf. El fichero de configuracción esta divido por secciones, los valores de los parámetros definidos en la sección [Global] son comunes al servidor Samba a menos que menos que se sobreescriban en una sección determinada.
Editar fichero de configuración
# vim /etc/samba/smb.conf
Establecer parámetros globales
[Global] # # Grupo de trabajo al que pernetecemos workgroup = FLOSSBLOG # # Este parámetro solo tiene propósito informacional server string = Servidor de fichero FLOSSBLOG # # Aqui puede especificar un nombre diferente al nombre # real del servidor netbios name = FLOSSBLOG # # Util si su servidor tiene mas de una interfaz de red # por ejemplo si tuviera además una interfaz eth1 y quesiera que # el servidor Samba también respondiera por esa interfaz bastaría # con agregarla al final de esta directiva interfaces = lo eth0 # # Permitimos que solos las computadoras que pertenecen # la red 172.16.2.* acceden a nuestro servidor Samba hosts allow = 127. 172.16.2. # # Si queremos compartir recursos que esten accesible sin necesidad de # autenticarse, especificamos la siguiente directiva security = share # # Las siguientes directivas garantizan que cada vez que se cree # un dir o fichero se cree con los siguientes permisos # Ficheros: # - Propietario: Lectura y escritura # - Grupo: Lectura y escritura # - Resto: Cero permisos # Directorios: # - Propietario: Lectura, escritura y ejecución # - Grupo: Lectura, escritura y ejecución # - Resto: Cero permisos create mask = 0660 directory mask = 0770 force create mode = 0660 force directory mode = 0770
Compartiendo recursos con acceso restringido
Para compartir un recurso agregamos la siguiente sección al fichero smb.conf
# Nombre que los usuarios van ver cuando se conecten al servidor Samba [recursos-flossblog] # # Este tiene un propósito informacional comment = Fciehros HTML, CSS, PHP # # Caminino físico path = /home/sedlav/flossblog # # No público public = no # # Acceso de escritura writable = yes # # Solo tienen acceso de lectura los que pertenecen # al grupo readers read list = @readers # # Solo tienen acceso de escritura los que pertenecen # al grupo writers write list = @writers # # Las siguientes directivas garantizan que cada vez que # se cree un fichero o directorio el usuario y grupo # sea flossblog y flossadmins respectivamente force user = flossblog force group = flossadmins
Compartiendo recursos con acceso público
Agregamos al smb.conf
[flossblog-publico] comment = Recursos públicos # # Acceso de solo lectura read only = yes # # Directiva que establece acceso público al recurso compartido guest ok = yes path = /home/sedlav/flossblog-pub force user = public force group = public
Si el SELinux esta habilitado. ejecutar
# setsebool -P samba_enable_home_dirs on # setsebool -P samba_export_all_rw on # chcon -t samba_share_t DIR
Iniciar Samba
CentOS/Fedora/RHEL/BLAG
# service smb start
Debian/Ubuntu
# /etc/init.d/samba start
Reiniciar Samba
CentOS/Fedora/RHEL/BLAG
# service smb restart
Debian/Ubuntu
# /etc/init.d/samba restart
Detener Samba
CentOS/Fedora/RHEL/BLAG
# service smb stop
Debian/Ubuntu
# /etc/init.d/samba stop
Comprobar estado
CentOS/Fedora/RHEL/BLAG
# service smb status
Debian/Ubuntu
# /etc/init.d/samba status