Папка общей сети ksmbd выглядит пустой на стороне клиента.

Вопрос или проблема

Я пытаюсь заставить ksmbd работать на машине под управлением Bookworm. Но независимо от того, использую ли я графический интерфейс Linux, командную строку или клиент Windows 10, я не могу просматривать файлы или директории в подключенной общей папке. Однако я могу создавать файлы и директории на сервере ksmb, редактировать их и снова удалять. Поскольку все клиенты работают одинаково, я полагаю, что это проблема ksmbd. Вся следующая информация взята из командной строки Linux. Кстати, независимо от того, вхожу я на сервер через ssh или sshfs, пользователь ‘henning’ всегда видит файлы и директории. Примечание. Все файлы на сервере в /zPool являются монтированиями репозиториев ZFS с posix acl.

Когда я использую общую папку “example” из моего ksmbd.conf, которая указывает на /tmp на сервере, все работает как ожидается.

Это ошибка или я что-то упускаю? Не нашел ни одного намека…

Давайте посмотрим на точку монтирования перед началом

# vdir /mnt/NAS/
insgesamt 8
drwxrwxr-x  2 admin admins 4096 29. Jul 2020  .
drwxr-xr-x 15 root  root   4096 31. Dez 19:14 ..

монтируем общую папку в локальную директорию

# mount -t cifs //pve.dry.lan/tmp /mnt/NAS/
Password for henning@//pve.dry.lan/tmp:

ошибок нет, кажется, ничего не произошло клиент

# vdir /mnt/NAS/
insgesamt 4
drwxr-xr-x  2 root root    0 12. Jun 2022  .
drwxr-xr-x 15 root root 4096 31. Dez 19:14 ..

но попробуйте создать папку и файл, пока ошибок нет

# mkdir /mnt/NAS/ksmbd-test-dir
# echo 1234 > ksmbd-text.txt

кажется, ничего не произошло снова

# vdir /mnt/NAS/
insgesamt 4
drwxr-xr-x  2 root root    0 12. Jun 2022  .
drwxr-xr-x 16 root root 4096 31. Dez 19:17 ..

посмотрим на сервере, новые созданные элементы там

$ vdir /zPool/tmp/
...
drwxrwsr-x+  2 henning admins         2 Dec 31 19:19 ksmbd-test-dir
-rwxrwxr-x+  1 henning admins         5 Dec 31 19:20 ksmbd-test.txt
...
$ getfacl /zPool/tmp/
getfacl: Removing leading "https://unix.stackexchange.com/" from absolute path names
# file: zPool/tmp/
# owner: admin
# group: admins
# flags: -s-
user::rwx
group::rwx
other::r-x
default:user::rwx
default:user:admin:rwx
default:group::r-x
default:group:admins:rwx
default:mask::rwx
default:other::r-x
$ getfacl /zPool/tmp/ksmbd-test
ksmbd-test-dir/ ksmbd-test.txt  
root@pve:/zPool/tmp# getfacl /zPool/tmp/ksmbd-test-dir/
getfacl: Removing leading "https://unix.stackexchange.com/" from absolute path names
# file: zPool/tmp/ksmbd-test-dir/
# owner: henning
# group: admins
# flags: -s-
user::rwx
user:admin:rwx
group::r-x
group:admins:rwx
mask::rwx
other::r-x
default:user::rwx
default:user:admin:rwx
default:group::r-x
default:group:admins:rwx
default:mask::rwx
default:other::r-x
$ getfacl /zPool/tmp/ksmbd-test.txt 
getfacl: Removing leading "https://unix.stackexchange.com/" from absolute path names
# file: zPool/tmp/ksmbd-test.txt
# owner: henning
# group: admins
user::rwx
user:admin:rwx
group::r-x
group:admins:rwx
mask::rwx
other::r-x

наконец файл ksmbd.conf

