ksmbd

Если нужен полноценный и функциональный файловый сервер уровня предприятия, то лучше остановить свой выбор на Samba.

А ksmbd нужен там, где надо быстро и просто организовать один или несколько общих ресурсов.

Ядро Linux содержит реализацию файлового сервера на базе протокола smb - ksmbd.

Пример конфигурации /etc/ksmbd/ksmbd.conf.example

  1. apt install ksmbd-tools

    Гостевой доступ

    [global]

    map to guest = never #отключен гостевой доступ

    map to guest = bad user #включить гостевой доступ

  2. создаем конфиг /etc/ksmbd/ksmbd.conf:
    [global]
     netbios name = 1cbackup
     map to guest = never
    
    [backup]
     comment = 1C_backup
     path = /mnt/backup/1c/
     writeable = yes
     users = ksmbduser
     
  3. добавляем cистемного пользователя

    Ksmbd использует сопоставление с системным пользователем

    создаем системного пользователя, не задавая ему домашней папки и запретив интерактивный вход
    (если вам не нужен реальный пользователь в системе с этим именем)

    useradd -s /sbin/nologin ksmbduser

    И сопоставляем с пользователем ksmbd:

    ksmbd.adduser --add-user=ksmbduser

    В автозагрузку она добавляется автоматически после установки.

    systemctl restart ksmbd

Дополнительно

изменить пароль пользователя:

ksmbd.adduser --update-user=ksmbduser --password=NewPa$$w0rd

удалить пользователя:

ksmbd.adduser --del-user=ksmbduser

Если нужен ананимный доступ

[backup_1c]
 path = /mnt/backup/1c/
 writeable = yes
 guest ok = yes  ; Разрешить анонимный доступ только к этому ресурсу

скрыть только конкретный общий ресурc

hide share = backup_1c

задать список пользователей имеющих право доступа к ресурсу:

valid users = ivanov petrov

задать список тех, кому доступ запрещен:

invalid users = kozlov

Данный список имеет приоритет над valid users.

Данный список имеет приоритет над valid users.

В случае ресурса с доступом только на чтения можно дополнительно указать пользователей имеющих право записи:

write list = ivanov

Также можно выборочно переключить некоторых пользователей в режим только чтения:

read list = kozlov

В случае совместного применения опций read list имеет приоритет над write list.

Logs

journalctl -u ksmbd.service