¡Hola Amigos!. “Common Internet File System utilities” o Utilidades Comunes para Sistemas de Archivos de Internet, nos servirán para montar en nuestro sistema de archivos Linux local, recursos de redes CIFS compartidos en máquinas remotas.
El paquete CIFS-Utils formó parte de la Suite Samba hasta versiones anteriores a la 5.5-1 (ver /usr/share/doc/cifs-utils/README) que es la que trae el Debian 7 “Wheezy” y sobre la cual se basa éste articulo. Actualmente, las utilidades CIFS son un proyecto separado de Samba y es activamente mantenido por el Samba Team.
Antes de continuar, debemos leer el artículo Samba: SmbClient pues haremos referencia a él. Prácticamente, este post es su continuación.
Instalación y un poco de conocimiento general
Si no tenemos instalado el paquete smbclient u otro relacionado con la suite Samba, al instalar cifs-utils por cualquier medio también lo harán:
Las utilidades o herramientas o comandos que nos aporta el paquete cifs-utils son: cifscreds, getcifsacl, setcifsacl, cifs.upcall, cifs.idmap, y mount.cifs. Para propósitos prácticos sólo veremos el comando mount.cifs. Por mucho que queramos no podemos hacer un tratado sobre el tema. Los que quieran o necesiten profundizar más, favor de ejecutar man comando.
Uso del comando mount.cifs
De forma general lo invocamos como:
mount.cifs {servicio} {punto de montaje} [-o opciones] mount -t cifs {servicio} {punto de montaje} [-o opciones]
mount.cifs monta un sistema de archivos CIFS Linux. Es un comando nativo de Linux y el núcleo o kernel debe tener el soporte para sistemas de archivos cifs. El protocolo CIFS es el sucesor del protocolo SMB y tiene soporte en la mayoría de los servidores Windows y en muchos otros servidores comerciales y equipos NAS “Network Attached Storage”. Por supuesto que tiene soporte total por parte del servidor Samba, de código abierto.
Esta utilidad adjunta o monta el recurso de red compartido (o exportado) en un servidor remoto el cual se especifica como servicio utilizando la sintaxis//servidor/recurso -donde “servidor” es el nombre o la dirección IP en el cual reside el recurso compartido y “recurso” es el nombre del recurso compartido- a un directorio local que será el “punto de montaje”. El Punto de Montaje debe existir en nuestro sistema de archivos local ANTES de montar el recurso.
Las Opciones del comando se conforman a partir de una lista de pares de valores separados por coma, tipos clave=valor.
Para facilitar el trabajo con ésta utilidad, recomendamos se realicen los cambios indicados en el post Samba: SmbClient al archivo /etc/samba/smb.conf tomando como referencia el equipo miwheezy.amigos.cu el cual no está unido al dominio. También es recomendable instalar el paquete smbclient si aun no lo está, para conocer de forma rápida cuales son los recursos compartidos en la red. Claro que lo anterior, lo podemos determinar mediante el Nautilus o el navegador de archivos que estemos usando, siempre que tenga soporte para el protocolo SMB/CIFS.
Ejemplo 1
Queremos montar el recurso compartido //w2003/tierramedia en la carpeta local /home/xeon/lan con las credenciales del usuario pipin perteneciente al dominioamigos.cu. Como el usuario root o mediante sudo ejecutamos:
xeon@miwheezy:~$ sudo mount.cifs //w2003/tierramedia /home/xeon/lan -o user= pipin@amigos.cu [sudo] password for xeon: Password:
Observemos que primero se nos pide la contraseña del usuario local xeon@miwheezy, y luego la del usuario remoto pipin@amigos.cu. Por supuesto que debemos conocerla a menos que tengamos nuestro equipo unido al dominio y hayamos iniciado sesión local en nuestro Debian como pipin. Ese caso lo veremos en artículos posteriores.
También debemos haber creado la carpeta lan (/home/xeon/lan) antes de invocar el comando. Sino, podemos indicar que el punto de montaje será el directorio/mnt, si es que no tenemos montado algún otro recurso en ese directorio genérico.
Seamos curiosos y listemos los archivos del directorio local donde tenemos montado el recurso compartido remoto y veremos que el usuario y el grupo propietarios de las carpetas y archivos es root. Significa que sólo tendremos acceso de lectura. Compruébenlo.
Para algunos será un poco difícil de entender lo anterior, pero son precisamente éstos detalles los que resaltan la Potencia y Seguridad de un sistema de archivos UNIX/Linux.
Ejemplo 2
Queremos montar el recurso compartido //w2003/tierramedia en la carpeta local /home/xeon/lan con las credenciales del usuario pipin perteneciente al dominioamigos.cu. También necesitamos acceder a los archivos con permisos de lectura/escritura y que el propietario sea el usuario local mediante el cual hemos iniciado sesión y que en nuestro ejemplo es xeon:
xeon@miwheezy:~$ sudo mount.cifs //w2003.amigos.cu/tierramedia /home/xeon/lan -o user=pipin,uid=xeon,forceuid
Seamos nuevamente curiosos y listemos la carpeta lan. Ahora el propietario es xeon y el grupo sigue siendo root. No necesitamos indicarle al mount.cifs la opciónrw para tener acceso de lectura/escritura. Los permisos inherentes a un sistema de archivos UNIX/Linux lo garantizan. Lo podemos comprobar creando y borrando directorios; modificando archivos existentes, etcétera.
Ejemplo 3
Cada vez que se inicie nuestro equipo local, queremos montar el recurso compartido //w2003/tierramedia en la carpeta local /home/xeon/lan con las credenciales del usuario pipin perteneciente al dominio amigos.cu. También necesitamos acceder a los archivos con permisos de lectura/escritura y que el propietario sea el usuario local mediante el cual hemos iniciado sesión y que en nuestro ejemplo es xeon.
Una sencilla solución es la de crear un script en el directorio /etc/init.d, darle permisos de ejecución e incluirlo entre los programas que se ejecutan al inicio. Como el usuario root ejecutamos:
nano /etc/init.d/monta-tierramedia.sh
y añadimos el siguiente contenido al recién creado script de inicio:
#! /bin/sh ### BEGIN INIT INFO # Provides: Monta el recurso remoto //w2003/tierramedia en /home/xeon/lan # Required-Start: $local_fs $syslog # Required-Stop: $local_fs $syslog # Default-Start: 2 3 4 5 # Default-Stop: 0 1 6 # Short-Description: Monta recurso remoto ### END INIT INFO mount.cifs //10.10.10.30/tierramedia /home/xeon/lan \ -o user=pipin,password=contrasena,uid=xeon,gid=xeon, \ forceuid,forcegid
Posteriormente le damos permiso de ejecución al script y lo incluimos entre los scripts de inicio. Como el usuario root ejecutamos:
chmod u+x,o-r,o-x /etc/init.d/monta-tierramedia.sh update-rc.d monta-tierramedia.sh defaults
Si todo lo hicimos correctamente, no debemos recibir ningún mensaje de error. Para comprobar si la sintaxis del script es la correcta, lo ejecutamos manualmente, y tampoco debemos recibir ningún mensaje de error. Como el usuario root ejecutamos:
/etc/init.d/monta-tierramedia.sh
Resumen
Podemos escribir numerosos ejemplos, pero ese NO es nuestro objetivo. Debemos ir de lo sencillo a lo complejo y éste post es un Punto de Entrada al tema. Nuestros artículos se basan en lo fundamental en las páginas del manual o Man Pages y en la documentación acompañante de cada paquete. Tratamos de ofrecer algo diferente o que complemente a la mayoría de los artículos encontrados en la Aldea WWW.
Si deseamos utilizar Software Libre sobre redes Microsoft, SMB/CIFS, y Samba, hay que al menos leer!!!. Sino, sufriremos las consecuencias del Desconocimiento Básico.
Un consejo gratis: ¿Para que vamos a hacer las cosas difíciles si las podemos implementar bien fáciles?.
Y por ahora, se acabó la actividad, Amigos!!!.
No hay comentarios:
Publicar un comentario