Este es el servidor Ubuntu 10.04 64 y samba 3.4.7.
Tengo un directorio compartido /home/mit/share
y otro /home/temp
que enlace en el compartido:
ln -s /home/temp /home/mit/share/temp
Pero en Windows, después de usar Internet, no puedo abrir S:/temp
, pero en Linux es posible acceder /home/mit/share/temp
como se esperaba.
Esto funciona si enlazo directorios dentro /home/mit/share/temp
, así que supongo que samba está restringiendo saltar con un enlace fuera / arriba del directorio compartido.
EDITAR:
Consulte también esta pregunta titulada Ubuntu + última versión de samba, los enlaces simbólicos ya no funcionan en el recurso compartido montado en Windows .
Parece mejor ponerlo unix extensions = no
en la sección global follow symlinks = yes
y wide links = yes
solo en la sección de recursos compartidos, donde realmente lo necesita.
La unix extension
bandera tiene que vivir en la sección global y no en las secciones de acciones individuales. Pero por razones de seguridad, es mejor usar las otras opciones solo donde lo necesite, y no globalmente.
Respuestas:
Editar smb.conf
Nota: Si está utilizando una versión más nueva de samba, lo siguiente puede funcionar para usted:
documentación
follow symlinks
ywide links
banderas: https://www.samba.org/samba/docs/using_samba/ch08.html#samba2-CHP-8-TABLE-1fuente
cp /etc/samba/smb.conf /etc/samba/smb.conf.bak
2:grep -o '^[^#;]*' smb.conf.bak >smb.conf
[share]
quiere decir[<share_name>]
?sshfs
Saludos, he intentado poner esto en la configuración para corregir los enlaces simbólicos de Windows para mi configuración, pero no estoy seguro de si afectará al cliente de Windows, de lo contrario, seguirá los enlaces simbólicos cuando me conecte a este cuadro.
fuente
Alternativamente a las otras respuestas, para mantener las extensiones de Unix habilitadas, es posible usar:
fuente
[share]
quiere decir[<share_name>]
?[homes]
, donde lo uso. Consulte la documentación para más detalles.Para permitir que los clientes de Samba sigan enlaces simbólicos fuera de la ruta compartida, todo lo que necesita en la configuración de Samba es:
(Además de las definiciones de Samba comparte, por supuesto). Esto es, teóricamente, suficiente para clientes * nix.
NB: la directiva "seguir enlaces simbólicos" no es necesaria ya que por defecto es "sí"
En cuanto a los clientes de Windows, todavía falta 1 configuración para permitirles seguir dichos enlaces. Para hacerlo:
correr :
reiniciar para recargar la configuración
NB: se puede obtener el mismo resultado editando el registro de Windows. Ver enlaces a continuación
fuentes:
fuente
Es posible que deba abordar más que solo el archivo de configuración de Samba si está ejecutando AppArmor.
Necesita las siguientes directivas en su
smb.conf
:Pero, AppArmor bloquea el acceso a partes del sistema de archivos de acuerdo con su propia semántica de conjunto de reglas. Entonces, si su enlace simbólico dentro de Samba apuntó a una ubicación que AppArmor bloquearía, Samba negaría el acceso.
En mi sistema, Samba actualiza los perfiles de AppArmor en el inicio / detención del servicio, por lo que podría cambiar un perfil de AppArmor, pero me arriesgo a que Samba u otro programa lo sobrescriba. En cambio, decidí crear un recurso compartido inaccesible en Samba haciendo referencia a la ubicación que contenía el objetivo de enlace simbólico al que quería acceder (todavía en
smb.conf
):fuente