aboutsummaryrefslogtreecommitdiff
path: root/hosts/jupiter/samba.nix
blob: 8cf34299cad6ae0e80b1c65b817b6cb3717c4f3d (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
{config, ...}: {
  users.users.${config.collinux.user.name}.extraGroups = ["brainusers"];
  users.users.bob = {
    isNormalUser = true;
    extraGroups = ["brainusers"];
    hashedPassword = "$y$j9T$L8CQv7V.LCD3gw/xR8M2T0$A4NHW9qpgc9pua7XE18P6ShICj.PNXHoyMW4yqmEMID";
  };

  users.groups."brainusers".name = "brainusers";

  # sudo smbpasswd -a collin <PASSWORD>
  # sudo smbpasswd -n bob # no password

  networking.firewall.allowedTCPPorts = [445];
  services.samba = {
    enable = true;
    openFirewall = true;
    settings = {
      global = {
        "workgroup" = "WORKGROUP";
        "server string" = "brain2.0";
        "security" = "user";
        "map to guest" = "Bad User";

        # disable printing
        "load printers" = "no";
        "printing" = "bsd";
        "printcap name" = "/dev/null";
        "disable spoolss" = "yes";
      };

      "brain2.0-public" = {
        path = "/srv/brain";
        "read only" = "yes";
        "guest ok" = "yes";
        "force group" = "brainusers";
      };

      "brain2.0-admin" = {
        path = "/srv/brain";
        "read only" = "no";
        "valid users" = "collin";
        writeable = "yes";
        browseable = "yes";
        "guest ok" = "no";
        "create mask" = "0660";
        "directory mask" = "0770";
        "force group" = "brainusers";
      };

      "brain2.0-worldbuilding" = {
        path = "/srv/brain/notes/worldbuilding";
        "read only" = "no";
        "guest ok" = "yes";
        writeable = "yes";
        browseable = "yes";
        public = "yes"; # make windows not ask for password?
        "create mask" = "0660";
        "directory mask" = "0770";
        "force group" = "brainusers";

        "delete readonly" = "no"; # prevent deletion of the directory
      };
    };
  };
}