Cómo hacer que Samba comparta para NO PEDIR CONTRASEÑA

20

NOTA: He leído probablemente hasta 50 páginas diferentes que describen cómo configurar el uso compartido público de Samba en el lapso de 2 AÑOS y nada funcionó para mí. No sé cuánto RTFM necesito para configurar esto.

Necesito / deseo configurar un recurso compartido de archivos público completamente abierto en mi servidor doméstico para dos estaciones de trabajo.

La configuración es la siguiente:

Servidor :

  • Debian Wheezy
  • sudo smbd --versionme da Version 3.6.6.
  • 2 particiones locales que quiero compartir, formateadas en NTFS debido a que son antiguas y están tomadas de la máquina Windows. No puedo formatearlos a ext * FS porque tienen muchos datos que no puedo (todavía) mover a ningún otro lado.
  • máquina llamada "homeserv" por falta de originalidad.

Cliente :

  1. Prueba de Debian (Jessie)
  2. Windows 7 (2 máquinas diferentes). De hecho, mi máquina es Debian / Windows dualboot, y la máquina de mi esposa es solo Windows.

Mi smb.conf después de la destilación tiene el siguiente aspecto ( literalmente , no hay nada más):

[global]
  workgroup = WORKGROUP
  security = user
  map to guest = Bad User

[disk1]
  comment = Disk 1 on 400GB HDD
  path = /media/disk1
  browsable = yes
  guest ok = yes
  read only = no
  create mask = 0755

[disk2]
  comment = Disk 2 on 400GB HDD
  path = /media/disk2
  browsable = yes
  guest ok = yes
  read only = no
  create mask = 0755

En ambas máquinas cliente, tanto en Debian como en Windows obtengo el mismo resultado: diálogo de inicio de sesión / contraseña. Ninguna combinación de security = user, map to guest = Bad user, security = share, guest ok = yesy tal ayudó.

Windows 7 muestra el diálogo de inicio de sesión / contraseña justo después de hacer clic en la máquina compartida en el vecindario de la red. smb://homeserv/La ruta del archivo en Debian (en cualquier explorador de archivos) me muestra dos carpetas: disk1y disk2, según lo previsto, al intentar abrirlas, aparece el cuadro de diálogo de inicio de sesión / contraseña.

Entonces, ¿qué me falta en el esquema para NO TENER que ingresar nombre de usuario / contraseña? Esta es una pregunta de usabilidad, no crearé una autenticación basada en el usuario para el depósito de chatarra de archivos.

hijariano
fuente

Respuestas:

14

OK, yo mismo he encontrado una respuesta.

Como esto no es absolutamente obvio por los documentos y los CÓMOs y lo que sea, la razón por la que esta pregunta pide contraseña es porque no puede asignar el usuario invitado al propietario del directorio que se comparte .

Tengo particiones NTFS que necesito para montar RW, así que utilicé la siguiente configuración en mi /etc/fstab:

/dev/sdb1  /media/disk1  ntfs defaults,noexec,noatime,relatime,utf8,uid=1000,gid=1000 0       2
/dev/sdb2  /media/disk2  ntfs defaults,noexec,noatime,relatime,utf8,uid=1000,gid=1000 0       2

Las piezas de configuración más importantes son uidy gid(quizás solo uid, no lo sé). Están configurados en el UID y GID del usuario jonnieconfigurado en el servidor (obviamente no root). Entonces, cuando ntfs-3g montará estos discos, todo será propiedad de él.

Después de eso, he agregado este usuario al registro de Samba (o tal vez he creado uno nuevo idéntico, no me importa):

# smbpasswd -a jonnie

Pidió contraseña, he ingresado lo mismo que para el sistema principal.

Después de eso, he agregado la configuración force usery force groupa smb.conf:

[global]
  workgroup = WORKGROUP
  netbios name = HOMESERV
  security = share

[disk1]
  comment = Disk 1 on 400GB HDD
  path = /media/disk1
  browsable = yes
  guest ok = yes
  read only = no
  create mask = 666
  directory mask = 777
  force user = jonnie
  force group = jonnie

[disk2]
  comment = Disk 2 on 400GB HDD
  path = /media/disk2
  browsable = yes
  guest ok = yes
  read only = no
  create mask = 666
  directory mask = 777
  force user = jonnie
  force group = jonnie

Entonces, la pieza más importante de configuración relevante para mí fue force user.

Cortesía del Samba HOWTO

hijariano
fuente
1
"obviamente no root". Eso en realidad no es tan obvio. Samba tiene docenas de modos de falla. La mayoría da como resultado mensajes de error idénticos. Es por eso que pasaste tanto tiempo en búsquedas infructuosas de Google. Una sola búsqueda no solo traerá una mezcla de problemas, sino que las respuestas encontradas también sufrirán la misma confusión. El uso de root elimina el lado de seguridad de Linux, pero también le permite diagnosticar el problema. Si funciona como root, tiene un problema de seguridad a nivel de Linux. Si Samba aún falla, el problema está dentro de la idea de Samba de los usuarios (son diferentes y deberían haber tenido errores únicos)
MSalters
2

La configuración puede ser más corta:

Crear usuario unix jonnie

useradd jonnie -s /usr/sbin/nologin

Crear smbuser

smbpasswd -a jonnie

Crea el directorio de Linux para compartir

mkdir /mysmbshare

Cambiar el propietario del directorio a Jonnie

chown /mysmbshare jonnie

smb.conf

[global]
  workgroup = MyWorkGroup
  server string = Hello, use me
  security = share
  guest account = jonnie
  passdb backend = tdbsam

[the_public_share]
   path = /mysmbshare
   writable = yes
   printable = no
   public = yes

Todos los archivos son propiedad de Jonnie y todos tienen acceso a los archivos.

BdK
fuente
Sí, "cambiar el propietario del directorio a Jonnie" es probablemente la parte más importante aquí. ¡Gracias por una solución mucho más corta!
hijarian el
1

La forma rápida y sucia de tener un recurso compartido Samba abierto es tener:

# ----------------------- Standalone Server Options ------------------------
#
# Scurity can be set to user, share(deprecated) or server(deprecated)
#
# Backend to store user information in. New installations should
# use either tdbsam or ldapsam. smbpasswd is available for backwards
# compatibility. tdbsam requires no further configuration.

        security = share
        passdb backend = tdbsam

y tener acciones definidas como tales:

[export]
   comment = Data Export Directory
   path = /data/export
   read only = no
   public = yes
   browseable = yes
   writeable = yes
   create mask = 666
   directory mask = 777

Reinicia el demonio.

Para los clientes de Windows 7, a partir de 2014, tuve que establecer la política de dominio: firmar digitalmente las comunicaciones de siempre en DESACTIVAR.

ewwhite
fuente
Dios mío, cambiar la política de dominio para acciones supuestamente públicas ... (facepalm). Bien, gracias de todos modos, pero no, lo intenté hace un momento y para acceder smb://homeserv/disk1todavía se requiere una contraseña en Debian. Usé los navegadores de archivos Dolphin y Krusader. Quizás sea algo en KDE sin embargo.
hijarian
hey que funcionó! : D public = yesy los 777permisos hicieron el truco (Win 10 aloja Ubuntu 18.04). Afortunadamente está en mi estación de trabajo personal, así que no tengo que preocuparme por eso
Arthur Tarasov