Windows al alcance de Linux: Accede a recursos con smbmount y smbclient

Índice de Contenido
  1. ¿Qué quiero lograr?
  2. El comando smbmount
    1. El largo camino a casa
    2. El comando smbmount
    3. Problemas utilizand smbmount
    4. smbclient al rescate
    5. Menos escritura, más trabajo
    6. El comando smbclient
    7. Imprimir con smbclient
    8. Depuración / diagnóstico con smbclient
    9. Interfaces gráficas
  3. Conclusión

¿Qué quiero lograr?

Al finalizar este artículo, espero que hayas adquirido un mejor entendimiento de cómo funcionan los comandos smbmount y smbclient y si hay un cliente de interfaz gráfica que soporte estas herramientas y sea adecuado para ti.

El comando smbmount

El comando smbmount es en realidad una interfaz gráfica para smbmnt. El paquete de aplicaciones smbfs contiene tanto los comandos smbmount como smbumount. Para el usuario promedio, smbmount y smbumount se comportarán exactamente igual que mount y umount, con la diferencia de que estarás montando recursos compartidos de SMB en una LAN.

Preparación:

Lo primero que necesitarás es tener Samba instalado correctamente en tu máquina con smbmount y smbumount configurados para ejecutarse con privilegios de root. Para configurar esto, debes ingresar al modo root y ejecutar los siguientes comandos:

chmod u+s /usr/sbin/smbmount
chmod u+s /usr/sbin/smbumount

Una vez que se haya configurado correctamente, podrás ejecutar el comando para montar tus recursos compartidos de SMB.

El largo camino a casa

Primero, vamos a probar montar nuestros recursos compartidos de SMB de la manera convencional, y eventualmente desarrollaremos un método para simplificar este proceso. El comando smbmount tiene la siguiente estructura:

smbmount recurso_direccion punto_de_montaje [-o opciones]

Pero también puedes ejecutarlo de manera más simple:

smbmount //servidor/compartir /punto_de_montaje

Como puedes ver, estamos reduciendo la cantidad de pasos necesarios para ver el vecindario de SMB de una manera más fácil. ¡Espera a ver lo simple que es!

El comando smbmount

Echemos un vistazo al comando smbmount y veamos lo que tiene para ofrecer. Este comando tiene varias opciones que puedes pasarle. La diferencia más importante en estas opciones es que se pasan como una lista separada por comas de pares clave=valor. Aquí están las opciones posibles:

  • username=<arg>: Esta opción especifica el nombre de usuario con el que deseas conectarte. Si no se proporciona este valor, se usará la variable de entorno USER. Esta opción también puede tomar la forma usuario%contraseña o usuario/grupo_de_trabajo%contraseña para permitir que se especifique la contraseña y el grupo de trabajo como parte del nombre de usuario.
  • password=<arg>: Esto especifica la contraseña de SMB. Si no se proporciona, smbmount pedirá una contraseña (a menos que se use la opción guest).
  • workgroup=<arg>: Esto establece el grupo de trabajo en el destino.

Esta es una lista bastante extensa de argumentos. Sin duda, habrá situaciones en las que necesitarás pasar algunos de estos valores a Samba. Por ejemplo, si necesitas acceder a una máquina con Windows en la red desde una máquina Linux de otro usuario, deberás pasar tanto el argumento username= como el argumento password= (después del signo =, deberás proporcionar tu propio nombre de usuario y contraseña).

Problemas utilizand smbmount

Por supuesto, este método también tiene sus problemas. El primero, y más obvio, es que puede que te encuentres en una red más grande que utiliza DHCP para asignar direcciones IP. Debido a DHCP, no sabrás las direcciones IP de las máquinas que necesitas utilizar. Esto es un problema en cualquier situación. Incluso con Microsoft Network Neighborhood, no puedes obtener esta información. Sin embargo, hay una manera de superar este obstáculo. Para obtener la dirección IP de una máquina, debes seguir este procedimiento:

  1. Obtener el nombre NetBIOS de la máquina.
  2. Hacer ping al nombre.
  3. Tomar nota de la dirección IP reportada para el nombre.

Generalmente, obtener el nombre de NetBIOS de una máquina es tan fácil como preguntar al usuario o al administrador de la red de la máquina. Normalmente, cuando se utiliza una máquina en producción (especialmente cuando es necesaria para múltiples usuarios), el nombre de la máquina será conocido por los usuarios. Si nadie sabe el nombre de la máquina y tienes acceso físico a ella, puedes ir al Panel de Control de la máquina, hacer clic en el icono de Redes y elegir la pestaña Identificación. Bajo esta pestaña, podrás ver un nombre de computadora, que es el nombre de la máquina a la que deseas acceder.

