Configuración de un Samba Share público anónimo al que se puede acceder a través de Windows 7 y XBMC

Configuración de un Samba Share público anónimo al que se puede acceder a través de Windows 7 y XBMC

Así que debo comenzar diciendo que hice esto exitosamente hace menos de una semana y no tuve problemas, pero desde entonces he reformateado y reconfigurado mi servidor y ahora me resulta más difícil recordar cómo lo hice.

Esto es lo que tenía antes y lo que estoy tratando de lograr nuevamente. Tenía un recurso compartido público de samba en el servidor Ubuntu. Cualquiera en mi red podría acceder al recurso compartido y a su contenido simplemente escribiendo \Hostname. No se necesita contraseña. Los usuarios que no estaban en el grupo de trabajo del recurso compartido tenían acceso de lectura, pero los usuarios que estaban en el grupo de trabajo tenían acceso de lectura/escritura. (ventanas 7)

Ahora, si intento conectarme a \Hostname, se me solicita un nombre de usuario y una contraseña. Si ingreso la contraseña de la ONU, obtengo acceso completo, pero no debería ser necesario; mis configuraciones actuales son...

security = user
map to guest = bad user

[Shares]
path = /home/shares
available = yes
read only = no
browsable = yes
public = yes
writable = yes
guest ok = yes

Me estoy arrancando el pelo con este. ¿Alguna sugerencia?

EDITAR:

Uf, esto me está haciendo pasar un mal rato. Estoy tan cerca.

Esto es lo que tengo.

Puedo acceder al recurso compartido desde Windows 7 yendo al inicio y escribiendo \Hostname\Sharename pero se me solicita un nombre de usuario y contraseña. No puedo dejarlo en blanco porque utilizará mi grupo de trabajo como dominio; así que ingreso \ como nombre de usuario para borrarlo e iniciar sesión con un nombre de usuario y contraseña en blanco. Genial, ahora puedo acceder a los archivos compartidos.

Una vez que estoy dentro, la configuración del grupo de trabajo funciona correctamente. Si estoy en una computadora con el GRUPO DE TRABAJO predeterminado, puedo leer y ejecutar; una computadora en mi grupo de trabajo de casa puede leer, escribir y ejecutar. Entonces eso está funcionando.

El problema es que no debería pedir ninguna contraseña. Debería ser totalmente público para cualquier persona en la red. Estoy intentando compartirlo con XBMC y ni siquiera aparece en smb en el administrador de archivos. Tampoco puedo acceder manualmente desde XBMC. Recibo un error de conexión rechazada.

Sigo tirándome de los pelos por esto. La peor parte es que la primera vez que hice esto hace aproximadamente una semana, le dediqué unos 30 minutos y funcionó perfectamente. Ahora probablemente he pasado al menos 4 horas y todavía no funciona.

Testparm:

Load smb config files from /etc/samba/smb.conf
rlimit_max: increasing rlimit_max (1024) to minimum Windows limit (16384)
Processing section "[printers]"
Processing section "[print$]"
Processing section "[Shares]"
Loaded services file OK.
Server role: ROLE_STANDALONE
Press enter to see a dump of your service definitions

[global]
        workgroup = FELLOWSHIP
        server string = %h server (Samba, Ubuntu)
        map to guest = Bad User
        obey pam restrictions = Yes
        pam password change = Yes
        passwd program = /usr/bin/passwd %u
        passwd chat = *Enter\snew\s*\spassword:* %n\n *Retype\snew\s*\spassword:* %n\n *password\supdated\ssuccessfully* .
        unix password sync = Yes
        syslog = 0
        log file = /var/log/samba/log.%m
        max log size = 1000
        socket options = TCP_NODELAY SO_RCVBUF=8192 SO_SNDBUF=8192
        dns proxy = No
        wins support = Yes
        usershare allow guests = Yes
        panic action = /usr/share/samba/panic-action %d
        idmap config * : backend = tdb

[printers]
        comment = All Printers
        path = /var/spool/samba
        create mask = 0700
        printable = Yes
        print ok = Yes
        browseable = No

[print$]
        comment = Printer Drivers
        path = /var/lib/samba/printers

[Shares]
        path = /home/shares
        read only = No
        guest ok = Yes

ACTUALIZACIÓN: Entonces, el recurso compartido ahora está disponible en mi red independientemente del grupo de trabajo. Cualquier usuario de Windows que se conecte a mi red puede ver el NAS en Netowork y acceder a él. La clave fue configurar la seguridad en seguridad = compartir. Lo sé, está en desuso, pero funciona y seguridad = usuario y mapa a usuario = mal usuario no funcionaban para mí.

De todos modos, ahora parece que cualquiera que se conecte al recurso compartido obtiene permisos globales Unix para el directorio, lo cual es manejable, pero quiero que los usuarios que están unidos al grupo de trabajo especificado en smb.conf obtengan permisos de grupo Unix.

De esta manera, puedo configurar el directorio en 775 y podré escribir porque estoy unido al grupo de trabajo pero otros usuarios solo pueden leer y ejecutar.

Respuesta1

Sucedió que tropecé coneste hilo en los foros de Ubuntuy pensé que podría ayudar. Explica los pasos que ocurren detrás de escena:

