pax_global_header 0000666 0000000 0000000 00000000064 13704351045 0014514 g ustar 00root root 0000000 0000000 52 comment=a59433f191e6f00290d2763810b28b4ae274428f
opensysusers-0.6/ 0000775 0000000 0000000 00000000000 13704351045 0014143 5 ustar 00root root 0000000 0000000 opensysusers-0.6/.gitignore 0000664 0000000 0000000 00000000123 13704351045 0016127 0 ustar 00root root 0000000 0000000 man/*.5
man/*.8
man/*.html
bin/sysusers
bin/opensysusers
openrc/opensysusers.initd
opensysusers-0.6/LICENSE 0000664 0000000 0000000 00000002477 13704351045 0015162 0 ustar 00root root 0000000 0000000 Copyright (c) 2017 - 2018, Chris Cromer
Copyright (c) 2012, Gentoo Foundation
All rights reserved.
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are met:
1. Redistributions of source code must retain the above copyright notice,
this list of conditions and the following disclaimer.
2. Redistributions in binary form must reproduce the above copyright
notice, this list of conditions and the following disclaimer in the
documentation and/or other materials provided with the distribution.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
POSSIBILITY OF SUCH DAMAGE.
opensysusers-0.6/Makefile 0000664 0000000 0000000 00000005723 13704351045 0015612 0 ustar 00root root 0000000 0000000 SYSCONFDIR = /etc
PREFIX ?= /usr/local
BINDIR = $(PREFIX)/bin
LIBDIR = $(PREFIX)/lib
MANDIR = $(PREFIX)/share/man
DOCDIR = $(PREFIX)/share/doc/opensysusers
TESTDIR = /run/sysusers.d
BINMODE = 0755
MODE = 0644
INSTALL = install
MAKE = make
HAVESYSTEMD = yes
HAVEOPENRC = no
HAVEMAN = yes
INITD = opensysusers.initd
BASIC = basic.conf
ifeq ($(HAVESYSTEMD),yes)
BINNAME = sysusers
else
BINNAME = opensysusers
endif
TESTFILES = $(wildcard test/*.conf)
all: sysusers
ifeq ($(HAVEOPENRC),yes)
all: $(INITD)
endif
ifeq ($(HAVEMAN),yes)
all:
+$(MAKE) INSTALL=$(INSTALL) DOCMODE=$(MODE) MANDIR=$(MANDIR) DOCDIR=$(DOCDIR) DESTDIR=$(DESTDIR) -C man
endif
EDIT = sed "s|@BINNAME[@]|$(BINNAME)|"
RM = rm -f
CHMOD = chmod $(BINMODE)
opensysusers: sysusers
$(INSTALL) $< $@
$(INITD): $(INITD).in
@echo "GEN $@"
@$(RM) "$@"
@$(EDIT) $< >"$@"
@$(CHMOD) "$@"
clean-openrc:
$(RM) $(INITD)
clean-man:
+$(MAKE) INSTALL=$(INSTALL) DOCMODE=$(MODE) MANDIR=$(MANDIR) DOCDIR=$(DOCDIR) DESTDIR=$(DESTDIR) -C man clean
clean: clean-bin
ifeq ($(HAVEOPENRC),yes)
clean: clean-openrc
endif
ifeq ($(HAVEMAN),yes)
clean: clean-man
endif
install-shared:
$(INSTALL) -Dm $(MODE) $(BASIC) $(DESTDIR)$(LIBDIR)/sysusers.d/$(BASIC)
install-default-bin: sysusers
$(INSTALL) -Dm $(BINMODE) sysusers $(DESTDIR)$(BINDIR)/$(BINNAME)
install-custom-bin: sysusers
$(INSTALL) -Dm $(BINMODE) sysusers $(DESTDIR)$(BINDIR)/$(BINNAME)
install-openrc: $(INITD)
$(INSTALL) -Dm $(BINMODE) $(INITD) $(DESTDIR)$(SYSCONFDIR)/init.d/opensysusers
install-man:
+$(MAKE) INSTALL=$(INSTALL) DOCMODE=$(MODE) MANDIR=$(MANDIR) DOCDIR=$(DOCDIR) DESTDIR=$(DESTDIR) -C man install
install-tests:
$(INSTALL) -Dm $(MODE) $(TESTFILES) $(DESTDIR)$(TESTDIR)/
uninstall-shared:
$(RM) $(DESTDIR)$(LIBDIR)/sysusers.d/$(BASIC)
uninstall-default-bin:
$(RM) $(DESTDIR)$(BINDIR)/$(BINNAME)
uninstall-custom-bin:
$(RM) $(DESTDIR)$(BINDIR)/$(BINNAME)
uninstall-openrc:
$(RM) $(DESTDIR)$(SYSCONFDIR)/init.d/opensysusers
uninstall-man:
+$(MAKE) INSTALL=$(INSTALL) DOCMODE=$(MODE) MANDIR=$(MANDIR) DOCDIR=$(DOCDIR) DESTDIR=$(DESTDIR) -C man uninstall
ifeq ($(HAVESYSTEMD),yes)
install: install-shared
uninstall: uninstall-shared
ifeq ($(HAVEMAN),yes)
install: install-man
uninstall: uninstall-man
endif
ifeq ($(BINNAME),sysusers)
install: install-default-bin
uninstall: uninstall-default-bin
else
install: install-custom-bin
uninstall: uninstall-custom-bin
endif
ifeq ($(HAVEOPENRC),yes)
install: install-openrc
uninstall: uninstall-openrc
endif
else
install: install-shared install-default-bin
uninstall: uninstall-shared uninstall-default-bin
ifeq ($(HAVEMAN),yes)
install: install-man
uninstall: uninstall-man
endif
ifeq ($(HAVEOPENRC),yes)
install: install-openrc
uninstall: uninstall-openrc
endif
endif
.PHONY: all install install-custom-bin install-default-bin install-man install-openrc install-shared install-tests uninstall uninstall-custom-bin uninstall-default-bin uninstall-man uninstall-openrc uninstall-shared clean clean-bin clean-man clean-openrc
opensysusers-0.6/README.md 0000664 0000000 0000000 00000001214 13704351045 0015420 0 ustar 00root root 0000000 0000000 This is a utility written to process sysusers.d files so that they can be handled on systems with or without systemd installed.
For more information on the files this utility can process, see the
sysusers.d man page [1].
For more information on the systemd-sysuser command, see the
systemd-sysuers man page [2].
If built with the make flag SYSTEMDCOMPAT=FALSE, it will only install the basic script to process sysusers.d conf files. Otherwise it installs a script that imitates systemd-sysusers command.
[1] https://www.freedesktop.org/software/systemd/man/sysusers.d.html
[2] https://www.freedesktop.org/software/systemd/man/systemd-sysusers.html opensysusers-0.6/basic.conf 0000664 0000000 0000000 00000000563 13704351045 0016077 0 ustar 00root root 0000000 0000000 # The superuser
u root 0 "Super User" /root
# Administrator group: can *do* more than normal users
g wheel - - -
# Access to certain kernel and userspace facilities
g tty 5 - -
g kmem - - -
g utmp - - -
# Hardware access groups
g audio - - -
g optical - - -
g uucp - - -
g disk - - -
g input - - -
g kvm - - -
g lp - - -
g render - - -
g storage - - -
g video - - -
opensysusers-0.6/man/ 0000775 0000000 0000000 00000000000 13704351045 0014716 5 ustar 00root root 0000000 0000000 opensysusers-0.6/man/Makefile 0000664 0000000 0000000 00000002450 13704351045 0016357 0 ustar 00root root 0000000 0000000 manfiles5 = sysusers.d.5
manfiles8 = systemd-sysusers.8 systemd-sysusers.service.8
docfiles = sysusers.d.html systemd-sysusers.html
xsltargs = --nonet \
--xinclude \
--maxdepth 9000 \
--stringparam man.output.quietly 1 \
--stringparam funcsysnopsis.style ansi \
--stringparam man.authors.section.enabled 0 \
--stringparam man.copyright.section.enabled 0 \
--stringparam systemd.version 238.51
all:
xsltproc $(xsltargs) custom-man.xsl systemd-sysusers.xml
xsltproc $(xsltargs) custom-html.xsl systemd-sysusers.xml > systemd-sysusers.html
xsltproc $(xsltargs) custom-man.xsl sysusers.d.xml
xsltproc $(xsltargs) custom-html.xsl sysusers.d.xml > sysusers.d.html
clean:
rm $(manfiles5)
rm $(manfiles8)
rm $(docfiles)
install:
$(INSTALL) -d $(DESTDIR)$(MANDIR)/man5 $(DESTDIR)$(MANDIR)/man8
$(INSTALL) -m $(DOCMODE) $(manfiles5) $(DESTDIR)$(MANDIR)/man5
$(INSTALL) -m $(DOCMODE) $(manfiles8) $(DESTDIR)$(MANDIR)/man8
$(INSTALL) -d $(DESTDIR)$(DOCDIR)
$(INSTALL) -m $(DOCMODE) $(docfiles) $(DESTDIR)$(DOCDIR)
uninstall:
for man in ${manfiles5}; do rm -f $(DESTDIR)$(MANDIR)/man5/$$man; done
for man in ${manfiles8}; do rm -f $(DESTDIR)$(MANDIR)/man8/$$man; done
for doc in ${docfiles}; do rm -f $(DESTDIR)$(DOCDIR)/$$doc; done
rm -rf --one-file-system $(DESTDIR)$(DOCDIR)
.PHONY: all install clean
opensysusers-0.6/man/custom-html.xsl 0000664 0000000 0000000 00000027467 13704351045 0017742 0 ustar 00root root 0000000 0000000
.html#http://man7.org/linux/man-pages/man/..htmlhttp://linux.die.net/man//https://git.zx2c4.com/WireGuard/about/src/tools/.https://www.mankier.com//https://www.archlinux.org//..htmlhttps://www.freebsd.org/cgi/man.cgi?()http://dbus.freedesktop.org/doc/..html¶
index.htmlIndex ·
systemd.directives.htmlDirectives systemd ""
opensysusers-0.6/man/custom-man.xsl 0000664 0000000 0000000 00000004260 13704351045 0017533 0 ustar 00root root 0000000 0000000
.TH "" "" "" "systemd " ""
""
opensysusers-0.6/man/standard-options.xml 0000664 0000000 0000000 00000004015 13704351045 0020731 0 ustar 00root root 0000000 0000000
Print a short help text and exit.
Print a short version string and exit.Do not pipe output into a pager.Do not query the user for authentication for privileged operations.Do not print the legend, i.e. column headers and the
footer with hints.
opensysusers-0.6/man/systemd-sysusers.xml 0000664 0000000 0000000 00000014201 13704351045 0021024 0 ustar 00root root 0000000 0000000
systemd-sysuserssystemdDeveloperLennartPoetteringlennart@poettering.netsystemd-sysusers8systemd-sysuserssystemd-sysusers.serviceAllocate system users and groupssystemd-sysusersOPTIONSCONFIGFILEsystemd-sysusers.serviceDescriptionsystemd-sysusers creates system users and
groups, based on the file format and location specified in
sysusers.d5.
If invoked with no arguments, it applies all directives from all files
found in the directories specified by
sysusers.d5.
When invoked with positional arguments, if option
is specified, arguments
specified on the command line are used instead of the configuration file
PATH. Otherwise, just the configuration specified by
the command line arguments is executed. The string - may be
specified instead of a filename to instruct systemd-sysusers
to read the configuration from standard input. If only the basename of a file is
specified, all configuration directories are searched for a matching file and
the file found that has the highest priority is executed.OptionsThe following options are understood:Takes a directory path as an argument. All
paths will be prefixed with the given alternate
root path, including config search
paths. When this option is given, one ore more positional arguments
must be specified. All configuration files found in the directories listed in
sysusers.d5
will be read, and the configuration given on the command line will be
handled instead of and with the same priority as the configuration file
PATH.This option is intended to be used when package installation scripts
are running and files belonging to that package are not yet available on
disk, so their contents must be given on the command line, but the admin
configuration might already exist and should be given higher priority.
RPM installation script for radvdecho 'u radvd - "radvd daemon"' | \
systemd-sysusers --replace=/usr/lib/sysusers.d/radvd.conf -This will create the radvd user as if
/usr/lib/sysusers.d/radvd.conf was already on disk.
An admin might override the configuration specified on the command line by
placing /etc/sysusers.d/radvd.conf or even
/etc/sysusers.d/00-overrides.conf.Note that this is the expanded from, and when used in a package, this
would be written using a macro with "radvd" and a file containing the
configuration line as arguments.Treat each positional argument as a separate configuration
line instead of a file name.Exit statusOn success, 0 is returned, a non-zero failure code
otherwise.See Alsosystemd1,
sysusers.d5
opensysusers-0.6/man/sysusers.d.xml 0000664 0000000 0000000 00000025763 13704351045 0017577 0 ustar 00root root 0000000 0000000
sysusers.dsystemdDeveloperLennartPoetteringlennart@poettering.netsysusers.d5sysusers.dDeclarative allocation of system users and groups/etc/sysusers.d/*.conf/run/sysusers.d/*.conf/usr/lib/sysusers.d/*.confDescriptionsystemd-sysusers uses the files from
sysusers.d directory to create system users and groups and
to add users to groups, at package installation or boot time. This tool may be
used to allocate system users and groups only, it is not useful for creating
non-system (i.e. regular, "human") users and groups, as it accesses
/etc/passwd and /etc/group directly,
bypassing any more complex user databases, for example any database involving NIS
or LDAP.Configuration Directories and PrecedenceEach configuration file shall be named in the style of
package.conf or
package-part.conf.
The second variant should be used when it is desirable to make it
easy to override just this part of configuration.Files in /etc/sysusers.d override files
with the same name in /usr/lib/sysusers.d and
/run/sysusers.d. Files in
/run/sysusers.d override files with the same
name in /usr/lib/sysusers.d. Packages should
install their configuration files in
/usr/lib/sysusers.d. Files in
/etc/sysusers.d are reserved for the local
administrator, who may use this logic to override the
configuration files installed by vendor packages. All
configuration files are sorted by their filename in lexicographic
order, regardless of which of the directories they reside in. If
multiple files specify the same path, the entry in the file with
the lexicographically earliest name will be applied. All later
entries for the same user and group names will be logged as warnings.
If the administrator wants to disable a configuration file
supplied by the vendor, the recommended way is to place a symlink
to /dev/null in
/etc/sysusers.d/ bearing the same filename.
Configuration File FormatThe file format is one line per user or group containing name, ID, GECOS
field description, home directory, and login shell:#Type Name ID GECOS Home directory Shell
u httpd 404 "HTTP User"
u authd /usr/bin/authd "Authorization user"
u postgres - "Postgresql Database" /var/lib/pgsql /usr/libexec/postgresdb
g input - -
m authd input
u root 0 "Superuser" /root /bin/zshEmpty lines and lines beginning with the # character are ignored, and may be used for
commenting.TypeThe type consists of a single letter. The following line
types are understood:uCreate a system user and group of the specified name should
they not exist yet. The user's primary group will be set to the group
bearing the same name. The account will be created disabled, so that logins
are not allowed.gCreate a system group of the specified name
should it not exist yet. Note that u
implicitly create a matching group. The group will be
created with no password set.mAdd a user to a group. If the user or group
do not exist yet, they will be implicitly
created.rAdd a range of numeric UIDs/GIDs to the pool
to allocate new UIDs and GIDs from. If no line of this type
is specified, the range of UIDs/GIDs is set to some
compiled-in default. Note that both UIDs and GIDs are
allocated from the same pool, in order to ensure that users
and groups of the same name are likely to carry the same
numeric UID and GID.NameThe name field specifies the user or group name. The specified name must consist only of the characters a-z,
A-Z, 0-9, _ and -, except for the first character which must be one of a-z,
A-Z or _ (i.e. numbers and - are not permitted as first character). The
user/group name must have at least one character, and at most 31.It is strongly recommended to pick user and group names that are unlikely to clash with normal users
created by the administrator. A good scheme to guarantee this is by prefixing all system and group names with the
underscore, and avoiding too generic names.For m lines, this field should contain
the user name to add to a group.For lines of type r, this field should
be set to -.IDFor u and g, the
numeric 32-bit UID or GID of the user/group. Do not use IDs 65535
or 4294967295, as they have special placeholder meanings.
Specify - for automatic UID/GID allocation
for the user or group (this is strongly recommended unless it is strictly
necessary to use a specific UID or GID). Alternatively, specify an absolute path
in the file system. In this case, the UID/GID is read from the
path's owner/group. This is useful to create users whose UID/GID
match the owners of pre-existing files (such as SUID or SGID
binaries).
The syntax uid:gid is also supported to
allow creating user and group pairs with different numeric UID and GID values. The group with the indicated GID must get created explicitly before or it must already exist. Specifying - for the UID in this syntax
is also supported.
For m lines, this field should contain
the group name to add to a user to.For lines of type r, this field should
be set to a UID/GID range in the format
FROM-TO, where both values are formatted as
decimal ASCII numbers. Alternatively, a single UID/GID may be
specified formatted as decimal ASCII numbers.GECOSA short, descriptive string for users to be created, enclosed in
quotation marks. Note that this field may not contain colons.Only applies to lines of type u and should otherwise
be left unset (or -).Home DirectoryThe home directory for a new system user. If omitted, defaults to the
root directory.Only applies to lines of type u and should otherwise
be left unset (or -). It is recommended to omit this, unless
software strictly requires a home directory to be set.ShellThe login shell of the user. If not specified, this will be set to
/sbin/nologin, except if the UID of the user is 0, in
which case /bin/sh will be used.Only applies to lines of type u and should otherwise
be left unset (or -). It is recommended to omit this, unless
a shell different /sbin/nologin must be used.IdempotenceNote that systemd-sysusers will do nothing if the
specified users or groups already exist or the users are members of specified
groups, so normally there is no reason to override
sysusers.d vendor configuration, except to block certain
users or groups from being created.See Alsosystemd1,
systemd-sysusers8
opensysusers-0.6/openrc/ 0000775 0000000 0000000 00000000000 13704351045 0015431 5 ustar 00root root 0000000 0000000 opensysusers-0.6/openrc/opensysusers.initd.in 0000664 0000000 0000000 00000000370 13704351045 0021651 0 ustar 00root root 0000000 0000000 #!/sbin/openrc-run
# Copyright (c) 2017 - 2018 Chris Cromer
# Released under the 2-clause BSD license.
description="Set up sysusers.d entries"
depend()
{
need localmount
}
start()
{
ebegin "Setting up sysusers.d entries"
@BINNAME@
eend $?
}
opensysusers-0.6/sysusers 0000775 0000000 0000000 00000011063 13704351045 0015772 0 ustar 00root root 0000000 0000000 #!/bin/sh
# Copyright (c) 2018 Chris Cromer
# Released under the 2-clause BSD license.
#
# This is an implementation of the systemd-sysusers command
sysusersver=0.6
warninvalid() {
printf "sysusers: %s on line %d of '%s'\n" "${1:-ignoring invalid entry}" \
"${lineno}" "${file}"
: "$((error += 1))"
} >&2
add_group() {
# add_group
if [ "$2" = '-' ]; then
grep -q "^$1:" /etc/group || groupadd -r "$1"
elif ! grep -q "^$1:\|^[^:]*:[^:]*:$2:[^:]*$" /etc/group; then
groupadd -g "$2" "$1"
fi
}
add_user() {
# add_user
if ! id "$1" >/dev/null 2>&1; then
if [ "$2" = '-' ]; then
useradd -rc "$3" -g "$1" -d "$4" -s '/sbin/nologin' "$1"
else
useradd -rc "$3" -u "$2" -g "$1" -d "$4" -s '/sbin/nologin' "$1"
fi
passwd -l "$1" >/dev/null 2>&1
fi
}
update_login_defs() {
# update_login_defs
[ "$1" != '-' ] && warninvalid && return
min="${2%%-*}" max="${2#*-}"
[ "${max}" != "${max#*-}" ] && warninvalid && return
[ "${min}" -ge "${max}" ] && warninvalid "invalid range" && return
while read -r key val; do
case "${key}" in
SYS_UID_MAX) suid_max="${val}" ;;
SYS_GID_MAX) sgid_max="${val}" ;;
esac
done < "${root}/etc/login.defs"
[ "${min}" -lt "${suid_max}" ] && warninvalid "invalid range" && return
[ "${min}" -lt "${sgid_max}" ] && warninvalid "invalid range" && return
sed -e "/[GU]ID_MIN[[:space:]]\+/s/[^[:space:]]*$/${min}/" \
-e "/[GU]ID_MAX[[:space:]]\+/s/[^[:space:]]*$/${max}/" \
-i "${root}/etc/login.defs"
}
parse_file() {
while read -r conf; do
lineno=0
while read -r line; do
parse_string "${line}" "$((lineno += 1))"
done < "${conf}"
[ -n "${line}" ] && parse_string "${line}"
done
}
parse_string() {
[ -n "${1%%#*}" ] || return
eval "set -- $1"
type="$1" name="$2" id="$3" gecos="$4" home="$5"
case "${type}" in
[gu])
case "${id}" in 65535|4294967295) warninvalid; return; esac
[ "${home:--}" = '-' ] && home='/'
add_group "${name}" "${id}"
if [ "${type}" = u ]; then
add_user "${name}" "${id}" "${gecos}" "${home}"
fi
;;
m)
add_group "${name}" '-'
if id "${name}" >/dev/null 2>&1; then
usermod -a -G "${id}" "${name}"
else
useradd -r -g "${id}" -s '/sbin/nologin' "${name}"
passwd -l "${name}" >/dev/null 2>&1
fi
;;
r)
update_login_defs "${name}" "${id}"
;;
*) warninvalid; return ;;
esac
}
usage() {
printf '%s\n' \
"${0##*/}" '' \
"${0##*/} creates system users and groups, based on the file" \
'format and location specified in sysusers.d(5).' '' \
"Usage: ${0##*/} [OPTIONS...] [CONFIGFILE...]" '' \
'Options:' \
' --root=root All paths will be prefixed with the' \
' given alternate root path, including' \
' config search paths.' \
" --replace=PATH Don't run check in the package" \
' --inline Treat each positional argument as a' \
' separate configuration line instead of a' \
' file name.' \
' -h, --help Print a short help text and exit.' \
' --version Print a short version string and exit.'
exit "$1"
}
error=0 inline=0 replace='' root='' seen=''
# opensysusers is an implementation of sysusers.d spec without
# systemd command, it doesn't accept options or arguments
[ "${0##*/}" = opensysusers ] && set --
while [ "$#" -ne 0 ]; do
case "$1" in
--root=*) root="${1#--root=}" ;;
--root) root="$2"; shift ;;
--replace=*) replace="${1#--replace=}" ;;
--replace) replace="$2"; shift ;;
--inline) inline=1 ;;
--version) printf '%s\n' "${sysusersver}"; exit 0 ;;
-h|--help) usage 0 ;;
-[!-]|--?*) usage 1 ;;
--) shift; break ;;
*) break ;;
esac
shift
done
if [ "${inline}" -eq 0 ]; then
for file do
[ "${file}" = '--' ] && continue
for dir in etc run usr/lib; do
if [ -f "${root}/${dir}/sysusers.d/${file}" ]; then
sed -i -e '$a\' "${root}/${dir}/sysusers.d/${file}"
printf '%s/%s/sysusers.d/%s\n' "${root}" "${dir}" "${file}" |
parse_file
break
fi
done
done
else
for string in "$@"; do
parse_string "${string}"
done
fi
if [ "$#" -eq 0 ] || [ -n "${replace}" ]; then
set -- "${root}/etc/sysusers.d/"*.conf "${root}/run/sysusers.d/"*.conf \
"${root}/usr/lib/sysusers.d/"*.conf
for f do printf '%s %s\n' "${f##*/}" "${f%/*}"; done | sort -k1,1 |
while read -r b d; do
[ "${seen}" = "${seen#* ${b} }" ] && [ -f "${d}/${b}" ] &&
{ seen="${seen:- }${b} "; printf '%s/%s\n' "${d}" "${b}"; }
done | parse_file
fi
exit "${error}"
opensysusers-0.6/test/ 0000775 0000000 0000000 00000000000 13704351045 0015122 5 ustar 00root root 0000000 0000000 opensysusers-0.6/test/amavisd.conf 0000664 0000000 0000000 00000000041 13704351045 0017410 0 ustar 00root root 0000000 0000000 u amavis 333 - /var/spool/amavis
opensysusers-0.6/test/amule.conf 0000664 0000000 0000000 00000000062 13704351045 0017072 0 ustar 00root root 0000000 0000000 u amule - "aMule Client" /var/lib/amule
g amule -
opensysusers-0.6/test/backuppc.conf 0000664 0000000 0000000 00000000043 13704351045 0017556 0 ustar 00root root 0000000 0000000 u backuppc 126 - /var/lib/backuppc
opensysusers-0.6/test/boinc.conf 0000664 0000000 0000000 00000000061 13704351045 0017060 0 ustar 00root root 0000000 0000000 u boinc - "BOINC Daemon" /var/lib/boinc
g boinc - opensysusers-0.6/test/ceph.conf 0000664 0000000 0000000 00000000025 13704351045 0016705 0 ustar 00root root 0000000 0000000 u ceph - - /run/ceph
opensysusers-0.6/test/couchdb.conf 0000664 0000000 0000000 00000000056 13704351045 0017401 0 ustar 00root root 0000000 0000000 u couchdb - "CouchDB daemon" /var/lib/couchdb
opensysusers-0.6/test/dbus.conf 0000664 0000000 0000000 00000000012 13704351045 0016717 0 ustar 00root root 0000000 0000000 u dbus 81
opensysusers-0.6/test/deepin-daemon.conf 0000664 0000000 0000000 00000000064 13704351045 0020476 0 ustar 00root root 0000000 0000000 u deepin-daemon - "Deepin Daemon"
g deepin-daemon -
opensysusers-0.6/test/dkimproxy.conf 0000664 0000000 0000000 00000000033 13704351045 0020013 0 ustar 00root root 0000000 0000000 u dkimproxy - "DKIM Proxy"
opensysusers-0.6/test/dnscrypt-wrapper.conf 0000664 0000000 0000000 00000000123 13704351045 0021311 0 ustar 00root root 0000000 0000000 u dnscrypt-wrapper - "DnsCrypt Wrapper" /etc/dnscrypt-wrapper
g dnscrypt-wrapper -
opensysusers-0.6/test/dnsmasq.conf 0000664 0000000 0000000 00000000037 13704351045 0017437 0 ustar 00root root 0000000 0000000 u dnsmasq - "dnsmasq daemon" /
opensysusers-0.6/test/docker.conf 0000664 0000000 0000000 00000000056 13704351045 0017241 0 ustar 00root root 0000000 0000000 # create docker group (FS#38029)
g docker - -
opensysusers-0.6/test/fetchmail.conf 0000664 0000000 0000000 00000000110 13704351045 0017715 0 ustar 00root root 0000000 0000000 u fetchmail 90 "Fetchmail daemon" /var/lib/fetchmail
m fetchmail nobody
opensysusers-0.6/test/filebeat.conf 0000664 0000000 0000000 00000000102 13704351045 0017535 0 ustar 00root root 0000000 0000000 u filebeat - "Lightweight Shipper for Log Data" /var/lib/filebeat
opensysusers-0.6/test/gitlab-runner.conf 0000664 0000000 0000000 00000000102 13704351045 0020533 0 ustar 00root root 0000000 0000000 u gitlab-runner 107 "GitLab Runner" /var/lib/gitlab-runner
opensysusers-0.6/test/grafana.conf 0000664 0000000 0000000 00000000037 13704351045 0017370 0 ustar 00root root 0000000 0000000 u grafana - - /var/lib/grafana
opensysusers-0.6/test/hefur.conf 0000664 0000000 0000000 00000000034 13704351045 0017077 0 ustar 00root root 0000000 0000000 u hefur - - /var/lib/hefurd
opensysusers-0.6/test/jenkins.conf 0000664 0000000 0000000 00000000066 13704351045 0017434 0 ustar 00root root 0000000 0000000 u jenkins - "Jenkins CI" /var/lib/jenkins
g jenkins -
opensysusers-0.6/test/lldpd.conf 0000664 0000000 0000000 00000000146 13704351045 0017071 0 ustar 00root root 0000000 0000000 # https://wiki.archlinux.org/index.php/DeveloperWiki:UID_/_GID_Database
u lldpd 127 - -
m lldpd lldpd
opensysusers-0.6/test/locate.conf 0000664 0000000 0000000 00000000020 13704351045 0017230 0 ustar 00root root 0000000 0000000 g locate 21 - -
opensysusers-0.6/test/mailman.conf 0000664 0000000 0000000 00000000071 13704351045 0017405 0 ustar 00root root 0000000 0000000 u mailman 80 "GNU Mailing List Manager" /usr/lib/mailman
opensysusers-0.6/test/mariadb.conf 0000664 0000000 0000000 00000000044 13704351045 0017366 0 ustar 00root root 0000000 0000000 u mysql 89 "MariaDB" /var/lib/mysql
opensysusers-0.6/test/minidlna.conf 0000664 0000000 0000000 00000000072 13704351045 0017563 0 ustar 00root root 0000000 0000000 u minidlna - "minidlna server" /var/cache/minidlna
opensysusers-0.6/test/mldonkey.conf 0000664 0000000 0000000 00000000066 13704351045 0017615 0 ustar 00root root 0000000 0000000 u mldonkey - "Mldonkey daemon user" /var/lib/mldonkey
opensysusers-0.6/test/mosquitto.conf 0000664 0000000 0000000 00000000061 13704351045 0020032 0 ustar 00root root 0000000 0000000 u mosquitto - "Mosquitto MQTT Broker" /var/empty
opensysusers-0.6/test/nbd.conf 0000664 0000000 0000000 00000000053 13704351045 0016532 0 ustar 00root root 0000000 0000000 u nbd 44 "Network Block Device" /var/empty
opensysusers-0.6/test/openldap.conf 0000664 0000000 0000000 00000000053 13704351045 0017571 0 ustar 00root root 0000000 0000000 u ldap 439 "LDAP Server" /var/lib/openldap
opensysusers-0.6/test/pesign.conf 0000664 0000000 0000000 00000000045 13704351045 0017255 0 ustar 00root root 0000000 0000000 u pesign 312 "pesign signing daemon"
opensysusers-0.6/test/privoxy.conf 0000664 0000000 0000000 00000000027 13704351045 0017510 0 ustar 00root root 0000000 0000000 u privoxy 42 "Privoxy"
opensysusers-0.6/test/qemu.conf 0000664 0000000 0000000 00000000013 13704351045 0016732 0 ustar 00root root 0000000 0000000 g kvm 78 -
opensysusers-0.6/test/quagga.conf 0000664 0000000 0000000 00000000031 13704351045 0017230 0 ustar 00root root 0000000 0000000 u quagga - - /run/quagga
opensysusers-0.6/test/rethinkdb.conf 0000664 0000000 0000000 00000000071 13704351045 0017741 0 ustar 00root root 0000000 0000000 u rethinkdb - "Rethinkdb daemon user" /var/lib/rethinkdb
opensysusers-0.6/test/rkt.conf 0000664 0000000 0000000 00000000032 13704351045 0016564 0 ustar 00root root 0000000 0000000 g rkt - -
g rkt-admin - -
opensysusers-0.6/test/squid.conf 0000664 0000000 0000000 00000000030 13704351045 0017107 0 ustar 00root root 0000000 0000000 u proxy 15 - /var/empty
opensysusers-0.6/test/sslh.conf 0000664 0000000 0000000 00000000015 13704351045 0016736 0 ustar 00root root 0000000 0000000 u sslh - - -
opensysusers-0.6/test/synapse.conf 0000664 0000000 0000000 00000000065 13704351045 0017454 0 ustar 00root root 0000000 0000000 u synapse 198 "Matrix Synapse user" /var/lib/synapse
opensysusers-0.6/test/syncthing-relaysrv.conf 0000664 0000000 0000000 00000000107 13704351045 0021642 0 ustar 00root root 0000000 0000000 u syncthing-relaysrv - "Syncthing relay server"
g syncthing-relaysrv -
opensysusers-0.6/test/tomcat7.conf 0000664 0000000 0000000 00000000060 13704351045 0017343 0 ustar 00root root 0000000 0000000 u tomcat7 71 "Tomcat 7 user" /usr/share/tomcat7
opensysusers-0.6/test/tomcat8.conf 0000664 0000000 0000000 00000000060 13704351045 0017344 0 ustar 00root root 0000000 0000000 u tomcat8 57 "Tomcat 8 user" /usr/share/tomcat8
opensysusers-0.6/test/transmission-cli.conf 0000664 0000000 0000000 00000000112 13704351045 0021261 0 ustar 00root root 0000000 0000000 u transmission 169 "Transmission BitTorrent Daemon" /var/lib/transmission
opensysusers-0.6/test/unifi.conf 0000664 0000000 0000000 00000000020 13704351045 0017073 0 ustar 00root root 0000000 0000000 u unifi 113 - -
opensysusers-0.6/test/util-linux.conf 0000664 0000000 0000000 00000000013 13704351045 0020075 0 ustar 00root root 0000000 0000000 u uuidd 68
opensysusers-0.6/test/varnish.conf 0000664 0000000 0000000 00000000056 13704351045 0017444 0 ustar 00root root 0000000 0000000 u varnish - "Varnish Cache Proxy"
g varnish -
opensysusers-0.6/test/virtualbox-guest-utils.conf 0000664 0000000 0000000 00000000017 13704351045 0022451 0 ustar 00root root 0000000 0000000 g vboxsf 109 -
opensysusers-0.6/test/virtualbox.conf 0000664 0000000 0000000 00000000022 13704351045 0020162 0 ustar 00root root 0000000 0000000 g vboxusers 108 -
opensysusers-0.6/test/zabbix-agent.conf 0000664 0000000 0000000 00000000053 13704351045 0020342 0 ustar 00root root 0000000 0000000 u zabbix-agent 172 - /var/lib/zabbix-agent
opensysusers-0.6/test/zabbix-proxy.conf 0000664 0000000 0000000 00000000053 13704351045 0020425 0 ustar 00root root 0000000 0000000 u zabbix-proxy 171 - /var/lib/zabbix-proxy
opensysusers-0.6/test/zabbix-server.conf 0000664 0000000 0000000 00000000055 13704351045 0020554 0 ustar 00root root 0000000 0000000 u zabbix-server 170 - /var/lib/zabbix-server
opensysusers-0.6/test/znc.conf 0000664 0000000 0000000 00000000027 13704351045 0016562 0 ustar 00root root 0000000 0000000 u znc - - /var/lib/znc