Una vez que tengas el nombre, es muy sencillo hacer ping a ese nombre para determinar la dirección IP. Siguiendo nuestro ejemplo, sabes que el nombre de la máquina es Help y la máquina que estás usando está en la misma red DHCP. Para esto, debes ejecutar el comando:

ping -v Help

Y recibirás la dirección IP de esa máquina. Escribe esa dirección IP para poder usarla en el comando smbmount.

smbclient al rescate

Por supuesto, esto no te será de ayuda si no sabes qué recursos compartidos están disponibles para ti. El comando smbmount requiere la forma //nombre_de_máquina/recurso y devolverá errores si intentas montarlo sin un nombre de recurso válido. ¿Qué haces entonces? ¡Encuentras el nombre de recurso! ¿Cómo se hace? ¡Simple, con la ayuda de Samba! Para conseguir los nombres de recursos disponibles en la máquina Help, puedes utilizar el comando smbclient de la siguiente manera:

smbclient -L Help

Aquí tienes un fragmento de la salida del comando:

Domain=[TECH] OS=[Windows NT 4.0] Server=[NT LAN Manager 4.0]

	Sharename		Type		Comment
	---------		----		-------
	NETLOGON		Disk		Logon server share
	BizDev			Disk		Business Development
	ProgramMan		Disk		Program Management
	ADMIN$			Disk		Remote Admin
	Asset			Disk		Asset Management Database
	Art				Disk		Art
	Operations		Disk		Operations
	IPC$			IPC		Remote IPC

Arriba puedes ver los recursos compartidos disponibles para tu máquina. Ahora tienes toda la información necesaria para montar un recurso compartido en tu máquina Linux. Usando el comando:

smbmount //help/Art ~/work

Montarás exitosamente el recurso compartido Art (desde Help) en el directorio /home/usuario/work. Ahora puedes utilizar el recurso compartido Art como si estuviera local en tu propia máquina.

Hay un problema actualmente con el protocolo smbmount. A veces aleatorias, intentarás ver (o listar o ingresar a) tu directorio montado con smbmount y recibirás el siguiente error:

ls: work: Input/output error

donde work es el directorio que has creado para montar tus recursos compartidos de Samba.

Actualmente, no hay una solución para este problema. La única forma de solucionar este problema es ejecutar el comando umount (o smbumount) en el directorio work como root, salir del modo root y volver a montar el directorio como un usuario regular.

Menos escritura, más trabajo

Todos estos comandos pueden ser bastante consumidores de tiempo y, en el peor de los casos, difíciles de recordar. ¡Pero hay una manera muy fácil de simplificar estos comandos: mediante alias!

Para agregar un alias para este comando, primero debes insertar la dirección IP y un nombre para la máquina en tu archivo /etc/hosts. Esta nueva entrada se verá así:

172.22.1.33   help

Y podrás utilizar el nombre de host help en lugar de tener que escribir la dirección IP. Con esta configuración, debes abrir el archivo .bashrc y agregar la siguiente línea:

alias work="smbmount //help/Art /home/usuario/work"

Con esta línea en su lugar, deberás salir de la sesión de X y de la consola. Una vez que inicies sesión nuevamente, podrás usar el comando work desde un prompt de bash y ejecutarás el comando smbmount que has ingresado en el archivo .bashrc. También podrías agregar el comando al archivo /etc/rc.d/rc.local, pero hay problemas con esto y raramente (si alguna vez) tiene éxito.

El comando smbclient

El comando smbclient es una herramienta multifuncional que actúa (entre otras cosas) como un cliente similar a FTP para Samba. Esta herramienta puede ser muy útil cuando todo lo demás falla. La mayor desventaja se presenta cuando intentas acceder a una máquina Windows 9x estándar. Debido a que la tecnología 9x no fue creada para redes, no podrás hacer FTP a esa máquina. Por supuesto, existe software que te permitirá habilitar esta tecnología en una máquina 9x, pero eso es otro tema para otro momento.

Para utilizar smbclient y leer y escribir en directorios de máquinas Windows, deberás utilizar el comando de la siguiente manera:

smbclient //NOMBRE_DEL_SERVIDOR/NOMBRE_DEL_COMPARTIR

Y recibirás información como:

Password:
Domain=[TECH] OS=[Windows NT 4.0] Server=[NT LAN Manager 4.0]
smb: \>

En este comando, deberás sustituir la información por tus propios valores para NOMBRE_DEL_SERVIDOR y NOMBRE_DEL_COMPARTIR.

Una vez que ingreses tu contraseña y presiones [Enter], verás el prompt smb: \>. En este prompt, puedes realizar varias operaciones. Las funciones principales dentro de smbclient se muestran en la siguiente lista:

