cifs, smb: no se puede montar (permiso denegado) o navegar por la carpeta compartida

12

Recientemente me he encontrado con este problema. Normalmente navego a través de una carpeta compartida de red local desde una máquina Linux a través de smb (es decir, desde el administrador de archivos usando smb:). Ahora, cada vez que intento acceder al acceso directo o escribir la credencial nuevamente, aparece el cuadro de diálogo que solicita usuario, dominio y contraseña.

Así que intenté montar la ubicación manualmente usando cisf-utils haciendo:

sudo mount -t cifs //fileshare1/docs1/user/My\ Documents/shared/Francesco/ /home/frank/used_shared/ -o username=my_user,password=my_pass,domain=my_domain,gid=1000,uid=1000

Consigo mount error(13): Permission denied.

Definitivamente estoy seguro de que mi usuario tiene permiso en esa carpeta porque puedo acceder desde una máquina Windows.

Además, si intento montar mi carpeta personal en esa ubicación a través de:

sudo mount -t cifs //fileshare1/docs5/francesco.azzarello/ /home/frank/mnt_folder -o username=my_user,password=my_pass,domain=my_domain,gid=1000,uid=1000

Puedo acceder sin ningún problema.

Como referencia estoy usando el kernel 4.2.0-36-generic y mi versión mount.cifs es 6.4

¿Alguna idea sobre cómo hacer que uno de los dos métodos funcione?


Actualizar la respuesta de Rgarding ponsfrilus

número 1: la opción detallada devuelve:

_mount.cifs kernel mount options: ip=xxx.xxx.xxx.xxx,unc=\\fileshare1\docs1,uid=1000,gid=1000,user=my_user,,domain=my_domain,prefixpath=user/My Documents/shared/Francesco/,pass=********
mount error(13): Permission denied
Refer to the mount.cifs(8) manual page (e.g. man mount.cifs)_

El número 2 es básicamente lo mismo:

_ mount.cifs kernel mount options: ip=xxx.xxx.xxx.xxx,unc=\\fileshare1\docs1,iocharset=utf8,file_mode=0777,dir_mode=0777,user=my_user,,domain=my_domain,prefixpath=user/My Documents/shared/Francesco/,pass=********
mount error(13): Permission denied
Refer to the mount.cifs(8) manual page (e.g. man mount.cifs)_

Y nada cambió con vers = 2.1:

_mount.cifs kernel mount options: ip=xxx.xxx.xxx.xxx,unc=\\fileshare1\docs1,vers=2.1,iocharset=utf8,file_mode=0777,dir_mode=0777,user=my_user,,domain=my_domain,prefixpath=user/My Documents/shared/Francesco/,pass=********
mount error(13): Permission denied
Refer to the mount.cifs(8) manual page (e.g. man mount.cifs)_

En cuanto al número 4, puedo montar docs1 sin problemas, pero puedo navegar hasta llegar a la carpeta compartida en el usuario.

Frankmtl
fuente
Prueba el consejo # 3 de ponsfrilus con vers=3.0, quizás también vers=2.0o vers=1.0. Si esto no funciona, tal vez pueda permitir que el servidor se conecte una gama más amplia de versiones de smb. Tuve este problema yo mismo porque smb3 se configuró en el servidor según sea necesario. No pude conectarme con Linux hasta que el servidor bajó la versión de samba requerida a 2. ¿Qué sistema operativo ejecuta el servidor?
emk2203
2
Los probé todos. Todavía obtengo "permiso denegado" con 3.0, 2.1 y 2.0. Mientras me aparece "error desconocido" con 1.0. No sé cómo verificar la versión del servidor de Windows como usuario ya que no tengo acceso directo a ella.
Frankmtl
No puedo ayudarte con eso, lo siento. Tenía control sobre el servidor y mi problema desapareció después de relajar las versiones SMB permitidas. Puede conectarse a su propio recurso compartido: es improbable una configuración incorrecta de Linux; puede conectarse a través de Windows para compartir; la configuración incorrecta del servidor es poco probable. Esto requiere un verdadero gurú de samba.
emk2203

Respuestas:

10

