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;
45 messagebus = 4; # D-Bus
48 #vsftpd = 7; # dynamically allocated ass of 2021-09-14
50 # bitlbee = 9; # removed 2021-10-05 #139765
51 #avahi = 10; # removed 2019-05-22
55 #postdrop = 14; # unused
59 #floppy = 18; # unused
63 pulseaudio = 22; # must match `pulseaudio' GID
68 #dialout = 27; # unused
71 # ddclient = 30; # converted to DynamicUser = true
79 #kdm = 39; # dropped in 17.03
80 #ghostone = 40; # dropped in 18.03
82 #fourstore = 42; # dropped in 20.03
83 #fourstorehttp = 43; # dropped in 20.03
84 #virtuoso = 44; dropped module
85 #rtkit = 45; # dynamically allocated 2021-09-03
88 # prayer = 49; # dropped in 23.11
92 # bind = 53; #dynamically allocated as of 2021-09-03
96 #networkmanager = 57; # unused
101 #systemd-journal = 62; # unused
106 #libvirtd = 67; # unused
108 #statsd = 69; # removed 2018-11-14
111 #vboxusers = 72; # unused
112 #vboxsf = 73; # unused
113 smbguest = 74; # unused
121 #almir = 82; # removed 2018-03-25, the almir package was removed in 30291227f2411abaca097773eedb49b8f259e297 during 2017-08
132 tcpcryptd = 93; # tcpcryptd uses a hard-coded uid. We patch it in Nixpkgs to match this choice.
135 #haproxy = 97; # dynamically allocated as of 2020-03-11
136 #mongodb = 98; #dynamically allocated as of 2021-09-03
137 #openldap = 99; # dynamically allocated as of PR#94610
138 #users = 100; # unused
139 # cgminer = 101; #dynamically allocated as of 2021-09-17
141 #logcheck = 103; #dynamically allocated as of 2021-09-17
142 #nix-ssh = 104; #dynamically allocated as of 2021-09-03
145 #searx = 107; # dynamically allocated as of 2020-10-27
146 #kippo = 108; # removed 2021-10-07, the kippo package was removed in 1b213f321cdbfcf868b96fd9959c24207ce1b66a during 2021-04
148 systemd-journal-gateway = 110;
149 #notbit = 111; # unused
151 #ngircd = 112; #dynamically allocated as of 2021-09-03
152 #btsync = 113; # unused
153 #minecraft = 114; #dynamically allocated as of 2021-09-03
155 # rippled = 116; #dynamically allocated as of 2021-09-18
169 #docker = 131; # unused
171 #dhcpd = 133; # dynamically allocated as of 2021-09-03
174 #neo4j = 136;# dynamically allocated as of 2021-09-03
177 #radvd = 139;# dynamically allocated as of 2021-09-03
178 #zookeeper = 140;# dynamically allocated as of 2021-09-03
179 #dnsmasq = 141;# dynamically allocated as of 2021-09-03
180 #uhub = 142; # unused
182 # mxisd = 144; # removed 2024-07-10
183 #consul = 145;# dynamically allocated as of 2021-09-03
184 #mailpile = 146; # removed 2022-01-12
186 #seeks = 148; # removed 2020-06-21
189 systemd-coredump = 151;
190 systemd-network = 152;
191 systemd-resolve = 153;
192 systemd-timesync = 154;
194 #etcd = 156;# dynamically allocated as of 2021-09-03
201 #chronos = 164; # removed 2020-08-15
203 # tox-bootstrapd = 166; removed 2021-09-15
206 #apache-kafka = 169;# dynamically allocated as of 2021-09-03
207 #panamax = 170; # unused
209 #fleet = 173; # unused
210 #input = 174; # unused
212 #tss = 176; # dynamically allocated as of 2021-09-17
213 #memcached = 177; removed 2018-01-03
214 #ntp = 179; # dynamically allocated as of 2021-09-17
216 #redis = 181; removed 2018-01-03
217 #unifi = 183; dynamically allocated as of 2021-09-17
219 #zope2 = 185; # dynamically allocated as of 2021-09-18
220 #ripple-data-api = 186; dynamically allocated as of 2021-09-17
222 #rdnssd = 188; #dynamically allocated as of 2021-09-18
231 # ripple-rest = 198; # unused, removed 2017-08-12
232 # nix-serve = 199; # unused, removed 2020-12-12
233 #tvheadend = 200; # dynamically allocated as of 2021-09-18
235 # gitit = 202; # unused, module was removed 2023-04-03
238 # riak = 205; # unused, remove 2022-07-22
239 #shout = 206; # dynamically allocated as of 2021-09-18
243 #kibana = 211;# dynamically allocated as of 2021-09-03
245 calibre-server = 213;
246 #heapster = 214; #dynamically allocated as of 2021-09-17
248 # pumpio = 216; # unused, removed 2018-02-24
250 # mathics = 218; # unused, removed 2020-08-15
255 # gale = 223; removed 2021-06-10
256 matrix-synapse = 224;
258 # rmilter = 226; # unused, removed 2019-08-22
260 # gammu-smsd = 228; #dynamically allocated as of 2021-09-17
264 # nntp-proxy = 232; #dynamically allocated as of 2021-09-17
266 #radicale = 234;# dynamically allocated as of 2021-09-03
267 hydra-queue-runner = 235;
272 # factorio = 241; # DynamicUser = true
273 # emby = 242; # unusued, removed 2019-05-01
274 #graylog = 243;# dynamically allocated as of 2021-09-03
278 #toxvpn = 247; # dynamically allocated as of 2021-09-18
279 # squeezelite = 248; # DynamicUser = true
281 #smokeping = 250;# dynamically allocated as of 2021-09-03
290 # hound = 259; # unused, removed 2023-11-21
293 # stanchion = 262; # unused, removed 2020-10-14
294 # riak-cs = 263; # unused, removed 2020-10-14
298 # couchpotato = 267; # unused, removed 2022-01-01
299 # gogs = 268; # unused, removed in 2024-10-12
300 #pdns-recursor = 269; # dynamically allocated as of 2020-20-18
301 #kresd = 270; # switched to "knot-resolver" with dynamic ID
303 #geoip = 272; # new module uses DynamicUser
313 # pykms = 282; # DynamicUser = true
315 # restya-board = 284; # removed 2024-01-22
318 #monero = 287; # dynamically allocated as of 2021-05-08
324 # meguca = 293; # removed 2020-08-21
329 #hydron = 298; # removed 2024-08-03
333 # kvm = 302; # unused
334 # render = 303; # unused
335 # zeronet = 304; # removed 2019-01-03
340 # solr = 309; removed 2023-03-16
347 #mailman = 316; # removed 2019-08-30
349 # shadow = 318; # unused
355 rstudio-server = 324;
357 automatic-timezoned = 326;
359 # When adding a uid, make sure it doesn't match an existing gid. And don't use uids above 399!
361 nixbld = 30000; # start of range of uids
370 messagebus = 4; # D-Bus
373 #vsftpd = 7; # dynamically allocated as of 2021-09-14
375 # bitlbee = 9; # removed 2021-10-05 #139765
376 #avahi = 10; # removed 2019-05-22
377 #nagios = 11; # unused
388 pulseaudio = 22; # must match `pulseaudio' UID
394 #polkituser = 28; # currently unused, polkitd doesn't need a group
396 # ddclient = 30; # converted to DynamicUser = true
402 #foldingathome = 37; # unused
403 #sabnzd = 38; # unused
404 #kdm = 39; # unused, even before 17.03
405 #ghostone = 40; # dropped in 18.03
410 #rtkit = 45; # unused
413 # prayer = 49; # dropped in 23.11
416 #fprot = 52; # unused
426 systemd-journal = 62;
433 #statsd = 69; # removed 2018-11-14
438 smbguest = 74; # unused
446 #almir = 82; # removed 2018-03-25, the almir package was removed in 30291227f2411abaca097773eedb49b8f259e297 during 2017-08
457 #tcpcryptd = 93; # unused
460 #haproxy = 97; # dynamically allocated as of 2020-03-11
461 #mongodb = 98; # unused
462 #openldap = 99; # dynamically allocated as of PR#94610
464 #logcheck = 103; # unused
465 #nix-ssh = 104; # unused
468 #searx = 107; # dynamically allocated as of 2020-10-27
469 #kippo = 108; # removed 2021-10-07, the kippo package was removed in 1b213f321cdbfcf868b96fd9959c24207ce1b66a during 2021-04
471 systemd-journal-gateway = 110;
472 #notbit = 111; # unused
474 #ngircd = 112; # unused
475 #btsync = 113; # unused
476 #minecraft = 114; # unused
478 #ripped = 116; # unused
494 #dhcpcd = 133; # unused
497 #neo4j = 136; # unused
500 #radvd = 139; # unused
501 #zookeeper = 140; # unused
502 #dnsmasq = 141; # unused
504 #yandexdisk = 143; # unused
505 # mxisd = 144; # removed 2024-07-10
506 #consul = 145; # unused
507 #mailpile = 146; # removed 2022-01-12
509 #seeks = 148; # removed 2020-06-21
512 systemd-network = 152;
513 systemd-resolve = 153;
514 systemd-timesync = 154;
516 #etcd = 156; # unused
522 #peerflix = 163; # unused
523 #chronos = 164; # unused
526 #panamax = 170; # unused
528 #fleet = 173; # unused
531 #tss = 176; #dynamically allocateda as of 2021-09-20
532 #memcached = 177; # unused, removed 2018-01-03
535 #redis = 181; # unused, removed 2018-01-03
536 #unifi = 183; # unused
537 #uptimed = 184; # unused
538 #zope2 = 185; # unused
539 #ripple-data-api = 186; #unused
541 #rdnssd = 188; # unused
548 #grafana = 196; #unused
549 #skydns = 197; #unused
550 # ripple-rest = 198; # unused, removed 2017-08-12
551 #nix-serve = 199; #unused
552 #tvheadend = 200; #unused
557 # riak = 205;#unused, removed 2022-06-22
558 #shout = 206; #unused
564 calibre-server = 213;
566 # pumpio = 216; # unused, removed 2018-02-24
573 # gale = 223; removed 2021-06-10
574 matrix-synapse = 224;
576 # rmilter = 226; # unused, removed 2019-08-22
580 #radicale = 234;# dynamically allocated as of 2021-09-03
584 # factorio = 241; # unused
585 # emby = 242; # unused, removed 2019-05-01
589 #toxvpn = 247; # unused
590 #squeezelite = 248; #unused
592 #smokeping = 250;# dynamically allocated as of 2021-09-03
598 #telegraf = 256; # unused
601 # hound = 259; # unused, removed 2023-11-21
604 # stanchion = 262; # unused, removed 2020-10-14
605 # riak-cs = 263; # unused, removed 2020-10-14
609 # couchpotato = 267; # unused, removed 2022-01-01
610 # gogs = 268; # unused, removed in 2024-10-12
611 #kresd = 270; # switched to "knot-resolver" with dynamic ID
613 #geoip = 272; # unused
623 # pykms = 282; # DynamicUser = true
625 # restya-board = 284; # removed 2024-01-22
628 # monero = 287; # dynamically allocated as of 2021-05-08
634 # meguca = 293; # removed 2020-08-21
639 #hydron = 298; # removed 2024-08-03
643 kvm = 302; # default udev rules from systemd requires these
644 render = 303; # default udev rules from systemd requires these
645 sgx = 304; # default udev rules from systemd requires these
650 # solr = 309; removed 2023-03-16
657 #mailman = 316; # removed 2019-08-30
665 rstudio-server = 324;
667 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