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 root
Soy 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.