#  This file is part of systemd.
#
#  systemd is free software; you can redistribute it and/or modify it
#  under the terms of the GNU Lesser General Public License as published by
#  the Free Software Foundation; either version 2.1 of the License, or
#  (at your option) any later version.

# The superuser
g root    0       -            -
u root    0:0     "Super User" /root

# The nobody user/group for NFS file systems
g {{NOBODY_GROUP_NAME}} 65534       -            -
u {{NOBODY_USER_NAME }} 65534:65534 "Kernel Overflow User"     -

# Administrator group: can *see* more than normal users
g adm     {{ADM_GID    }}     -            -

# Administrator group: can *do* more than normal users
g wheel   {{WHEEL_GID  }}     -            -

# Access to shared database of users on the system
g utmp    {{UTMP_GID   }}     -            -

# Physical and virtual hardware access groups
g audio   {{AUDIO_GID  }}     -            -
g cdrom   {{CDROM_GID  }}     -            -
g dialout {{DIALOUT_GID}}     -            -
g disk    {{DISK_GID   }}     -            -
g input   {{INPUT_GID  }}     -            -
g kmem    {{KMEM_GID   }}     -            -
g kvm     {{KVM_GID    }}     -            -
g lp      {{LP_GID     }}     -            -
g render  {{RENDER_GID }}     -            -
g sgx     {{SGX_GID    }}     -            -
g tape    {{TAPE_GID   }}     -            -
g tty     {{TTY_GID    }}     -            -
g video   {{VIDEO_GID  }}     -            -

# Default group for normal users
g users   {{USERS_GID  }}     -            -
