blob: 16959bc90fab1b317330d34318fe2353020a72ad (
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
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
|
{ config, lib, pkgs, ... }:
with import <stockholm/lib>;
let
hostname = config.krebs.build.host.name;
# TODO local-ip from the nets config
internal-ip = "192.168.111.11";
# local-ip = config.krebs.build.host.nets.retiolum.ip4.addr;
in {
# samba share /media/crypt1/share
systemd.services.samba-smbd.serviceConfig.RequiresMountFor = [ "/media/cryptX" ];
users.users.smbguest = {
name = "smbguest";
uid = config.ids.uids.smbguest;
description = "smb guest user";
home = "/var/empty";
group = "share";
};
users.groups.share = {};
services.samba = {
enable = true;
shares = {
winshare = {
path = "/media/crypt1/share";
"read only" = "no";
browseable = "yes";
"guest ok" = "yes";
};
emu = {
path = "/media/crypt1/emu";
"read only" = "yes";
browseable = "yes";
"guest ok" = "yes";
};
movies = {
path = "/media/cryptX/movies";
"read only" = "yes";
browseable = "yes";
"guest ok" = "yes";
};
audiobook = {
path = "/media/crypt1/audiobooks";
"read only" = "yes";
browseable = "yes";
"guest ok" = "yes";
};
crypt0 = {
path = "/media/crypt0";
"read only" = "yes";
browseable = "yes";
"guest ok" = "yes";
};
anime = {
path = "/media/cryptX/anime";
"read only" = "yes";
browseable = "yes";
"guest ok" = "yes";
};
serien = {
path = "/media/cryptX/series";
"read only" = "yes";
browseable = "yes";
"guest ok" = "yes";
};
youtube = {
path = "/media/cryptX/youtube";
"read only" = "yes";
browseable = "yes";
"guest ok" = "yes";
};
photos = {
path = "/media/cryptX/photos";
"read only" = "yes";
browseable = "yes";
"guest ok" = "yes";
};
crypX-games = {
path = "/media/cryptX/games";
"read only" = "yes";
browseable = "yes";
"guest ok" = "yes";
};
media-rw = {
path = "/media/";
"read only" = "no";
browseable = "yes";
"guest ok" = "no";
"valid users" = "makefu";
};
#cloud = {
# path = "/media/cloud/download/finished";
# "read only" = "no";
# browseable = "yes";
# "guest ok" = "yes";
#};
};
extraConfig = ''
guest account = smbguest
map to guest = bad user
# disable printing
load printers = no
printing = bsd
printcap name = /dev/null
disable spoolss = yes
workgroup = WORKGROUP
server string = ${config.networking.hostName}
netbios name = ${config.networking.hostName}
'';
};
}
|