48 lines
1.3 KiB
Nix
48 lines
1.3 KiB
Nix
{
|
|
config,
|
|
lib,
|
|
...
|
|
}:
|
|
with lib; let
|
|
cfg = config.custom.services.samba;
|
|
in {
|
|
options.custom.services.samba.enable = mkOption {default = false;};
|
|
|
|
config = mkIf cfg.enable {
|
|
# https://wiki.nixos.org/wiki/Samba
|
|
# https://gitlab.com/samba-team/samba
|
|
#!! User configuration is imperative
|
|
#?? sudo smbpasswd -a $USER
|
|
services.samba =
|
|
if (versionAtLeast version "24.11")
|
|
then {
|
|
enable = true;
|
|
nmbd.enable = false;
|
|
nsswins = false;
|
|
openFirewall = true;
|
|
|
|
# https://www.samba.org/samba/docs/current/man-html/smb.conf.5.html
|
|
settings = {
|
|
Public.path = "/home/${config.custom.username}/Public";
|
|
SYNC.path = config.custom.sync;
|
|
|
|
global = {
|
|
"acl allow execute always" = "yes"; # Required for execution on Windows
|
|
"allow insecure wide links" = "yes";
|
|
"browseable" = "no";
|
|
"follow symlinks" = "yes";
|
|
"force user" = config.custom.username;
|
|
"hostname lookups" = "yes";
|
|
"hosts allow" = "192.168.111.";
|
|
"inherit owner" = "unix only";
|
|
"inherit permissions" = "yes";
|
|
"logging" = "systemd";
|
|
"map to guest" = "bad password";
|
|
"wide links" = "yes";
|
|
"writeable" = "yes";
|
|
};
|
|
};
|
|
}
|
|
else {};
|
|
};
|
|
}
|