nixpkgs/nixos/modules/misc/ids.nix

428 lines
9.4 KiB
Nix
Raw Normal View History

# This module defines the global list of uids and gids. We keep a
# central list to prevent id collisions.
{ config, pkgs, lib, ... }:
{
options = {
ids.uids = lib.mkOption {
2013-10-30 17:37:45 +01:00
internal = true;
description = ''
The user IDs used in NixOS.
'';
};
ids.gids = lib.mkOption {
2013-10-30 17:37:45 +01:00
internal = true;
description = ''
The group IDs used in NixOS.
'';
};
};
config = {
ids.uids = {
root = 0;
#wheel = 1; # unused
#kmem = 2; # unused
#tty = 3; # unused
messagebus = 4; # D-Bus
haldaemon = 5;
#disk = 6; # unused
vsftpd = 7;
ftp = 8;
bitlbee = 9;
avahi = 10;
nagios = 11;
atd = 12;
postfix = 13;
#postdrop = 14; # unused
dovecot = 15;
tomcat = 16;
#audio = 17; # unused
#floppy = 18; # unused
#uucp = 19; # unused
#lp = 20; # unused
pulseaudio = 22; # must match `pulseaudio' GID
gpsd = 23;
#cdrom = 24; # unused
#tape = 25; # unused
#video = 26; # unused
#dialout = 27; # unused
polkituser = 28;
#utmp = 29; # unused
ddclient = 30;
davfs2 = 31;
privoxy = 32;
#disnix = 33; # unused
osgi = 34;
tor = 35;
cups = 36;
foldingathome = 37;
sabnzbd = 38;
kdm = 39;
ghostone = 40;
git = 41;
fourstore = 42;
fourstorehttp = 43;
virtuoso = 44;
rtkit = 45;
dovecot2 = 46;
dovenull2 = 47;
unbound = 48;
prayer = 49;
mpd = 50;
clamav = 51;
fprot = 52;
bind = 53;
wwwrun = 54;
#adm = 55; # unused
spamd = 56;
#networkmanager = 57; # unused
nslcd = 58;
#scanner = 59; # unused
nginx = 60;
chrony = 61;
#systemd-journal = 62; # unused
smtpd = 63;
smtpq = 64;
supybot = 65;
iodined = 66;
#libvirtd = 67; # unused
graphite = 68;
statsd = 69;
transmission = 70;
postgres = 71;
#vboxusers = 72; # unused
#vboxsf = 73; # unused
smbguest = 74; # unused
varnish = 75;
datadog = 76;
lighttpd = 77;
lightdm = 78;
freenet = 79;
ircd = 80;
bacula = 81;
almir = 82;
deluge = 83;
mysql = 84;
rabbitmq = 85;
activemq = 86;
gnunet = 87;
oidentd = 88;
quassel = 89;
amule = 90;
minidlna = 91;
elasticsearch = 92;
tcpcryptd = 93; # tcpcryptd uses a hard-coded uid. We patch it in Nixpkgs to match this choice.
#connman = 94; # unused
firebird = 95;
#keys = 96; # unused
2013-10-29 15:55:25 +01:00
haproxy = 97;
mongodb = 98;
openldap = 99;
#users = 100; # unused
2014-01-13 00:18:05 +01:00
cgminer = 101;
munin = 102;
logcheck = 103;
nix-ssh = 104;
dictd = 105;
2014-02-27 14:33:30 +01:00
couchdb = 106;
2014-03-07 20:09:59 +01:00
searx = 107;
2014-03-12 08:32:56 +01:00
kippo = 108;
jenkins = 109;
systemd-journal-gateway = 110;
notbit = 111;
2014-03-20 03:04:35 +01:00
ngircd = 112;
btsync = 113;
minecraft = 114;
2014-04-01 19:20:33 +02:00
monetdb = 115;
rippled = 116;
murmur = 117;
foundationdb = 118;
newrelic = 119;
starbound = 120;
#grsecurity = 121; # unused
hydra = 122;
spiped = 123;
teamspeak = 124;
2014-05-27 22:54:43 +02:00
influxdb = 125;
nsd = 126;
gitolite = 127;
znc = 128;
2014-07-15 16:16:58 +02:00
polipo = 129;
mopidy = 130;
#docker = 131; # unused
gdm = 132;
dhcpd = 133;
2014-07-10 20:08:38 +02:00
siproxd = 134;
2014-07-09 00:43:26 +02:00
mlmmj = 135;
2014-08-16 23:53:26 +02:00
neo4j = 136;
riemann = 137;
riemanndash = 138;
radvd = 139;
2014-08-24 17:43:45 +02:00
zookeeper = 140;
dnsmasq = 141;
2014-09-01 08:53:00 +02:00
uhub = 142;
2014-09-26 10:44:09 +02:00
yandexdisk = 143;
collectd = 144;
consul = 145;
2014-09-26 10:03:29 +02:00
mailpile = 146;
2014-10-07 10:53:01 +02:00
redmine = 147;
2014-10-06 21:25:10 +02:00
seeks = 148;
prosody = 149;
2014-11-09 09:44:47 +01:00
i2pd = 150;
dnscrypt-proxy = 151;
2014-11-20 00:01:44 +01:00
systemd-network = 152;
systemd-resolve = 153;
systemd-timesync = 154;
2014-11-20 23:30:24 +01:00
liquidsoap = 155;
2014-11-15 16:27:27 +01:00
etcd = 156;
2014-11-21 17:20:14 +01:00
docker-registry = 157;
2014-11-20 12:29:07 +01:00
hbase = 158;
2014-11-20 13:00:53 +01:00
opentsdb = 159;
2014-11-20 15:38:04 +01:00
scollector = 160;
2014-11-20 15:49:45 +01:00
bosun = 161;
2014-11-29 16:46:39 +01:00
kubernetes = 162;
2014-12-01 16:40:42 +01:00
peerflix = 163;
2014-12-03 15:49:14 +01:00
chronos = 164;
gitlab = 165;
2014-12-20 23:38:52 +01:00
tox-bootstrapd = 166;
2014-12-28 20:21:41 +01:00
cadvisor = 167;
nylon = 168;
apache-kafka = 169;
2014-12-08 10:02:57 +01:00
panamax = 170;
2015-02-19 10:32:02 +01:00
marathon = 171;
exim = 172;
#fleet = 173; # unused
#input = 174; # unused
2015-03-02 18:58:35 +01:00
sddm = 175;
tss = 176;
memcached = 177;
ntp = 179;
zabbix = 180;
redis = 181;
unifi = 183;
uptimed = 184;
zope2 = 185;
ripple-data-api = 186;
2015-03-27 11:48:50 +01:00
mediatomb = 187;
rdnssd = 188;
2015-04-11 00:09:31 +02:00
ihaskell = 189;
2015-04-15 12:52:06 +02:00
i2p = 190;
2015-04-14 01:06:37 +02:00
lambdabot = 191;
2015-04-17 00:53:26 +02:00
asterisk = 192;
plex = 193;
2014-12-08 10:02:57 +01:00
# When adding a uid, make sure it doesn't match an existing gid. And don't use uids above 399!
nixbld = 30000; # start of range of uids
nobody = 65534;
};
ids.gids = {
root = 0;
wheel = 1;
kmem = 2;
tty = 3;
messagebus = 4; # D-Bus
haldaemon = 5;
disk = 6;
vsftpd = 7;
ftp = 8;
bitlbee = 9;
avahi = 10;
#nagios = 11; # unused
atd = 12;
postfix = 13;
postdrop = 14;
dovecot = 15;
tomcat = 16;
audio = 17;
floppy = 18;
uucp = 19;
lp = 20;
pulseaudio = 22; # must match `pulseaudio' UID
gpsd = 23;
cdrom = 24;
tape = 25;
video = 26;
dialout = 27;
#polkituser = 28; # currently unused, polkitd doesn't need a group
utmp = 29;
#ddclient = 30; # unused
davfs2 = 31;
privoxy = 32;
disnix = 33;
osgi = 34;
tor = 35;
#cups = 36; # unused
#foldingathome = 37; # unused
#sabnzd = 38; # unused
#kdm = 39; # unused
ghostone = 40;
git = 41;
fourstore = 42;
fourstorehttp = 43;
virtuoso = 44;
#rtkit = 45; # unused
dovecot2 = 46;
#dovenull = 47; # unused
#unbound = 48; # unused
prayer = 49;
mpd = 50;
clamav = 51;
fprot = 52;
#bind = 53; # unused
wwwrun = 54;
adm = 55;
spamd = 56;
networkmanager = 57;
nslcd = 58;
scanner = 59;
nginx = 60;
#chrony = 61; # unused
systemd-journal = 62;
smtpd = 63;
smtpq = 64;
supybot = 65;
iodined = 66;
libvirtd = 67;
graphite = 68;
#statsd = 69; # unused
transmission = 70;
postgres = 71;
vboxusers = 72;
vboxsf = 73;
smbguest = 74; # unused
varnish = 75;
datadog = 76;
lighttpd = 77;
lightdm = 78;
freenet = 79;
ircd = 80;
bacula = 81;
almir = 82;
deluge = 83;
mysql = 84;
rabbitmq = 85;
activemq = 86;
gnunet = 87;
oidentd = 88;
quassel = 89;
amule = 90;
minidlna = 91;
#elasticsearch = 92; # unused
#tcpcryptd = 93; # unused
connman = 94;
firebird = 95;
keys = 96;
haproxy = 97;
#mongodb = 98; # unused
openldap = 99;
munin = 102;
#logcheck = 103; # unused
#nix-ssh = 104; # unused
dictd = 105;
2014-02-27 14:33:30 +01:00
couchdb = 106;
2014-03-07 20:09:59 +01:00
searx = 107;
2014-03-12 08:32:56 +01:00
kippo = 108;
jenkins = 109;
systemd-journal-gateway = 110;
notbit = 111;
#ngircd = 112; # unused
2014-12-28 12:47:12 +01:00
btsync = 113;
#minecraft = 114; # unused
monetdb = 115;
#ripped = 116; # unused
#murmur = 117; # unused
foundationdb = 118;
newrelic = 119;
starbound = 120;
nixos: add grsecurity module (#1875) This module implements a significant refactoring in grsecurity configuration for NixOS, making it far more usable by default and much easier to configure. - New security.grsecurity NixOS attributes. - All grsec kernels supported - Allows default 'auto' grsec configuration, or custom config - Supports custom kernel options through kernelExtraConfig - Defaults to high-security - user must choose kernel, server/desktop mode, and any virtualisation software. That's all. - kptr_restrict is fixed under grsecurity (it's unwriteable) - grsecurity patch creation is now significantly abstracted - only need revision, version, and SHA1 - kernel version requirements are asserted for sanity - built kernels can have the uname specify the exact grsec version for development or bug reports. Off by default (requires `security.grsecurity.config.verboseVersion = true;`) - grsecurity sysctl support - By default, disabled. - For people who enable it, NixOS deploys a 'grsec-lock' systemd service which runs at startup. You are expected to configure sysctl through NixOS like you regularly would, which will occur before the service is started. As a result, changing sysctl settings requires a reboot. - New default group: 'grsecurity' - Root is a member by default - GRKERNSEC_PROC_GID is implicitly set to the 'grsecurity' GID, making it possible to easily add users to this group for /proc access - AppArmor is now automatically enabled where it wasn't before, despite implying features.apparmor = true The most trivial example of enabling grsecurity in your kernel is by specifying: security.grsecurity.enable = true; security.grsecurity.testing = true; # testing 3.13 kernel security.grsecurity.config.system = "desktop"; # or "server" This specifies absolutely no virtualisation support. In general, you probably at least want KVM host support, which is a little more work. So: security.grsecurity.enable = true; security.grsecurity.stable = true; # enable stable 3.2 kernel security.grsecurity.config = { system = "server"; priority = "security"; virtualisationConfig = "host"; virtualisationSoftware = "kvm"; hardwareVirtualisation = true; } This module has primarily been tested on Hetzner EX40 & VQ7 servers using NixOps. Signed-off-by: Austin Seipp <aseipp@pobox.com>
2014-04-06 21:18:12 +02:00
grsecurity = 121;
hydra = 122;
spiped = 123;
teamspeak = 124;
2014-05-27 22:54:43 +02:00
influxdb = 125;
nsd = 126;
#gitolite = 127; # unused
znc = 128;
2014-07-15 16:16:58 +02:00
polipo = 129;
mopidy = 130;
docker = 131;
gdm = 132;
#dhcpcd = 133; # unused
2014-07-10 20:08:38 +02:00
siproxd = 134;
2014-07-09 00:43:26 +02:00
mlmmj = 135;
#neo4j = 136; # unused
riemann = 137;
riemanndash = 138;
#radvd = 139; # unused
#zookeeper = 140; # unused
#dnsmasq = 141; # unused
2014-09-01 08:53:00 +02:00
uhub = 142;
#yandexdisk = 143; # unused
#collectd = 144; # unused
#consul = 145; # unused
2014-09-26 10:03:29 +02:00
mailpile = 146;
2014-10-07 10:53:01 +02:00
redmine = 147;
2014-10-06 21:25:10 +02:00
seeks = 148;
prosody = 149;
2014-11-09 09:44:47 +01:00
i2pd = 150;
#dnscrypt-proxy = 151; # unused
2014-11-20 00:01:44 +01:00
systemd-network = 152;
systemd-resolve = 153;
systemd-timesync = 154;
2014-11-20 23:30:24 +01:00
liquidsoap = 155;
#etcd = 156; # unused
#docker-registry = 157; # unused
2015-03-03 20:21:36 +01:00
hbase = 158;
opentsdb = 159;
2015-01-05 11:58:17 +01:00
scollector = 160;
bosun = 161;
kubernetes = 162;
#peerflix = 163; # unused
#chronos = 164; # unused
2015-01-05 11:58:17 +01:00
gitlab = 165;
2015-03-03 20:21:36 +01:00
nylon = 168;
2014-12-08 10:02:57 +01:00
panamax = 170;
#marathon = 171; # unused
exim = 172;
2015-03-03 20:21:36 +01:00
fleet = 173;
input = 174;
2015-03-02 18:58:35 +01:00
sddm = 175;
tss = 176;
#memcached = 177; # unused
#ntp = 179; # unused
#zabbix = 180; # unused
#redis = 181; # unused
#unifi = 183; # unused
#uptimed = 184; # unused
#zope2 = 185; # unused
#ripple-data-api = 186; #unused
2015-03-27 11:48:50 +01:00
mediatomb = 187;
#rdnssd = 188; # unused
2015-04-11 00:09:31 +02:00
ihaskell = 189;
2015-04-15 12:52:06 +02:00
i2p = 190;
2015-04-14 01:06:37 +02:00
lambdabot = 191;
2015-04-17 00:53:26 +02:00
#asterisk = 192; # unused
plex = 193;
sabnzbd = 194;
2015-01-05 11:58:17 +01:00
# When adding a gid, make sure it doesn't match an existing
# uid. Users and groups with the same name should have equal
# uids and gids. Also, don't use gids above 399!
users = 100;
nixbld = 30000;
nogroup = 65534;
};
};
}