lsdirdulcdcd
pwdgetmgetputmput
renamemoremaskdelopen
rmmkdirmdrmdirrd
promptrecursetranslatelowercaseprint
printmodequeuecancelquitq
exitnewerarchivetarblocksize
tarmodesetmodehelp?!

Estas son algunas de las funciones que puedes realizar dentro de smbclient. Con este comando, podrás ejecutar la mayoría de comandos de directorios (ls, dir, cd, mkdir, etc.), el intercambio de archivos como en FTP, y muchos comandos básicos de bash. smbclient rápidamente se convierte en un comando mucho más potente que telnet.

Por supuesto, utilizar smbclient también tiene sus inconvenientes. Con esta aplicación, no tienes modelos de interfaz gráfica para usar. Cuando estás en modo smbclient, solo puedes utilizar una estructura de línea de comandos, lo que muchas personas podrían no apreciar.

smbclient también tiene algunas características irritantes que podrían hacerte inclinarte por no utilizarlo. Uno de los más molestos es la falta de autocompletado. Típicamente, en un shell bash de Linux, si escribes parte de un comando o nombre de archivo y presionas la tecla [Tab], el shell autocompletará la palabra por ti. Esta característica te ahorrará mucho tiempo y esfuerzo. Una vez que te hayas acostumbrado a esta función, no querrás trabajar sin ella. Dentro de smbclient, ya no tienes esta característica. En lugar de la autocompletado, la tecla [Tab] solo funcionará como una tecla de tabulación. Entonces, cuando intentes usar [Tab] para autocompletar una palabra, recibirás algo como esto:

..
ALMOSTE MSSGS	D 0 Tue May 9 17:10:58 2000
ALMOSTE PICS	D 0 Tue May 9 17:11:05 2000
almostEverest raw pics	D 0 Fri May 19 11:19:16 2000
books	D 0 Fri Jun 2 09:52:35 2000
everest	D 0 Wed May 17 16:09:04 2000
Gartner for CD	D 0 Tue Jun 13 10:30:39 2000
jeff’sbookfiles	D 0 Wed May 31 17:01:32 2000
TPG content	D 0 Tue Jun 20 11:24:47 2000

34726 blocks of size 2097152. 11754 blocks available
smb: \> cd TP
cd \TP\: ERRDOS - ERRbadpath (Directory invalid.)
smb: \>

El punto de lo anterior es mostrarte un intento de utilizar la autocompletado y sus consecuencias. Dentro del recurso compartido montado (arriba) hay un directorio llamado TPG content. Al intentar cd en ese directorio, se intentó autocompletar, lo que resultó en esto:

cd TP

Y esto resultó en el siguiente error:

cd \TP\: ERRDOS - ERRbadpath (Directory invalid.)

Claro, no es un error grave o un problema que impida el funcionamiento. Es solo lo suficientemente molesto como para convencerte de que utilizar smbmount es una opción mucho mejor.

Imprimir con smbclient

El comando smbclient también tiene la capacidad de acceder a impresoras mediante la conexión a un recurso compartido de impresión. Una vez que te has conectado (con el comando anterior), puedes utilizar los siguientes comandos para imprimir:

  • print NOMBRE_DE_ARCHIVO: Este comando imprime el archivo enviándolo a la cola de impresión remota.
  • printmode TIPO1 | TIPO2: Esto le indica al servidor de impresión cuál será el formato del trabajo de impresión.
  • queue: Este comando muestra la cola del recurso compartido de impresión al que te has conectado.
  • c: Este argumento se envía a smbclient y le indica que vas a imprimir.

Entonces, el siguiente comando imprimirá el archivo print_test.txt en el recurso compartido de impresora en el servidor Help:

cat print_test.txt | smbclient //Help/print CONTRASEÑA -c "print -"

Ten en cuenta que debes utilizar tu contraseña de red en lugar de CONTRASEÑA.

Depuración / diagnóstico con smbclient

Las siguientes herramientas permiten a smbclient ayudarte a depurar una conexión de Samba (cualquier valor en mayúscula es una variable definida por el usuario):

  • B DIRECCIÓN_IP: Esto establece la dirección de difusión.
  • d NIVEL_DE_DEPURACIÓN: Esto establece qué tan detallada quieres que sea la información de depuración.
  • E: Estos mensajes envían mensajes a stderr en lugar de a stdout.
  • I DIRECCIÓN_IP: Esto establece la dirección IP del servidor al que deseas conectarte.
  • i ALCANCE: Esto establece un identificador de alcance de NetBIOS.
  • l ARCHIVO_DE_REGISTRO: Esto envía los mensajes de registro al archivo definido por el usuario.
  • N: Esto suprime la solicitud de contraseña.
  • n NOMBRE_NETBIOS: Esto te permite reemplazar el nombre NETBIOS que el demonio usará para anunciarse.
  • O OPCIONES_DEL_SOCKET: Esto establece las opciones de socket TCP/IP. Esto generalmente se usa solo para ajustar el rendimiento.
  • p NÚMERO_DE_PUERTO: Esto establece el número de puerto que el cliente utilizará para aceptar solicitudes.
  • R ORDEN_DE_RESOLUCIÓN: Esto establece el orden de resolución de los servidores de nombres.
  • s ARCHIVO_DE_CONFIGURACIÓN: Esto declara la ubicación del archivo de configuración de Samba (smb.conf).
  • t CÓDIGO_TERMINAL: Esto establece el código de terminal para lenguajes asiáticos.
  • U NOMBRE_DE_USUARIO: Esto establece el nombre de usuario y se puede usar junto con una contraseña, por ejemplo, -U usuario%contraseña.
  • W NOMBRE_DE_GRUPO_DE_TRABAJO: Esto establece el nombre del grupo de trabajo con el que deseas conectarte.

