summaryrefslogtreecommitdiffstats
path: root/sysusers.d/basic.conf.in (follow)
Commit message (Collapse)AuthorAgeFilesLines
* sysusers.d: lock all system users defined by usLennart Poettering2024-10-291-1/+1
|
* sysusers: also add root groupYu Watanabe2023-02-151-0/+1
| | | | | | | Follow-up for 49bb7fe5f88fc35b8529d7d8dfcd4c151a9aaf1a. Fixes an issue reported at https://github.com/systemd/systemd/pull/26270#issuecomment-1428945403.
* sysusers: insist that root group is 0Zbigniew Jędrzejewski-Szmek2023-02-011-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | In https://bugzilla.redhat.com/show_bug.cgi?id=2156900 sysusers was reporting a conflict between the following lines: u root 0:0 "Super User" /root /bin/bash u root 0 "Super User" /root The problem is that those configurations are indeed not equivalent. If group 0 exists with a different name, the first line would just create the user, but the second line would create a 'root' group with a different GID. The second behaviour seems definitely wrong. (Or at least more confusing in practice than the first one. The system is in a strange shape, but the second approach takes an additional step than is worse than doing nothing.) When this line was initially added, we didn't have the uid:gid functionality for 'u', so we didn't think about this too much. But now we do, so we should use it. $ build/systemd-sysusers --root=/var/tmp/inst7 --inline 'g foobar 0' Creating group 'foobar' with GID 0. $ build/systemd-sysusers --root=/var/tmp/inst7 --inline 'u root 0 "Zuper zuper"' src/sysusers/sysusers.c:1365: Creating group 'root' with GID 999. src/sysusers/sysusers.c:1115: Suggested user ID 0 for root already used. src/sysusers/sysusers.c:1183: Creating user 'root' (Zuper zuper) with UID 999 and GID 999. vs. $ build/systemd-sysusers --root=/var/tmp/inst7 --inline 'u root 0:0 "Zuper zuper"' src/sysusers/sysusers.c:1183: Creating user 'root' (Zuper zuper) with UID 0 and GID 0.
* Use descriptive name for nobodyZbigniew Jędrzejewski-Szmek2022-05-271-1/+1
| | | | | | | This matches the changes pushed to Fedora [1,2]. [1] https://fedoraproject.org/wiki/Changes/RenameNobodyUser [2] https://pagure.io/setup/c/f6fdb5ffc87fc8f1acc211867fef4e3f0856edfc
* sysusers: avoid creating spurious "nobody" groupRasmus Villemoes2021-11-301-2/+3
| | | | | | | | | | | | | | | | | On distros using Debian's base-passwd, the name of the group with gid 65534 is nogroup. Currently, systemd-sysusers creates a spurious "nobody" group systemd-sysusers[243]: Creating group nobody with gid 996 That's both confusing and redundant, as the nobody user still has primary group 65534 aka nogroup, and the nobody group simply goes completely unused. So explicitly specify the primary group of the nobody user, and add a line ensuring that that group exists. This is not a problem for Debian (or Ubuntu) itself, as they add their own version of basic.conf in their systemd build logic. But it appears on for example Yocto/OpenEmbedded.
* meson: allow "soft-static" allocations for uids and gids in the initrdZbigniew Jędrzejewski-Szmek2021-06-171-19/+19
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The general idea with users and groups created through sysusers is that an appropriate number is picked when the allocation is made. The number that is selected will be different on each system based on the order of creation of users, installed packages, etc. Since system users and groups are not shared between installations, this generally is not an issue. But it becomes a problem for initrd: some file systems are shared between the initrd and the host (/run and /dev are probably the only ones that matter). If the allocations are different in the host and the initrd, and files survive switch-root, they will have wrong ownership. This makes the gids build-time-configurable for all groups and users where state may survive the switch from initrd to the host. In particular, all "hardware access" groups are like this: files in /dev will be owned by them. Eventually the new udev would change ownership, but there would be a momemnt where the files were owned by the wrong group. The allocations are "soft-static" in the language of Fedora packaging guidelines: the uid/gid will be used if possible, but we'll fall back to a different one. TTY_GID is the exception, because the number is used directly. Similarly, the possibility to configure "soft-static" uids is added for daemons which may usefully run in the initramfs: systemd-network (lease information and interface state is serialized to /run), systemd-resolve (stub files and interface state), systemd-timesync (/run/systemd/timesync). Journal files are owned by the group systemd-journal, and acls are granted for wheel and adm. systemd-oom and systemd-coredump are excluded from this patch: I assume that oomd is not useful in the initrd, and coredump leaves no state (it only creates a pipe in /run?). The defaults are not changed: if nothing is configured, dynamic allocation will be used. I looked at a Debian system, and the numbers are all different than on Fedora. For Fedora, see the list of uids and gids at https://pagure.io/setup/blob/master/f/uidgid. In particular, systemd-network and systemd-resolve got soft-static numbers to make it easy to transition from a non-host-specific initrd to a host system already a few years back (https://bugzilla.redhat.com/show_bug.cgi?id=1102002). I also requested static allocations for sgx, input, render in https://pagure.io/packaging-committee/issue/1078, https://pagure.io/setup/pull-request/27.
* meson: replace some m4 templates with jinja2Zbigniew Jędrzejewski-Szmek2021-05-191-3/+3
| | | | | | | | | | | | | | | | | | | | | | | | | m4 was nice in '85, but the syntax feels a bit dated. Since we use python for meson, let's use a popular python templating engine to replace some m4 usage. A little nicety is that typos are caught: FAILED: sysusers.d/systemd-remote.conf /usr/bin/meson --internal exe --capture sysusers.d/systemd-remote.conf -- /home/zbyszek/src/systemd/tools/meson-render-jinja2.py config.h ../sysusers.d/systemd-remote.conf.j2 Traceback (most recent call last): File "/home/zbyszek/src/systemd/tools/meson-render-jinja2.py", line 28, in <module> print(render(sys.argv[2], defines)) File "/home/zbyszek/src/systemd/tools/meson-render-jinja2.py", line 24, in render return template.render(defines) File "/usr/lib/python3.9/site-packages/jinja2/environment.py", line 1090, in render self.environment.handle_exception() File "/usr/lib/python3.9/site-packages/jinja2/environment.py", line 832, in handle_exception reraise(*rewrite_traceback_stack(source=source)) File "/usr/lib/python3.9/site-packages/jinja2/_compat.py", line 28, in reraise raise value.with_traceback(tb) File "<template>", line 8, in top-level template code jinja2.exceptions.UndefinedError: 'HAVE_MICROHTTP' is undefined This checking mirrors what 349cc4a507c4d84fcadf61f42159ea6412717896 did for C defines.
* udev: add default group for sgx enclave accessZbigniew Jędrzejewski-Szmek2021-03-101-0/+1
| | | | | | | | | | | | | | | | | | | Closes #18669. This creates a "well known" for sgx_enclave ownership. By doing this here we avoid the risk that various projects making use of the device will provide similar-but-slightly-incompatible installation instructions, in particular using different group names. ACLs are actually a better approach to grant access to users, but not in all cases, so we want to provide a standard group anyway. Mode is 0o660, not 0o666 because this is very new code and distributions are likely to not want to give full access to all users. This might change in the future, but being conservative is a good default in the beginning. Rules for /dev/sgx_provision will be provided by libsg-ae-pce: https://github.com/intel/linux-sgx/issues/678.
* sysusers: use NOBODY_USER_NAMEYu Watanabe2017-12-071-1/+1
|
* sysusers: Provide meson argument to set gid for 'users' group (#7533)Ikey Doherty2017-12-031-1/+1
| | | | | | | | | | To allow better integration with distributions requiring an explicitly set gid for the `users` group, provide the new `-Dusers-gid` option to set to a new numeric value. In the absence of a specified gid, we'll fallback to the default existing behaviour of `-` as the gid value, to automatically assign the next available gid on the system.
* README,sysusers: complete and order list of default udev groups we needLennart Poettering2017-11-201-2/+2
| | | | | Let's make sure the list of default udev groups we need are ordered in README and in the sysusers.d snippet, and both are complete.
* udev-rules: Permission changes for /dev/dri/renderD*Tom Stellard2017-11-081-0/+1
| | | | | | | | - Remove the uaccess tag from /dev/dri/renderD*. - Change the owning group from video to render. - Change default mode to 0666. - Add an option to allow users to set the access mode for these devices at compile time.
* rules: add a rule to set /dev/kvm access mode and ownership (#5597)Zbigniew Jędrzejewski-Szmek2017-03-271-0/+1
| | | | | | | | | | | | | | | | | | Kernel default mode is 0600, but distributions change it to group kvm, mode either 0660 (e.g. Debian) or 0666 (e.g. Fedora). Both approaches have valid reasons (a stricter mode limits exposure to bugs in the kvm subsystem, a looser mode makes libvirt and other virtualization mechanisms work out of the box for unprivileged users over ssh). In Fedora the qemu package carries the relevant rule, but it's nicer to have it in systemd, so that the permissions are not dependent on the qemu package being installed. Use of packaged qemu binaries is not required to make use of /dev/kvm, e.g. it's possible to use a self-compiled qemu or some alternative. https://bugzilla.redhat.com/show_bug.cgi?id=1431876 To accomodate both approaches, add a rule to set the mode in 50-udev-default.rules, but allow the mode to be overridden with a --with-dev-kvm-mode configure rule. The default is 0660, as the (slightly) more secure option.
* tmpfiles: drop /run/lock/lockdevMartin Pitt2016-02-011-1/+0
| | | | | | | | Hardly any software uses that any more, and better locking mechanisms like flock() have been available for many years. Also drop the corresponding "lock" group from sysusers.d/basic.conf.in, as nothing else is using this.
* sysusers: set home directory for root to /rootLennart Poettering2014-08-191-17/+17
|
* sysusers: split up default sysusers snippetLennart Poettering2014-06-291-0/+37
This ways, distributions have an easier way to replace the OS specific generic groups/users while keeping systemd's own.