ksmbd

KSMBD is a server which implements SMB3 protocol in kernel space for sharing files over your network. It can be used as a Samba alternative.

To use ksmbd with LuCI install luci-app-ksmbd which will automatically install the server and dependencies. To use ksmbd only on the command line install ksmbd-server and ksmbd-tools.

If you are sharing a USB or eSATA drive make sure you also install the drivers and filesystem outlined on the Samba prerequisites page.

In LuCI, go to Services → Network Shares. Here you can assign the interface, name the shares, and path to the drive folder, e.g. /mnt/sda1.

For command line, the UCI configuration file is located at /etc/config/ksmbd. Some options are hardcoded in the /etc/ksmbd/ksmb.conf.template.

This example assumes you have a block device attached on /mnt/sda1 (typical Linux/OpenWrt mount points).
Multiple devices and shares may be added by providing a config share section with a name and mount location for each.

To access storage anonymously over the LAN using the nobody/nogroup user, first assign ownership for all files and directories at these mounting points to that user:

chown -R nobody:nogroup /mnt/sda1

To access a shared storage over the LAN using a username and password you have to use ksmbd.adduser from SSH. A /etc/ksmbd/ksmbdpwd.db file is created.

root@OpenWrt:~# ksmbd.adduser --help
Usage: ksmbd.adduser [-v] [-P PWDDB] [-c CONF] [-a | -u | -d] [-p PWD] USER

If neither `-a', `-u', nor `-d' is given, either add or update USER.
USER must be UTF-8 and [1, 48) bytes.
USER cannot contain colon (`:').

  -a, --add             add USER to user database
  -u, --update          update USER in user database
  -d, --delete          delete USER from user database
  -p, --password=PWD    use PWD as user password instead of prompting;
                        PWD must be UTF-8 and [0, 129) bytes
  -P, --pwddb=PWDDB     use PWDDB as user database instead of
                        `/etc/ksmbd/ksmbdpwd.db'
  -C, --config=CONF     use CONF as configuration file instead of
                        `/etc/ksmbd/ksmbd.conf'
  -v, --verbose         be verbose
  -V, --version         output version information and exit
  -h, --help            display this help and exit

See ksmbd.adduser(8) for more details.

Configure shares in LuCI → Services → Network Shares or by editing /etc/config/ksmbd:

config globals
	option workgroup 'WORKGROUP'
	option description 'Ksmbd on OpenWrt'
	option interface 'lan'

config share
	option name 'ssd'
	option path '/mnt/sda1'
	option read_only 'no'
	option guest_ok 'yes'
	option create_mask '0666'
	option dir_mask '0777'

On devices with sufficient RAM (typically >256MB) performance can be improved, increase or comment out the preset buffer limits in LuCI → Services → Network Shares → Edit Template. Save and apply:

	#smb2 max read = 512K
	#smb2 max write = 512K
	#smb2 max trans = 512K

The globals section contains share-independent options.

Name Type Required Default Description
workgroup string no WORKGROUP Workgroup name
description string no Ksmbd on OpenWrt Server description
allow_legacy_protocols boolean no 0 Enables support for insecure versions of SMB3 protocol
Name Type Required Default Description
name string yes (none) Share name that will be displayed in a file browser
path string yes (none) Directory path
comment string no (none)
users string no (none)
create_mask number no (none) chmod mask for created files
dir_mask number no (none) chmod mask for created directories
browseable string no (none)
read_only string no (none)
writeable string no (none)
guest_ok string no (none)
force_root boolean no (none)
write_list string no (none)
read_list string no (none)
users string no (none)
hide_dot_files string no (none)
veto_files string no (none)
inherit_owner string no (none)
force_create_mode string no (none)
force_directory_mode string no (none)
This website uses cookies. By using the website, you agree with storing cookies on your computer. Also you acknowledge that you have read and understand our Privacy Policy. If you do not agree leave the website.More information about cookies
  • Last modified: 2024/11/13 15:17
  • by sppmaster