Samba: Difference between revisions

Add usershare explaination
Renamed "services.samba.securityType" to "services.samba.settings.global.security" in the User Authentication section
 
(3 intermediate revisions by 3 users not shown)
Line 8: Line 8:
{ pkgs, config, ... }: {
{ pkgs, config, ... }: {
   services.samba = {
   services.samba = {
    # The full package is needed to register mDNS records (for discoverability), see discussion in
    # https://gist.github.com/vy-let/a030c1079f09ecae4135aebf1e121ea6
    package = pkgs.samba4Full;
     usershares.enable = true;
     usershares.enable = true;
     enable = true;
     enable = true;
     openFirewall = true;
     openFirewall = true;
    };
   };
   };


Line 29: Line 31:


Then, logout and login (to make sure your group change has been taken into account), open Dolphin, right click on a folder you'd like to share, go to Properties, Tab "Share", and configure it the way you want.
Then, logout and login (to make sure your group change has been taken into account), open Dolphin, right click on a folder you'd like to share, go to Properties, Tab "Share", and configure it the way you want.


== Server setup ==
== Server setup ==
Line 123: Line 124:
   services.samba = {
   services.samba = {
     enable = true;
     enable = true;
    securityType = "user";
     openFirewall = true;
     openFirewall = true;
     settings.my_share_directory = {
     settings = {
      # ...
      global = {
      "valid users" = "my_user";
        # ...
        "security" = "user";
      };
      my_share_directory = {
        # ...
        "valid users" = "my_user";
      };
     };
     };
   };
   };
Line 346: Line 352:
=== CIFS mount configuration ===
=== CIFS mount configuration ===


The following snippets shows how to mount a CIFS (Windows) share in NixOS.
The following snippets shows how to mount a CIFS (Windows) share in NixOS.  
 
Note the inclusion of the <code>"nofail"</code> option; NixOS will treat CIFS shares like any other mounted drive, and this will allow the system to boot correctly if the mounted NAS is off or if the network is slow to initialize.
 
Replace all <code><FIELDS></code> with concrete values:
Replace all <code><FIELDS></code> with concrete values:


Line 360: Line 369:
       automount_opts = "x-systemd.automount,noauto,x-systemd.idle-timeout=60,x-systemd.device-timeout=5s,x-systemd.mount-timeout=5s";
       automount_opts = "x-systemd.automount,noauto,x-systemd.idle-timeout=60,x-systemd.device-timeout=5s,x-systemd.mount-timeout=5s";


     in ["${automount_opts},credentials=/etc/nixos/smb-secrets"];
     in ["${automount_opts},credentials=/etc/nixos/smb-secrets" "nofail"];
   };
   };
}
}