2 votos

Smbd en macOS: ¿Las carpetas compartidas aparecen vacías, solo directorios (sin archivos)?

Espero hacer que el smbd de samba.org funcione en mi MacBook Pro (M1, 13.6.2) para proporcionar compartidos a algunas VM (qemu/UTM) en un restringido al mismo host. Logré instalar Samba a través de MacPorts y de homebrew, creé algunos compartidos de prueba (incluido uno público que permite el acceso de invitados), pero hay una anomalía: puedo acceder a los compartidos utilizando smbclient desde el host de macOS, desde cualquier VM (ejecutando Windows, ejecutando Linux), pero aparecen vacíos:

Este es un directorio local de macOS (los permisos están configurados como permisivos):

/tmp/publictest (drwxrwxrwx: :staff)
 dummy-1.pdf (-rw-rw-rw-@: :staff)

se refiere a mi nombre de usuario de macOS, para compartir Samba, etc. Creé un usuario local de macOS solo para compartir sambauser (505) como miembro del grupo staff (20).

El directorio se expone como un compartido (smb.conf):

[public]
    ea support = No
    force create mode = 0666
    force directory mode = 0777
    guest ok = Yes
    guest only = Yes
    path = /tmp/publictest
    read only = No
    store dos attributes = No

Al correr localmente, desde la misma máquina de macOS, obtengo:

% /opt/homebrew/bin/smbclient //localhost/public
Password for [WORKGROUP\]:
Anonymous login successful
Try "help" to get a list of possible commands.
smb: \> ls
  .                                   D        0  Sat Nov 25 11:04:43 2023
  ..                                  D        0  Sat Nov 25 11:04:43 2023

        482797652 bloques de tamaño 1024. 108446544 bloques disponibles

Entonces, ¿¡dummy-1.pdf está desaparecido?!

Los registros revelan (--debuglevel=10 --debug-stdout --foreground):

file_name_hash: /private/tmp/publictest/. hash 0x7aedb117
push_sec_ctx(4294967294, 4294967294) : sec_ctx_stack_ndx = 1
push_conn_ctx(1627971036) : conn_ctx_stack_ndx = 0
setting sec ctx (0, 0) - sec_ctx_stack_ndx = 1
Security token: (NULL)
UNIX token of user 0
Primary group is 0 and contains 0 supplementary groups
pop_sec_ctx (4294967294, 4294967294) - sec_ctx_stack_ndx = 0
fd_openat: name ., flags = 04 mode = 00, fd = 26
openat_pathref_fullname: fsp [.]: OK
fdos_mode: .
dos_mode_debug_print: dos_mode_from_sbuf returning (0x10): "d"
dos_mode_debug_print: fdos_mode returning (0x10): "d"
smbd_dirptr_get_entry: mask=[*] found . fname=.. (..)
smbd_marshall_dir_entry: space_remaining = 8388488
smbd_marshall_dir_entry: SMB_FIND_ID_BOTH_DIRECTORY_INFO
delete_lock_ref_count for file .
file_free: freed files structure 0 (1 used)
smbd_dirptr_get_entry: dir [.] dirptr [0x131e123c0] offset [3] => dname [dummy-1.pdf]
openat_pathref_fsp_nosymlink: path_in=dummy-1.pdf
fsp_new: allocated files structure (2 used)
openat_pathref_fsp_nosymlink: SMB_VFS_OPENAT(., dummy-1.pdf, RESOLVE_NO_SYMLINKS) returned 78 Function not implemented => NT_STATUS_NOT_SUPPORTED
readlink_talloc: SMB_VFS_READLINKAT() failed: No such file or directory
read_symlink_reparse: readlink_talloc failed: NT_STATUS_OBJECT_NAME_NOT_FOUND
openat_pathref_fsp_nosymlink: create_open_symlink_err failed: NT_STATUS_OBJECT_NAME_NOT_FOUND
file_free: freed files structure 0 (1 used)
smbd_dirptr_get_entry: Could not open dummy-1.pdf: NT_STATUS_NOT_A_DIRECTORY
smbd_dirptr_get_entry: dir [.] dirptr [0x131e123c0] offset [3] => dname [(finished)]
smbd_smb2_request_find_done: out_output_buffer.length = 220

Aquí es donde estoy atascado. Hasta ahora no he logrado entender por qué dummy-1.pdf se procesa (como un directorio), pero no simplemente como un archivo.


  • Versión de Samba (a través de Homebrew):

    sudo /opt/homebrew/sbin/samba-dot-org-smbd --version                                  
    Versión 4.19.2
  • Parámetros globales:

    [global]
        allow insecure wide links = Yes
        bind interfaces only = Yes
        interfaces = lo0
        max log size = 50
        security = USER
        server role = standalone server
        server string = samba server
        idmap config * : backend = tdb
  • smbd (MacPorts) y samba-dot-org-smbd (homebrew) están registrados para "Acceso completo al disco":

    introducir descripción de la imagen aquí

  • Como mencioné anteriormente, este no es un problema del cliente Samba (por ejemplo, SELinux activo en alguna VM de Linux, etc.). El comportamiento es reproducible para cualquier cliente Samba/máquina remota que haya estado probando (por ejemplo, montando en PowerShell en Windows 2022 Server, etc.)

  • Verifiqué los tickets de MacPorts y Homebrew, no hay mención de este problema.

  • El smbd propio de macOS está inactivo, y el Compartir archivos está desactivado.

3voto

Benedikt Köppel Puntos 178

Tengo el mismo problema y aún no hay una solución adecuada para ello. Sin embargo, descubrí que el problema no ocurre en la versión 4.18.6 de samba, así que aquí hay una solución temporal (para homebrew):

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X