yo suelo autofs para montar mis recursos compartidos NFS Bajo demanda en mi kubuntu.
autofs es un programa para montar directorios automáticamente cuando sea necesario. Los montajes automáticos se montan solo cuando se accede a ellos, y se desmontan después de un período de inactividad. Debido a esto, el montaje automático de NFS / Samba conserva el ancho de banda y ofrece un mejor rendimiento general en comparación con los montajes estáticos a través de fstab.
En tu caso esto es útil:
Al especificar un recurso compartido CIFS en un archivo de mapa, especifique -fstype=cifs y precede la ubicación compartida con dos puntos ( : ).
Ejemplo:
mntpoint -fstype=cifs ://example.com/shrname
Ejemplo: Montar lectura-escritura, especificando un usuario y grupo para poseer los archivos:
mntpoint -fstype=cifs,rw,uid=myuserid,gid=mygrpid ://example.com/shrname
Ejemplo: monte lectura-escritura, especificando un nombre de usuario y contraseña para usar para conectarse al recurso compartido:
mntpoint -fstype=cifs,rw,username=myuser,password=mypass ://example.com/shrname
Un archivo de mapa es /etc/auto.master o /etc/auto.* o por ejemplo /etc/auto.master.d/*. Lee la documentación y aprende a configurar el demonio.
A primera vista, parece que esta no es la solución perfecta para usted porque parece tienes que almacenar las credenciales en un archivo. Esto sería un archivo de mapa (como en el ejemplo anterior) o un archivo separado, p. Ej. credentials.txt como puedes ver aquí . sin embargo Ahi esta este comentario allí :
Supongo que podrías hacer credentials.txt una tubería con nombre y ejecute un programa de solicitud de contraseña para alimentar la tubería.
Si esto es correcto, entonces espero que este "programa de solicitud de contraseña" sea solo uno echo o printf Se invoca a mano.
EDITAR:
Lo que pido es una forma fácil de hacer esto sin tener que invocar manualmente el comando cuando se le solicite, y sin tener que almacenar (o falsificar) las credenciales en un archivo.
Linux puede montar / desmontar varios sistemas de archivos a través de mount.* y umount.* ejecutables Esta credentials=/etc/credentials.txt opción en el ejemplo vinculado es, de hecho, una opción para mount.cifs. Creo que si usas algo como
mount -t foo …
o en autofs configuración:
mntpoint -fstype=foo …
tratará de encontrar y correr mount.foo, pasando todas las demás opciones a la misma.
Así que debes crear mount.mycifs como una envoltura sobre mount.cifs. Debería pedirle sus credenciales de alguna manera (sencillo xterm -e … tal vez, uso read o dialog o algo mas; pero Lea esto por favor ), agregar -o username=…,password=… o -o credentials=… Al resto de opciones y pasarlas a mount.cifs (o mount -t cifs ) que hace el montaje real.
Si usted tiene umount.cifs entonces haz umount.mycifs un enlace simbólico a él.
Entonces use -fstype=mycifs en su archivo de mapa sin ninguna opción relacionada con las credenciales.
El seguimiento /sbin/mount.mycifs Es una prueba de concepto rápida y sucia. Entienda lo que hace antes de ejecutarlo en su sistema operativo porque se ejecutará como rootSoy un tipo aleatorio en Internet y no deberías confiar en mí.
#!/bin/bash
tmpf="`mktemp`"
DISPLAY=:0 XAUTHORITY=/home/ola/.Xauthority xterm -e /bin/bash -c '\
read -p "user:" u; \
read -sp "password:" p; \
printf "username=%s\npassword=%s" "$u" "$p" > "$0"; \
' "$tmpf"
mount -t cifs "$@" -o credentials="$tmpf"
rm "$tmpf"
Debe ser propiedad de root:root o lo que sea apropiado para mount.* en su sistema operativo. No te olvides de hacerlo ejecutable ( sudo chmod a+x /sbin/mount.mycifs ), no funcionará de otra manera. Note que hay un truco desagradable con DISPLAY y XAUTHORITY que permite la autofs demonio para mostrar xterm ventana en su pantalla (?) pero en general no debería hacerlo . El hack es solo para el demonio, mount -t mycifs … debe poder mostrar xterm sin el hack si se invoca desde dentro de su entorno de escritorio.
Para hacerlo menos sucio, debe escribir otro programa o script y ejecutarlo con los permisos limitados de su usuario local antes de accede a un directorio donde se montarían automáticamente sus CIFS. Este script debe esperar una señal de mount.mycifs, le pedirá las credenciales (puede mostrar ventanas, etc. sin trucos) y páselos a mount.mycifs que no debería mostrar ninguna ventana ni indicaciones por sí mismo.