1 # This module defines the global list of uids and gids. We keep a
2 # central list to prevent id collisions.
5 # We only add static uids and gids for services where it is not feasible
6 # to change uids/gids on service start, for example a service with a lot of
7 # files. Please also check if the service is applicable for systemd's
8 # DynamicUser option and does not need a uid/gid allocation at all.
9 # Systemd can also change ownership of service directories using the
10 # RuntimeDirectory/StateDirectory options.
20 ids.uids = lib.mkOption {
23 The user IDs used in NixOS.
25 type = types.attrsOf types.int;
28 ids.gids = lib.mkOption {
31 The group IDs used in NixOS.
33 type = types.attrsOf types.int;
46 messagebus = 4; # D-Bus
49 #vsftpd = 7; # dynamically allocated ass of 2021-09-14
51 # bitlbee = 9; # removed 2021-10-05 #139765
52 #avahi = 10; # removed 2019-05-22
56 #postdrop = 14; # unused
60 #floppy = 18; # unused
64 pulseaudio = 22; # must match `pulseaudio' GID
69 #dialout = 27; # unused
72 # ddclient = 30; # converted to DynamicUser = true
80 #kdm = 39; # dropped in 17.03
81 #ghostone = 40; # dropped in 18.03
83 #fourstore = 42; # dropped in 20.03
84 #fourstorehttp = 43; # dropped in 20.03
85 #virtuoso = 44; dropped module
86 #rtkit = 45; # dynamically allocated 2021-09-03
89 # prayer = 49; # dropped in 23.11
93 # bind = 53; #dynamically allocated as of 2021-09-03
97 #networkmanager = 57; # unused
102 #systemd-journal = 62; # unused
107 #libvirtd = 67; # unused
109 #statsd = 69; # removed 2018-11-14
112 #vboxusers = 72; # unused
113 #vboxsf = 73; # unused
114 smbguest = 74; # unused
122 #almir = 82; # removed 2018-03-25, the almir package was removed in 30291227f2411abaca097773eedb49b8f259e297 during 2017-08
133 tcpcryptd = 93; # tcpcryptd uses a hard-coded uid. We patch it in Nixpkgs to match this choice.
136 #haproxy = 97; # dynamically allocated as of 2020-03-11
137 #mongodb = 98; #dynamically allocated as of 2021-09-03
138 #openldap = 99; # dynamically allocated as of PR#94610
139 #users = 100; # unused
140 # cgminer = 101; #dynamically allocated as of 2021-09-17
142 #logcheck = 103; #dynamically allocated as of 2021-09-17
143 #nix-ssh = 104; #dynamically allocated as of 2021-09-03
146 #searx = 107; # dynamically allocated as of 2020-10-27
147 #kippo = 108; # removed 2021-10-07, the kippo package was removed in 1b213f321cdbfcf868b96fd9959c24207ce1b66a during 2021-04
149 systemd-journal-gateway = 110;
150 #notbit = 111; # unused
152 #ngircd = 112; #dynamically allocated as of 2021-09-03
153 #btsync = 113; # unused
154 #minecraft = 114; #dynamically allocated as of 2021-09-03
156 # rippled = 116; #dynamically allocated as of 2021-09-18
170 #docker = 131; # unused
172 #dhcpd = 133; # dynamically allocated as of 2021-09-03
175 #neo4j = 136;# dynamically allocated as of 2021-09-03
178 #radvd = 139;# dynamically allocated as of 2021-09-03
179 #zookeeper = 140;# dynamically allocated as of 2021-09-03
180 #dnsmasq = 141;# dynamically allocated as of 2021-09-03
181 #uhub = 142; # unused
183 # mxisd = 144; # removed 2024-07-10
184 #consul = 145;# dynamically allocated as of 2021-09-03
185 #mailpile = 146; # removed 2022-01-12
187 #seeks = 148; # removed 2020-06-21
190 systemd-coredump = 151;
191 systemd-network = 152;
192 systemd-resolve = 153;
193 systemd-timesync = 154;
195 #etcd = 156;# dynamically allocated as of 2021-09-03
202 #chronos = 164; # removed 2020-08-15
204 # tox-bootstrapd = 166; removed 2021-09-15
207 #apache-kafka = 169;# dynamically allocated as of 2021-09-03
208 #panamax = 170; # unused
210 #fleet = 173; # unused
211 #input = 174; # unused
213 #tss = 176; # dynamically allocated as of 2021-09-17
214 #memcached = 177; removed 2018-01-03
215 #ntp = 179; # dynamically allocated as of 2021-09-17
217 #redis = 181; removed 2018-01-03
218 #unifi = 183; dynamically allocated as of 2021-09-17
220 #zope2 = 185; # dynamically allocated as of 2021-09-18
221 #ripple-data-api = 186; dynamically allocated as of 2021-09-17
223 #rdnssd = 188; #dynamically allocated as of 2021-09-18
232 # ripple-rest = 198; # unused, removed 2017-08-12
233 # nix-serve = 199; # unused, removed 2020-12-12
234 #tvheadend = 200; # dynamically allocated as of 2021-09-18
236 # gitit = 202; # unused, module was removed 2023-04-03
239 # riak = 205; # unused, remove 2022-07-22
240 #shout = 206; # dynamically allocated as of 2021-09-18
244 #kibana = 211;# dynamically allocated as of 2021-09-03
246 calibre-server = 213;
247 #heapster = 214; #dynamically allocated as of 2021-09-17
249 # pumpio = 216; # unused, removed 2018-02-24
251 # mathics = 218; # unused, removed 2020-08-15
256 # gale = 223; removed 2021-06-10
257 matrix-synapse = 224;
259 # rmilter = 226; # unused, removed 2019-08-22
261 # gammu-smsd = 228; #dynamically allocated as of 2021-09-17
265 # nntp-proxy = 232; #dynamically allocated as of 2021-09-17
267 #radicale = 234;# dynamically allocated as of 2021-09-03
268 hydra-queue-runner = 235;
273 # factorio = 241; # DynamicUser = true
274 # emby = 242; # unusued, removed 2019-05-01
275 #graylog = 243;# dynamically allocated as of 2021-09-03
279 #toxvpn = 247; # dynamically allocated as of 2021-09-18
280 # squeezelite = 248; # DynamicUser = true
282 #smokeping = 250;# dynamically allocated as of 2021-09-03
291 # hound = 259; # unused, removed 2023-11-21
294 # stanchion = 262; # unused, removed 2020-10-14
295 # riak-cs = 263; # unused, removed 2020-10-14
299 # couchpotato = 267; # unused, removed 2022-01-01
301 #pdns-recursor = 269; # dynamically allocated as of 2020-20-18
302 #kresd = 270; # switched to "knot-resolver" with dynamic ID
304 #geoip = 272; # new module uses DynamicUser
314 # pykms = 282; # DynamicUser = true
316 # restya-board = 284; # removed 2024-01-22
319 #monero = 287; # dynamically allocated as of 2021-05-08
325 # meguca = 293; # removed 2020-08-21
330 #hydron = 298; # removed 2024-08-03
334 # kvm = 302; # unused
335 # render = 303; # unused
336 # zeronet = 304; # removed 2019-01-03
341 # solr = 309; removed 2023-03-16
348 #mailman = 316; # removed 2019-08-30
350 # shadow = 318; # unused
356 rstudio-server = 324;
358 automatic-timezoned = 326;
360 # When adding a uid, make sure it doesn't match an existing gid. And don't use uids above 399!
362 nixbld = 30000; # start of range of uids
371 messagebus = 4; # D-Bus
374 #vsftpd = 7; # dynamically allocated as of 2021-09-14
376 # bitlbee = 9; # removed 2021-10-05 #139765
377 #avahi = 10; # removed 2019-05-22
378 #nagios = 11; # unused
389 pulseaudio = 22; # must match `pulseaudio' UID
395 #polkituser = 28; # currently unused, polkitd doesn't need a group
397 # ddclient = 30; # converted to DynamicUser = true
403 #foldingathome = 37; # unused
404 #sabnzd = 38; # unused
405 #kdm = 39; # unused, even before 17.03
406 #ghostone = 40; # dropped in 18.03
411 #rtkit = 45; # unused
414 # prayer = 49; # dropped in 23.11
417 #fprot = 52; # unused
427 systemd-journal = 62;
434 #statsd = 69; # removed 2018-11-14
439 smbguest = 74; # unused
447 #almir = 82; # removed 2018-03-25, the almir package was removed in 30291227f2411abaca097773eedb49b8f259e297 during 2017-08
458 #tcpcryptd = 93; # unused
461 #haproxy = 97; # dynamically allocated as of 2020-03-11
462 #mongodb = 98; # unused
463 #openldap = 99; # dynamically allocated as of PR#94610
465 #logcheck = 103; # unused
466 #nix-ssh = 104; # unused
469 #searx = 107; # dynamically allocated as of 2020-10-27
470 #kippo = 108; # removed 2021-10-07, the kippo package was removed in 1b213f321cdbfcf868b96fd9959c24207ce1b66a during 2021-04
472 systemd-journal-gateway = 110;
473 #notbit = 111; # unused
475 #ngircd = 112; # unused
476 #btsync = 113; # unused
477 #minecraft = 114; # unused
479 #ripped = 116; # unused
495 #dhcpcd = 133; # unused
498 #neo4j = 136; # unused
501 #radvd = 139; # unused
502 #zookeeper = 140; # unused
503 #dnsmasq = 141; # unused
505 #yandexdisk = 143; # unused
506 # mxisd = 144; # removed 2024-07-10
507 #consul = 145; # unused
508 #mailpile = 146; # removed 2022-01-12
510 #seeks = 148; # removed 2020-06-21
513 systemd-network = 152;
514 systemd-resolve = 153;
515 systemd-timesync = 154;
517 #etcd = 156; # unused
523 #peerflix = 163; # unused
524 #chronos = 164; # unused
527 #panamax = 170; # unused
529 #fleet = 173; # unused
532 #tss = 176; #dynamically allocateda as of 2021-09-20
533 #memcached = 177; # unused, removed 2018-01-03
536 #redis = 181; # unused, removed 2018-01-03
537 #unifi = 183; # unused
538 #uptimed = 184; # unused
539 #zope2 = 185; # unused
540 #ripple-data-api = 186; #unused
542 #rdnssd = 188; # unused
549 #grafana = 196; #unused
550 #skydns = 197; #unused
551 # ripple-rest = 198; # unused, removed 2017-08-12
552 #nix-serve = 199; #unused
553 #tvheadend = 200; #unused
558 # riak = 205;#unused, removed 2022-06-22
559 #shout = 206; #unused
565 calibre-server = 213;
567 # pumpio = 216; # unused, removed 2018-02-24
574 # gale = 223; removed 2021-06-10
575 matrix-synapse = 224;
577 # rmilter = 226; # unused, removed 2019-08-22
581 #radicale = 234;# dynamically allocated as of 2021-09-03
585 # factorio = 241; # unused
586 # emby = 242; # unused, removed 2019-05-01
590 #toxvpn = 247; # unused
591 #squeezelite = 248; #unused
593 #smokeping = 250;# dynamically allocated as of 2021-09-03
599 #telegraf = 256; # unused
602 # hound = 259; # unused, removed 2023-11-21
605 # stanchion = 262; # unused, removed 2020-10-14
606 # riak-cs = 263; # unused, removed 2020-10-14
610 # couchpotato = 267; # unused, removed 2022-01-01
612 #kresd = 270; # switched to "knot-resolver" with dynamic ID
614 #geoip = 272; # unused
624 # pykms = 282; # DynamicUser = true
626 # restya-board = 284; # removed 2024-01-22
629 # monero = 287; # dynamically allocated as of 2021-05-08
635 # meguca = 293; # removed 2020-08-21
640 #hydron = 298; # removed 2024-08-03
644 kvm = 302; # default udev rules from systemd requires these
645 render = 303; # default udev rules from systemd requires these
646 sgx = 304; # default udev rules from systemd requires these
651 # solr = 309; removed 2023-03-16
658 #mailman = 316; # removed 2019-08-30
666 rstudio-server = 324;
668 automatic-timezoned = 326;
670 # When adding a gid, make sure it doesn't match an existing
671 # uid. Users and groups with the same name should have equal
672 # uids and gids. Also, don't use gids above 399!
674 # For exceptional cases where you really need a gid above 399, leave a
675 # comment stating why.
677 # Also, avoid the following GID ranges:
679 # 1000 - 29999: user accounts (see ../config/update-users-groups.pl)
680 # 30000 - 31000: nixbld users (the upper limit is arbitrarily chosen)
681 # 61184 - 65519: systemd DynamicUser (see systemd.exec(5))
682 # 65535: the error return sentinel value when uid_t was 16 bits
684 # 100000 - 6653600: subgid allocated for user namespaces
685 # (see ../config/update-users-groups.pl)
686 # 4294967294: unauthenticated user in some NFS implementations
687 # 4294967295: error return sentinel value
690 # https://www.debian.org/doc/debian-policy/ch-opersys.html#uid-and-gid-classes
692 onepassword = 31001; # 1Password requires that its GID be larger than 1000
693 onepassword-cli = 31002; # 1Password requires that its GID be larger than 1000