En Windows, el nombre de usuario y la contraseña del cliente se envían automáticamente cuando busca recursos compartidos; esto se hace sin el conocimiento del usuario. Eso obliga a Samba a manejar las credenciales enviadas a pesar de que es un recurso compartido invitado que no requiere autenticación.

Cuando se pasa ese nombre de usuario, Samba buscará ese usuario en su base de datos de contraseñas:

  • Si no hay ninguna coincidencia con el nombre de usuario, el usuario del cliente se etiqueta como "Usuario incorrecto" y se convierte (asigna) a la cuenta de invitado que, de forma predeterminada, es "nadie".

  • Si encuentra una coincidencia con el nombre de usuario y hay una contraseña de samba que coincide con la enviada por el cliente de Windows, entonces el usuario de Windows obtiene acceso automáticamente, aunque no como un usuario anónimo, por lo que necesitaba agregar "forzar usuario = nadie" a su definición de acción.

  • Si encuentra una coincidencia con el nombre de usuario pero la contraseña de samba no coincide exactamente con la contraseña que envía automáticamente el cliente de Windows, se le solicitará una contraseña, incluso para un recurso compartido como invitado.

Intente agregarlo force user = nobodya su definición de acciones y vea si eso es suficiente.

Editar 20/02/2013:

¿ testparmDevuelve un código de salida distinto de cero? De todos modos, seguiría adelante y le daría una buena mirada a esa área de la configuración. Además, no estoy seguro de hasta qué punto smb.conf distingue entre mayúsculas y minúsculas, pero cada ejemplo que veo (por ejemplo) map to guest = Bad Usertiene la B y la U en mayúscula. Revisar lapáginas man de sambapara las opciones que estás utilizando y vuelve a verificar todo.

Respuesta2

Así se configura OpenElec. Debería hacer lo que estás pidiendo. (incluso si es un año después... tal vez ayude al siguiente) Simplemente modifique la configuración de compartir según sea necesario.

[global]
  server string = YOURSERVERNAME
  workgroup = WORKGROUP
  netbios name = %h
  security = share
  guest account = root
  socket options = TCP_NODELAY IPTOS_LOWDELAY SO_RCVBUF=65536 SO_SNDBUF=65536
  smb ports = 445
  max protocol = SMB2
  min receivefile size = 16384
  deadtime = 30
  os level = 20
  mangled names = no
  syslog only = yes
  syslog = 2
  name resolve order = lmhosts wins bcast host
  preferred master = auto
  domain master = auto
  local master = yes
  printcap name = /dev/null
  load printers = no
  browseable = yes
  writeable = yes
  printable = no
  encrypt passwords = true
  enable core files = no
  passdb backend = smbpasswd
  smb encrypt = disabled
  use sendfile = yes

[share]
comment = Share
path = /share
available = yes
browsable = yes
writable = yes
public = yes

Respuesta3

Como la búsqueda de Google nos trae hasta aquí y no hay una respuesta clara, lo resumí.

A continuación se detallan las condiciones necesarias para garantizar que los clientes SMB no soliciten el nombre de usuario y la contraseña al acceder a su servidor Samba:

  1. Agregar guest account = <owner-of-your-shares>debajo de una [global]sección. Es importante que la cuenta del propietario de sus acciones tenga acceso a ellas. Si no hace esto, Samba asumirá que la cuenta de invitado es un nobodyusuario que probablemente no tenga acceso a los datos de su recurso compartido.

    Alternativamente, puede especificar force user = <owner-of-your-share>debajo de su [shareXYZ]bloque.

  2. Asegúrate de que [shareXYZ]lo tengas guest ok = yes.

    Establecido browsable = yes, pero generalmente se hereda de [global]y está configurado yesde forma predeterminada.

Entonces, probablemente security = usertambién debería configurarse (esto es el valor predeterminado cuando no tiene Active Directory configurado en su entorno). Sin embargo, no estoy seguro de si este indicador es necesario ya que no tengo AD en mi entorno.

Por supuesto, si desea que el nobodyusuario trabaje, entonces puede simplemente chown -Rh 65534:65534 /yourshare, después de eso estará bien con la configuración única guest ok = yesdebajo de su [shareXYZ].

Tenga en cuenta que haber establecido rwxen others( chmod o+rwx /yourshare) no permitió que Samba y su nobodyusuario ingresaran al recurso compartido. He comprobado esto con strace -f -e chdir,geteuid,getegid -p <pid-of-the-parent-smbd-process>. Probablemente Samba simplemente ignora los permisos establecidos para others? No estoy seguro.

Respuesta4

Probablemente esta no sea la solución para todos los que tengan ese problema, pero mi problema se debió a los permisos del directorio principal en el que se encontraba el directorio compartido. Tan pronto como habilité "Leer por otros", pude acceder de forma anónima. la cuota. Esto me tomó un poco por sorpresa ya que en los servidores de Windows los permisos del directorio principal no importan para el directorio compartido.

Entonces mi camino se ve así:

/data1/Downloads 

Tuve que habilitar "leído por otros" en el data1directorio.

No tuve que hacer nada especial smb.conf, mi entrada compartida se ve así...

[Downloads]
path = /data1/Downloads
browseable = yes
read only = yes
guest ok = yes
public = yes

información relacionada