# rm-rf.es | Administración de sistemas

Bitácora personal de un SysAdmin Gnu/Linux, Windows, BSD...

CIFS VFS: No username specified usando “credentials” en /etc/fstab


Cuando montamos unidades samba en equipos Linux y lo configuramos a nivel de /etc/fstab para que se monten automáticamente en el arranque es recomendable securizar la forma en que especificamos el usuario y clave para conectar a la unidad. Para ello podemos usar la flag “credentials” que permite especificar estos datos en un fichero aparte y securizado (especificandole permisos restrictivos, en carpetas seguras, etc).

Entonces, en lugar de dejar la línea así:

//192.168.0.111/share /compartido cifs username=usuario,password=clave 0 0

Lo haríamos por ejemplo, así:

//192.168.0.111/share /compartido cifs credentials=/secure/.cifs_auth 0 0

El fichero contendrá el usuario y clave:

username=usuario
password=clave

Y establecemos permisos 700 a la carpeta que lo contenga (con grupo y propietario root). Una vez modificado, podemos ya probar a montar la unidad. En este caso, debido a que no teníamos instalado el paquete cifs-utils recibíamos el siguiente error:

# mount /compartido
mount: wrong fs type, bad option, bad superblock on //10.0.3.203/backup,
       missing codepage or other error
       In some cases useful info is found in syslog - try
       dmesg | tail  or so

Y al ejecutar dmesg:

# dmesg | tail
 CIFS VFS: No username specified
 CIFS VFS: cifs_mount failed w/return code = -22

Para solventarlo, instalamos el paquete indicado (tenemos que tener el repositorio DAG), que es necesario para poder usar la flag “credentials”:

yum install cifs-utils

Una vez realizado ya deberíamos poder montar la unidad sin problemas.

Cómo modificar el grupo de trabajo en GNU/Linux Ubuntu


Realmente esta entrada vale para cualquier sistema GNU/Linux con Samba, nombro Ubuntu porque actualmente es el sistema Linux más usado de escritorio. Lo primero la definición de Samba (Wikipedia):

Samba es una implementación libre del protocolo de archivos compartidos de Microsoft Windows (antiguamente llamado SMB, renombrado recientemente a CIFS) para sistemas de tipo UNIX. De esta forma, es posible que ordenadores con GNU/Linux, Mac OS X o Unix en general se vean como servidores o actúen como clientes en redes de Windows.

Para personalizar el grupo de trabajo al que pertenecemos dentro de una red, debemos modificar la siguiente línea del fichero de configuración de Samba

/etc/samba/smb.conf

y poner el nombre que identifique al grupo que queremos pertenecer:

workgroup = MI_GRUPO_DE_TRABAJO

Una directiva sencilla pero que seguro que a más de uno le ha dado quebraderos de cabeza.

Montar una unidad CIFS (Samba) en una máquina virtual Virtuozzo


El software de virtualización Virtuozzo no permite la carga del módulo de kernel cifs para las máquinas virtuales. Esto impide poder montar directamente desde la máquina virtual una unidad CIFS ya que no reconoce el sistema de ficheros.

La solución de momento pasa por montar la unidad por cifs en el nodo hardware y después desde el mismo nodo montar en la máquina virtual la unidad. Veamos un ejemplo:

Montamos en el nodo hardware la unidad que queremos tener en la máquina virtual, el contenido del fichero /etc/fstab podría ser algo así:

//192.168.1.122/dir_remoto /punto-de-montaje cifs user,rw,suid,username=xxx,password=xxxxxxxx 0 0

De este modo, cuando arranca la máquina física la unidad se monta, para montar la unidad sin reiniciar:

mount /punto-de-montaje

Ahora que está montada, ejecutamos el comando que hará que el punto de montaje aparezca en la máquina virtual. En este caso lo haríamos en la máquina virtual con ID 101 y en la carpeta “carpeta-destino”:

mount --bind /mn /vz/root/101/carpeta-destino

Este último comando es necesario automatizarlo, así que creamos un script de montaje y otro de desmontaje para la máquina virtual. Estos scripts se ubican en dentro de la carpeta “scripts” de cada máquina virtual y tienen que tener un nombre específico:

Scripts para montar automáticamente:

/vz/private/111/scripts/mount
/vz/private/111/scripts/start
/vz/private/111/scripts/stop
/vz/private/111/scripts/umount

Mount, umount, start, stop son los nombres de los scripts, y 111 es el ID de la máquina virtual. Podéis encontrar ejemplos para estos scripts en esta KB de parallels.

Apagar o reiniciar máquina Windows remotamente desde Linux


Para apagar o reiniciar una máquina Windows de forma remota, y desde un equipo Linux lo primero que tenemos que hacer es tener instalado el paquete samba-common, que contiene herramientas y ficheros que se utilizan para la comunicación entre el cliente y servidor Samba.

En sistemas Debian lo instalaremos del siguiente modo:

sudo apt-get install samba-common

Y en sistemas RHEL / CentOS:

yum install samba-common

Una vez instalado el paquete, podremos hacer uso del comando “net rpc” (revisad la documentación de net porque tiene muchas más posibilidades) para reiniciar o apagar un servidor Windows de forma remota.

Apagar un servidor Windows desde Linux:

net rpc shutdown -I IP_SERVIDOR_WINDOWS -U usuario%password

Reiniciar un servidor Windows desde Linux:

net rpc shutdown -r IP_SERVIDOR_WINDOWS -U usuario%password

Hay que tener en cuenta que el usuario que utilicéis para realizar estas tareas debe encontrarse dentro del grupo administradores de la máquina Windows. Si tenéis pensado administrar en mayor o menor medida equipos Windows desde Linux os recomiendo revisar todas las demás opciones de net.