Estoy bastante seguro de que me encontré con este mismo problema hoy en Ubuntu 16.10. Probé todas las sugerencias en este hilo varias veces, pude montar exactamente el mismo recurso compartido con Windows Server 2016 y pude navegarlo usando smbclient ( smbclient -U brainstrust //WINBOX01/shared). Incluso probé un archivo de credenciales externo.

Terminé tropezando con una solución, aunque había creado un usuario local para el recurso compartido en el cuadro de Windows, también se unió a un dominio. Básicamente, configurar el dominio para que sea la máquina local -o domain=WINBOX01solucionó mi problema al instante, por lo que dejar un comentario aquí con la esperanza de que sea útil para alguien por ahí.

El comando mínimo completo que utilicé fue:

sudo mount.cifs -v //WINBOX01/shared /home/geoff/winbox01  --verbose -o user=brainstrust,password=topsecret,domain=WINBOX01
Geoff Williams
fuente
Gracias por dejar este comentario aquí, me ayudó.
dleerob
A mi también me ayudó. Parece que mount -t cifs sufre el mismo problema
Terminality
Esto es lo que resultó ser mi problema. Ya tenía un ~/.smbcredentialsarchivo Me horroriza descubrir que mi NAS local me ha permitido montar el recurso compartido con una contraseña incorrecta durante mucho tiempo.
Charlie
Por extraño que parezca, necesitábamos especificar el nombre de dominio NetBIOS, no el nombre de host del servidor de archivos. Sin embargo, funciona ahora, muchas gracias.
bviktor
9

Creo que tiene el tipo de seguridad incorrecto para el servidor, el error 13 significa que el servidor no lo deja entrar.

Tendrá que seleccionar el modo de seguridad correcto en su comando de montaje, agregue una opción de seg a través de -o de la siguiente manera:

sec=
   Security mode. Allowed values are:
   ·   none - attempt to connection as a null user (no name)
   ·   krb5 - Use Kerberos version 5 authentication
   ·   krb5i - Use Kerberos authentication and forcibly enable packet 
       signing
   ·   ntlm - Use NTLM password hashing
   ·   ntlmi - Use NTLM password hashing and force packet signing
   ·   ntlmv2 - Use NTLMv2 password hashing
   ·   ntlmv2i - Use NTLMv2 password hashing and force packet signing
   ·   ntlmssp - Use NTLMv2 password hashing encapsulated in Raw NTLMSSP message
   ·   ntlmsspi - Use NTLMv2 password hashing encapsulated in Raw NTLMSSP message, and force packet signing
Amias
fuente
1
Los probé todos y recibo "permiso denegado" o "error desconocido" según el tipo de seg
Frankmtl
Teniendo en cuenta todos los problemas de seguridad recientes con SMB, recomendaría usarlo solo cuando existan muchas medidas de seguridad adicionales, como la verificación de virus muy actualizada.
Amias
Intente usar sec = ntlmssp y asegúrese de que la configuración del servidor samba cifre la contraseña.
Humpity
Me salvó el día En realidad, lo que hice fue eliminar el sec = ntlm y luego funcionó.
Chuckedw
Realmente deberías alejarte de SMB en estos días, es una fuente casi constante de ataques y escalada de privilegios.
Amias
4
  1. Intente agregar la opción "-v" para obtener resultados detallados:

    sudo mount -v -t cifs //fileshare1/docs1/user/My\ 
       Documents/shared/Francesco/ /home/frank/mnt_folder -o \
       username=my_user,password=my_pass,domain=my_domain,gid=1000,uid=1000
    
  2. Pruebe con estas opciones para el comando de montaje

    iocharset = utf8, rw, file_mode = 0777, dir_mode = 0777 :

    sudo mount -v -t cifs //fileshare1/docs1/user/My\ 
       Documents/shared/Francesco/ /home/frank/mnt_folder -o 
       username=my_user,password=my_pass,domain=my_domain,\
       iocharset=utf8,rw,file_mode=0777,dir_mode=0777
    
  3. Prueba que especifica la opción de versión SMB (vers = 2.1), vea el wiki de samba . Desde la página de manual de mount.cifs:

    vers =
    versión del protocolo SMB. Los valores permitidos son:

    • 1.0 - El clásico protocolo CIFS / SMBv1. Este es el valor predeterminado.

    • 2.0 - El protocolo SMBv2.002. Esto se introdujo inicialmente en Windows Vista Service Pack 1 y Windows Server 2008. Tenga en cuenta que la versión de lanzamiento inicial de Windows Vista hablaba un dialecto ligeramente diferente (2.000) que no es compatible.

    • 2.1 - El protocolo SMBv2.1 que se introdujo en Microsoft Windows 7 y Windows Server 2008R2.

    • 3.0 - El protocolo SMBv3.0 que se introdujo en Microsoft Windows 8 y Windows Server 2012.

  4. Finalmente, intente montar solo el primer recurso compartido:

    sudo mount -v -t cifs //fileshare1/docs1/ /home/frank/mnt_folder \
       -o username=my_user,password=my_pass,domain=my_domain,\
       iocharset=utf8,rw,file_mode=0777,dir_mode=0777
    

Cualquier salida detallada que pueda compartir podría ayudar.

ponsfrilus
fuente
Gracias por tu respuesta. No encontré una mejor manera de reproducir que no sea actualizar la pregunta. puede encontrar los resultados de esos comandos en la actualización
Frankmtl
@Frankmtl ¿puedes comparar los derechos de las carpetas dentro de docs1 y docs5 fileshare1?
ponsfrilus
Lo siento por la respuesta tardía. Si se refiere a los permisos de carpeta después de que los montes, los dos tienen drwxr-xr-x
Frankmtl
Para acceder a un recurso compartido del servidor de Windows 2012 (smb2), debe agregar ,vers=2.1 después de uid = 1000 (también conocido como final de línea). También instalé el paquete "cifs-utils".
laugeo
2

Agregar la opción sec=ntlmal comando de montaje resolvió mi problema.

p.ej:

sudo mount -t cifs -o username=administrator,password=123456,sec=ntlm //ip/eeshare /mnt/eeshare/
brike
fuente
1

Para este problema cuando se usan cifs superiores a 6.0: la nueva versión de cifs usa la variable de dominio en su lugar, por lo que el archivo de credenciales se ve así:

username=<your username>
password=<your password>
domain=<your domain>
Do Manh Tien
fuente