La lista anterior es bastante extensa y te ayudará a solucionar la mayoría de los problemas con Samba.

Interfaces gráficas

Finalmente, llegamos a la sección que estaba ansioso por discutir. De vez en cuando, sucede algo muy misterioso. Cuando comencé a escribir este artículo, empecé a pensar que realmente no existe una aplicación lo suficientemente buena para ofrecer a los lectores que sea tan amigable para el usuario como el Network Neighborhood de Microsoft. Esa aplicación en particular es fácil de usar y lee la red tan fácil y eficientemente como si fuera una parte intrínseca de la máquina local. Hasta hace poco, Linux no tenía una aplicación así.

LinNeighborhood, escrito por Hans Schmid y Richard Stemmer, es una de las aplicaciones que realmente alegraron mi día. Esta pequeña aplicación no solo lee toda la red, ¡también puede montar automáticamente estos recursos compartidos en directorios creados por la aplicación! No estoy seguro de por qué tomó tanto tiempo para que apareciera una aplicación así, pero esta pequeña joya hace que usar Linux en una red principalmente de Windows sea lo más simple posible.

Aunque lo mejor es experimentar con LinNeighborhood en lugar de explicarlo, intentaré hacerlo. La base de la aplicación se encuentra en el comando smbmount, y lo hace, al estilo de Windows, con la menor interacción posible del usuario. Una vez configurado, este pequeño botón puede abrirse para mostrar los recursos compartidos disponibles. Con un clic derecho, puedes elegir entre varias opciones. Entre estas opciones, puedes montar el recurso compartido y luego explorarlo con un administrador de archivos. Es simple y elegante.

La única dificultad posible con esta aplicación es la configuración inicial. Cuando se utiliza en una red MS típica, solo necesitarás configurar lo siguiente (en el menú Options | Preferences): En la pestaña Scan, configura Workgroup. Siempre escanea como usuario (si tienes un nombre de usuario y contraseña, necesitarás esto). En la pestaña Programs, posiblemente tendrás que cambiar a una versión diferente de smbmount. En la pestaña Miscellaneous, selecciona Memorize Mounted Shares/Remount On Next Startup. En la pestaña Post Mount, posiblemente quieras configurar un administrador de archivos diferente.

La ventana principal de LinNeighborhood se ve así:

Windows al alcance de Linux: Accede a recursos con smbmount y smbclient - Código abierto | Imagen 1 Newsmatic

Notarás que la ventana principal contiene tres íconos. Los dos primeros íconos (pequeñas computadoras) representan dos recursos compartidos de máquinas (ambas máquinas NT) montados en Giles (la máquina local). Debajo de los dos primeros íconos hay un tercer ícono (una linda cabeza de pingüino) que representa la red completa (aunque tenga el nombre de la máquina local).

Una de las ventajas de esta aplicación es que cuando la abres, se conectará inmediatamente a toda la red y, con un doble clic en los otros íconos, montará los recursos compartidos configurados por el usuario.

Conclusión

Ha llevado bastante tiempo, pero Linux finalmente está llegando al punto en el que puede vivir con facilidad en el mundo de Windows. La configuración complicada de redes rápidamente se está convirtiendo en algo del pasado. En este artículo, hemos intentado acercarte aún más a tu sueño de trabajar en una estación de trabajo sin Windows.

En Newsmatic nos especializamos en tecnología de vanguardia, contamos con los artículos mas novedosos sobre Código abierto, allí encontraras muchos artículos similares a Windows al alcance de Linux: Accede a recursos con smbmount y smbclient , tenemos lo ultimo en tecnología 2023.

Artículos Relacionados

Subir

Utilizamos cookies para mejorar su experiencia de navegación, mostrarle anuncios o contenidos personalizados y analizar nuestro tráfico. Al hacer clic en “Aceptar todo” usted da su consentimiento a nuestro uso de las cookies.