- Leer documentación proporcionada por el profesor.
- Atender a la explicación del profesor.
- Vídeo LPIC-2 202 Samba Server Configuration
- Vamos a necesitar las siguientes 3 MVs:
- Un servidor GNU/Linux con IP estática (172.18.XX.33).
- Un cliente GNU/Linux con IP estática (172.18.XX.34).
- Un cliente Windows con IP estática (172.18.XX.13).
- Configurar el servidor GNU/Linux con siguientes valores:
- Nombre de usuario: nombre-del-alumno
- Clave del usuario root: DNI-del-alumno
- Nombre de equipo: samba-server
- Nombre de dominio: segundo-apellido-del-alumno
- Instalar openssh-server.
- Añadir en /etc/hosts los equipos samba-client1 y samba-client2.
Vamos a GNU/Linux, y creamos los siguientes grupos y usuarios:
- Grupo
jedis
conjedi1
,jedi2
ysupersamba
. - Grupo
siths
consith1
ysith2
ysupersamba
. - Crear el usuario
smbguest
. Para asegurarnos que nadie puede usarsmbguest
para entrar en nuestra máquina mediante login, vamos a modificar en el fichero/etc/passwd
de la siguiente manera: "smbguest:x:1001:1001:,,,:/home/smbguest:/bin/false". - Crear el grupo
startwars
, y dentro de este poner a todos lossiths
,jedis
,supersamba
y asmbguest
.
- Instalar el servidor Samba en Linux:
apt-get install -y samba samba-common smbclient samba-doc cifs-utils
- Configurar el servidor samba
- Vamos a renombrar el fichero de configuración existente, y trabajaremos a partir de un fichero
de configuración nuevo vacío:
mv /etc/samba/smb.conf /etc/samba/smb.conf.000
. - Crea un fichero vacío
/etc/samba/smb.conf
, y rellénalo con el contenido siguiente:
- Vamos a renombrar el fichero de configuración existente, y trabajaremos a partir de un fichero
de configuración nuevo vacío:
[global]
netbios name = PRIMER-APELLIDO-ALUMNO
workgroup = STARWARS
server string = Servidor Samba del PC XX
security = user
map to guest = bad user
guest account = smbguest
[cdrom]
path = /dev/cdrom
guest ok = yes
read only = yes
[public]
path = /var/samba/public.d
guest ok = yes
read only = yes
[corusant]
path = /var/samba/corusant.d
read only = no
valid users = @siths, @jedis
[tatooine]
path = /var/samba/tatooine.d
read only = no
valid users = jedi1, jedi2
Vamos a crear las carpetas de los recursos compartidos con los permisos siguientes:
/var/samba/public.d
- Usuario propietario
supersamba
. - Grupo propietario
starwars
. - Poner permisos 775.
- Usuario propietario
/var/samba/corusant.d
- Usuario propietario
supersamba
. - Grupo propietario
siths
. - Poner permisos 770.
- Usuario propietario
/var/samba/tatooine.d
- Usuario propietario
supersamba
. - Grupo propietario
jedis
. - Poner permisos 770.
- Usuario propietario
public
, será un recurso compartido accesible para todos los usuarios en modo lectura.cdrom
, es el recurso dispositivo cdrom de la máquina donde está instalado el servidor samba.
Después de crear los usuarios en el sistema, hay que añadirlos a Samba.
- Para eso hay que usar el comando siguiente para cada usuario de Samba:
smbpasswd -a nombreusuario
- Al terminar comprobamos nuestra lista de usuarios Samba con el comando:
pdbedit -L
- Ahora que hemos terminado con el servidor, hay que reiniciar el servicio
para que se lean los cambios de configuración (Consultar los apuntes):
- En OpenSuSe13:
systemctl stop samba
,systemctl start samba
,systemctl. status samba
. - En Debian7:
service samba stop
,service samba start
,service samba status
. - En Debian6:
/etc/init.d/smbd restart
,/etc/init.d/nmbd restart
.
- En OpenSuSe13:
- Comprobar
testparm (Verifica la sintaxis del fichero de configuración del servidor Samba)
netstat -tap (Vemos que el servicio SMB/CIF está a la escucha)
Desde un cliente Windows trataremos de acceder a los recursos compartidos del servidor Samba.
- Comprobar los accesos de todas las formas posibles. Como si fuéramos un
sith
, unjedi
y/o un invitado.
- Después de cada conexión se quedan guardada la información en el cliente Windows (Ver comando
net use
).- Para cerrar las conexión SMB/CIFS que ha realizado el cliente al servidor, usamos el comando:
C:>net use * /d /y
.
- Para comprobar resultados, desde el servidor Samba ejecutamos:
smbstatus
,netstat -ntap
- En el cliente Windows, para consultar todas las conexiones/recursos conectados hacemos
C:>net use
. - Si hubiera alguna conexión abierta, para cerrar las conexión SMB al servidor,
podemos usar el siguiente comando
C:>net use * /d /y
. Si ahora ejecutamos el comandonet use
, debemos comprobar que NO hay conexiones establecidas. - Abrir una shell de windows. Usar el comando
net use /?
, para consultar la ayuda del comando. - Con el comando
net view
, vemos las máquinas (con recursos CIFS) accesibles por la red. - Vamos a conectarnos desde la máquina Windows al servidor Samba usando los comandos net.
Por ejemplo el comando
net use P: \\ip-servidor-samba\panaderos /USER:pan1
establece una conexión del rescurso panaderos en la unidad P. Ahora podemos entrar en la unidad P ("p:") y crear carpetas, etc. - Para comprobar resultados, desde el servidor Samba ejecutamos:
smbstatus
,netstat -ntap
Desde en entorno gráfico, podemos comprobar el acceso a recursos compartidos SMB/CIFS. Estas son algunas herramientas:
- Yast en OpenSUSE
- Nautilus en GNOME
- Konqueror en KDE
- En Ubuntu podemos ir a "Lugares -> Conectar con el servidor..."
- También podemos instalar "smb4k".
- existen otras para otros entornos gráficos. Busca en tu GNU/Linux la forma de acceder vía GUI.
La siguiente imagen es un ejemplo de cómo se vería en Konqueror.
Pulsamos CTRL+L y escribimos smb://ip-del-servidor-samba
:
Ejemplo accediendo al recurso prueba del servidor Samba:
- Probar a crear carpetas/archivos en [corusant] y en [tatooine].
- Comprobar que [public] es de sólo lectura.
- Para comprobar resultados, desde el servidor Samba ejecutamos:
smbstatus
,netstat -ntap
Existen comandos (smbclient
, mount
, smbmount
, etc.) para ayudarnos
a acceder vía comandos al servidor Samba desde el cliente. Puede ser que
con las nuevas actualizaciones y cambios de las distribuciones alguno
haya cambiado de nombre. ¡Ya lo veremos!
- Vamos a un equipo GNU/Linux que será nuestro cliente Samba. Desde este equipo usaremos comandos para acceder a la carpeta compartida.
- Primero comprobar el uso de las siguientes herramientas:
smbtree (Muestra todos los equipos/recursos de la red SMB/CIFS)
smbclient --list ip-servidor-samba (Muestra los recursos SMB/CIFS de un equipo concreto)
- Ahora crearemos en local la carpeta
/mnt/samba-remoto/courusant
. - MONTAJE: Con el usuario root, usamos el siguiente comando para montar un recurso
compartido de Samba Server, como si fuera una carpeta más de nuestro sistema:
mount -t cifs //172.18.XX.55/courusant /mnt/samba-remoto/courusant -o username=sith1
En versiones anteriores de GNU/Linux se usaba el comando
smbmount //172.16.108.XX/public /mnt/samba-remoto/public/ -o -username=smbguest
.
- COMPROBAR: Ejecutar el comando
df -hT
. Veremos que el recurso ha sido montado.
- Si montamos la carpeta de courusat, lo que escribamos en
/mnt/samba-remoto/courusant
debe aparecer en la máquina del servidor Samba. ¡Comprobarlo!- Para desmontar el recurso remoto usamos el comando
umount
.
- Para comprobar resultados, desde el servidor Samba ejecutamos:
smbstatus
ynetstat -ntap
.
Acabamos de acceder a los recursos remotos, realizando un montaje de forma manual (comandos mount/umount).
Si reiniciamos el equipo cliente, podremos ver que los montajes realizados de forma manual ya no están (df -hT
).
Si queremos volver a acceder a los recursos remotos debemos repetir el proceso de montaje manual,
a no ser que hagamos una configuración de montaje permanente o automática.
- Para configurar acciones de montaje automáticos cada vez que se inicie el equipo,
debemos configurar el fichero
/etc/fstab
. Veamos un ejemplo:
//ip-del-servidor-samba/public /mnt/samba-remoto/public cifs username=sith1,password=clave 0 0
- Reiniciar el equipo y comprobar que se realiza el montaje automático al inicio.
- Incluir contenido del fichero
/etc/fstab
en la entrega.
- ¿Las claves de los usuarios en GNU/Linux deben ser las mismas que las que usa Samba?
- ¿Puedo definir un usuario en Samba llamado sith3, y que no exista como usuario del sistema?
- ¿Cómo podemos hacer que los usuarios sith1 y sith2 no puedan acceder al sistema pero sí al samba?
(Consultar
/etc/passwd
) - Añadir el recurso
[homes]
al ficherosmb.conf
según los apuntes. ¿Qué efecto tiene?