Configurar un Samba Share anónimo público para acceder a través de Windows 7 y XBMC

9

Así que debería comenzar diciendo que lo hice con éxito hace menos de una semana y que no tuve problemas, pero desde entonces he formateado y reconfigurado mi servidor y ahora me cuesta mucho recordar cómo lo hice.

Esto es lo que tenía antes y lo que estoy tratando de lograr nuevamente. Tenía un recurso público de samba en el servidor Ubuntu. Cualquier persona en mi red podría acceder al recurso compartido y sus contenidos 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. (Windows 7)

Ahora, si intento conectarme a \ Hostname, se me solicita un nombre de usuario y contraseña. Si entro en la pw obtengo acceso completo pero no debería tener que hacerlo; mi configuración actual es ...

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 sacando el pelo sobre este. ¿Alguna sugerencia?

EDITAR:

Ugh, esto me está haciendo pasar un mal momento. Estoy tan cerca.

Esto es lo que tengo.

Puedo acceder al recurso compartido desde Windows 7 al comenzar y escribir \ Hostname \ Sharename, pero se me solicita un nombre de usuario y contraseña. Sin embargo, no puedo dejarlo en blanco porque usará mi grupo de trabajo como dominio; así que ingreso \ para el 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 en el recurso compartido.

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 Home puede leer, escribir y ejecutar. Entonces eso está funcionando.

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

Todavía tirando de pelo por esto. La peor parte es la primera vez que hice esto hace una semana, pasé unos 30 minutos y funcionó perfectamente. Ahora probablemente haya 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 toda 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 establecer la seguridad en seguridad = compartir. Lo sé, está en desuso, pero funciona y security = user y map to user = bad user no funcionaba para mí.

De todos modos, ahora parece que cualquiera que se conecte al recurso compartido obtiene los permisos globales de Unix para el directorio, que es manejable, pero quiero que los usuarios que se unen 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.

George Spake
fuente
Debería poder asignar usuarios de grupos de trabajo para obtener permisos específicos con un archivo de mapa de nombre de usuario: samba.org/samba/docs/man/manpages-3/smb.conf.5.html#USERNAMEMAP
Aaron

Respuestas:

8

Sucedió tropezar con este hilo en los foros de Ubuntu , y pensé que podría ayudar. Explica los pasos que suceden 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 lidiar con las credenciales enviadas a pesar de que es un recurso compartido de invitado que no requiere autenticación.

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

  • Si no hay una coincidencia con el nombre de usuario, el usuario del cliente se etiqueta como "Usuario incorrecto" y se convierte (se asigna) a la cuenta de invitado, que por defecto 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, el usuario de Windows automáticamente obtiene acceso, aunque no como un usuario anónimo, por lo que debe agregar "force user = nobody" a Su definición de compartir.

  • 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 invitado compartido.

Intente agregar force user = nobodya su definición de recurso compartido y vea si eso lo hace.

Editar 20/02/2013:

¿ testparmDevuelve un código de salida de algo distinto de cero? De todos modos, seguiría adelante y le daría a esa área de la configuración un buen aspecto. Además, no estoy seguro de cuán sensible a mayúsculas y minúsculas es smb.conf, pero cada ejemplo que veo (por ejemplo) map to guest = Bad Usertiene la B y la U en mayúscula. Consulte las páginas de manual de Samba para ver las opciones que está utilizando y vuelva a verificar todo.

Aaron
fuente
Hola Bryce, gracias por responder. Logré avanzar un poco desde mi pregunta original, pero todavía estoy teniendo el mismo problema. Me las arreglé para configurar mi parte (lo llamo Acciones) configurada para que cualquier persona en el grupo de trabajo, definida en los ajustes globales en smb.conf, pueda acceder a ella sin necesidad de contraseña. Continuando en el próximo comentario ...
George Spake
Aquí están las configuraciones para el recurso compartido: [Shares] path = /home/shares browsable = yes available = yes read only = no public = yes writable = yes guest ok = yes si lo agrego force user = nobodyse rompe y no puedo acceder al recurso compartido en absoluto. Sin embargo, aquí es donde se pone raro; cuando ejecuto testparm se voltea. [Shares] path = /home/shares read only = no guest ok = yesPor alguna razón, es como si no estuviera viendo las definiciones públicas, de escritura, disponibles y navegables. ¿Podría ser esto un indicador de dónde está el problema?
George Spake
@GeorgeSpake edición realizada ...
Aaron
1
Creo que testparm simplemente escupe cosas de esa manera. Todo está en minúsculas en el archivo conf. También descubrí, y necesito verificar esto, que testparm solo descarga definiciones no predeterminadas que explicarían por qué se omiten algunos de los resultados.
George Spake
Actualización de samba reciente 4.3.11+dfsg-0ubuntu0.14.04.3en Ubuntu 14.04 rompió mi parte pública, force user = nobodyes sólo la solución que necesitaba para traer de vuelta a la participación pública
Antony
7

Así es como se configura OpenElec. Debería hacer lo que está pidiendo. (incluso si es un año después ... tal vez ayude el próximo) 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
Conocer
fuente
¡Gracias por esta adición! He estado luchando para obtener una participación pública que funcione con Windows 8.1, esta configuración funcionó.
davidmdem
13
URGH! "cuenta de invitado = root". Esto significa que las cuentas de invitados se asignan a la raíz, es decir, tienen permisos sin restricciones para hacer cualquier cosa. ¡TEN MUCHO CUIDADO! DRAGONES ADELANTE!
DanielSmedegaardBuus
0

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

A continuación se detallan las condiciones requeridas para asegurarse de que los clientes SMB no soliciten el nombre de usuario y la contraseña cuando accedan a su servidor Samba:

  1. Añadir 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 tiene acceso a los datos de su recurso compartido.

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

  2. Asegúrese de que su [shareXYZ]tiene guest ok = yes.

    Establecer, browsable = yespero generalmente se hereda de [global]y está configurado yesde forma predeterminada.

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

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

Tenga en cuenta que haber puesto rwxa others( chmod o+rwx /yourshare) no permitió que Samba con su nobodyusuario en la acción. 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 el others? No estoy seguro.

Andrey Arapov
fuente