[global]
    ; global parameters
    bind interfaces only = no
    deadtime = 0
    guest account = nobody
    interfaces = 
    ipc timeout = 0
    kerberos keytab file = 
    kerberos service name = 
    kerberos support = no
    map to guest = never
    max active sessions = 1024
    max connections = 128
    max open files = 10000
    netbios name = KSMBD SERVER
    restrict anonymous = 0
    root directory = 
    server max protocol = SMB3_11
    server min protocol = SMB2_10
    server multi channel support = no
    server signing = disabled
    server string = SMB SERVER
    share:fake_fscaps = 64
    smb2 leases = no
    smb2 max credits = 8192
    smb2 max read = 4MB
    smb2 max trans = 1MB
    smb2 max write = 4MB
    smb3 encryption = auto
    smbd max io size = 8MB
    tcp port = 445
    workgroup = WORKGROUP
    durable handles = no

    ; default share parameters
    browseable = yes
    comment = 
    create mask = 0744
    crossmnt = yes
    directory mask = 0755
    force create mode = 0000
    force directory mode = 0000
    force group = 
    force user = 
    guest ok = no
    hide dot files = yes
    inherit owner = no
    invalid users = 
    oplocks = yes
    path = 
    read list = 
    read only = ; yes
    store dos attributes = yes
    valid users = 
    veto files = 
    vfs objects = 
    write list = 

[example]
    comment = read only /tmp access
    path = /tmp

[tmp]
        comment = temp share
        path = /zPool/tmp
        create mask = 0774
        directory mask = 0775
        force group = admins
        hide dot files = no
    read only = no
        write list = henning,moni

Ответ или решение

Если вы видите пустую папку на клиентской стороне при использовании ksmbd, важно выявить источник проблемы, учитывая предоставленные данные и конфигурации. Данная инструкция поможет вам разобраться в ситуации и предусмотреть возможные решения.

Понимание проблемы

Согласно описанию, вы сталкиваетесь с ситуацией, где при подключении к общему ресурсу через различные платформы файловый каталог кажется пустым, хотя операции создания и удаления файлов успешно завершаются. На основании этой информации проблема может быть связана с правами доступа или конфигурацией самой службы ksmbd.

Исследование проблемы

1. Проверка прав доступа

  • ACL и Posix ACL: Убедитесь, что ACL для /zPool/tmp и вложенных каталогов настроены правильно. Права должны быть достаточными для всех пользователей, которые будут работать с файлом через SMB.
  • Владелец и группа: Проверьте, что пользователь henning имеет соответствующие права для доступа и что они не переписываются конфигурацией ksmbd.

2. Анализ конфигурации ksmbd

  • Файл конфигурации:
    • Проверьте параметры browseable, create mask, и directory mask в секции [tmp]. Убедитесь, что они не ограничивают права доступа.
    • Убедитесь в корректном перечислении пользователей в параметрах write list.
    • Проверьте опцию read only = no, чтобы убедиться, что запись действительно разрешена.

3. Сравнение с другим функционирующим ресурсом

  • Ваша конфигурация показывает, что общие ресурсы, указывающие на /tmp, работают должным образом. Попробуйте использовать подобные настройки для /zPool/tmp и проверить, исправляется ли проблема.

4. Мониторинг и журналирование

  • Включите расширенное логирование на сервере SMB для определения ошибок или предупреждений, связанных с доступом и обнаружением файлов.
  • Используйте команды, такие как smbstatus, для отслеживания активных соединений и открытых файлов.

Возможные решения

  1. Корректировка прав: Убедитесь, что ACL настроены корректно, и пользователь henning имеет необходимые права на запись и чтение.

  2. Настройки конфигурации: Примените проверенные на /tmp параметры для /zPool/tmp, чтобы подтвердить их работоспособность.

  3. Логирование ошибок: Анализируйте журналы для поиска ошибок, связанных с правами или несовпадениями конфигурации.

Заключение

Итак, решить проблему можно улучшением настройки прав и глубоким анализом конфигурации ksmbd. Внимательное изучение данных аспектов может помочь вам вернуть доступность и видимость файлов на клиентской стороне. Убедитесь, что минимальные требования к правам доступа соблюдаются, и адаптируйте удачные настройки для полного устранения проблемы.

Если вы следуете вышеизложенным шагам, будьте уверены, что имеете все шансы на успешное исправление данной проблемы с ksmbd.

Оцените материал
Добавить комментарий

Капча загружается...