Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Next revision
Previous revision
Next revisionBoth sides next revision
docs:guide-user:services:nas:ksmbd [2022/07/29 16:55] – created rmileckidocs:guide-user:services:nas:ksmbd [2024/12/11 13:48] – [Example] sppmaster
Line 1: Line 1:
 ====== ksmbd ====== ====== ksmbd ======
-[[https://www.kernel.org/doc/html/latest/filesystems/cifs/ksmbd.html|ksmbd]] in an in-kernel server for sharing files over network. It implements SMB3 protocol and can be used as a [[docs:guide-user:services:nas:samba|Samba]] alternative.+[[https://docs.kernel.org/next/filesystems/smb/ksmbd.html|KSMBD]] is a server which implements SMB3 protocol in kernel space for sharing files over your network. It can be used as a [[:docs:guide-user:services:nas:cifs.server|Samba]] alternative
 + 
 +===== Installation ===== 
 + 
 +To use ksmbd with [[docs:guide-user:luci:start|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 [[:docs:guide-user:services:nas:cifs.server#prerequisites]] page.
  
 ===== Configuration ===== ===== Configuration =====
-The UCI configuration file is located at ''/etc/config/samba''. It can be edited using [[docs:guide-user:luci:start|LuCI]] after installing ''luci-app-ksmbd'' package. 
  
-Some options are hardcoded in the ''/etc/ksmbd/smb.conf.template''.+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''. 
 + 
 +==== Example ==== 
 + 
 +This example assumes you have a [[docs:guide-user:storage:fstab|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: 
 + 
 +<code> 
 +chown -R nobody:nogroup /mnt/sda1 
 +</code> 
 + 
 +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. 
 + 
 +<code> 
 +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. 
 +</code> 
 + 
 +Configure shares in LuCI → Services → Network Shares or by editing ''/etc/config/ksmbd'': 
 + 
 +<code> 
 +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' 
 +</code> 
 + 
 +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: \\ 
 +As of this commit https://github.com/openwrt/packages/pull/25519 the below values are adjusted automatically (no need to change anything). This is valid for devices running OpenWrt main snapshot builds. \\ 
 +For versions below 24.10 you have to manually edit the template and adjust the values accordingly.  
 +<code> 
 + #smb2 max read = 512K 
 + #smb2 max write = 512K 
 + #smb2 max trans = 512K 
 +</code>
  
 ===== Global section ===== ===== Global section =====
  • Last modified: 2024/12/11 13:53
  • by sppmaster