Montaje de recursos compartidos de Samba en /Volumes sin GUI fluff

Sé que puedo montar el recurso compartido de Samba usando el comando mounto opendesde el terminal. Consulte esta pregunta relacionada: ¿Cómo puedo montar un recurso compartido SMB desde la línea de comandos? . Prefiero usar openporque monta la carpeta compartida bajo /Volumesla cual parece una especie de estándar OS X, lo esperado. Es decir, esto sucede al escribir

open "smb://guest:@${host}/${path_component}"

(donde ${host}es el nombre de host o la dirección IP del recurso compartido de Samba y ${path_component}es la ruta o "nombre" del recurso compartido de Samba). El resultado y lo principal es que puedo acceder a las cosas desde /Volumes/${path_component}. Esto es muy agradable. Simplemente hay dos problemas o molestias al hacer esto desde los scripts. La primera es que esto abrirá un indicador de progreso superfluo y luego la ventana del Finder. El segundo, menor, ya que existen soluciones alternativas programables, es que el comando regresa inmediatamente sin esperar a que el montaje esté realmente disponible.

¿Hay alguna manera de montar (sincrónicamente) recursos compartidos de Samba /Volumessin que aparezcan ventanas extrañas?

(Estoy usando el último OS X (Sierra).)

Respuestas (1)

Lo siguiente es lo que uso para montar recursos compartidos de Samba a través de launchd:

/usr/bin/osascript -e "try" -e "mount volume \"smb://guest@${host}\"" -e "end try"

El uso osascriptde 's mountsignifica que cualquier keychainacceso necesario se realiza "automágicamente", no hay indicador de progreso o ventana del Finder, y el comando espera a que el montaje esté disponible antes de continuar (pruébelo && echo -n "Done."; mountanexado al final del comando anterior para probar esto).

guion OSA? Eso es algo extraño, ¡pero funciona como yo quiero! ¡Gracias!
@FooF osascript es la interfaz de línea de comandos para AppleScript.
Perfecto. Para los recursos compartidos que necesitan autenticación, puede reemplazarlos smb://guest@$hostcon smb://username:password@$hostel comando anterior.
Me encantó esta respuesta, pero ahora... mi recurso compartido smb ha cambiado de host... ¿cómo actualizamos este script? Además, no estoy seguro de si esto es estándar, pero actualmente no puedo acceder a /usr/bin/osascript para modificarlo... incluso si sudo. Esta es mi computadora portátil de trabajo, por lo que es muy posible que mi empleador haya bloqueado esto desde que ejecuté este script por primera vez y es posible que tenga que lidiar con el cuadro de diálogo de error cuando falla el montaje.
Funciona, excepto que incluso cuando agrego una contraseña, todavía me pide una. Se abre una ventana y me pide que ingrese la contraseña
Intenté esto y la parte de acceso al llavero no parece funcionar. Simplemente sigue solicitando los detalles del usuario. Inicialmente, el nombre de usuario raíz se completa previamente y solicita la contraseña. El uso de su <nombre de usuario> -c '<comandos>' establece el nombre de usuario local en lugar de root, pero el control remoto necesita uno diferente. luego, poner smb: // nombre de usuario @ resuelve esa parte, pero aún no tiene contraseña. ¿Parece que no se accede a kechain en absoluto?