188ea74993
Red Hat- and Debian- derived distributions support SELinux, and so their
sudo packages are built with SELinux support. However, other
distributions (notably Arch) build sudo without SELinux. Such sudo
builds will fail to parse the `ROLE=unconfined_r TYPE=unconfined_t`
string added in 0fac1aa45c
. They *can*
parse `role=unconfined_r, type=unconfined_t` in `Defaults`, but that
causes problems on some Fedora 33 systems if SELinux is turned off and
the root account is locked.
To solve both of these problems at once, we install a different
`/etc/sudoers.d/qubes` file depending on the distribution. As a
heuristic, we use the presents of `/etc/redhat-release` or
`/etc/debian_version`. If either is present, sudo probably supports
SELinux, and we should include the corresponding entries. If both are
missing, then we shouldn’t risk it. The `qubes.sudoers` file in the git
repository includes the full file (with SELinux); we use `sed` to strip
the SELinux portion when needed.
26 lines
1010 B
Makefile
26 lines
1010 B
Makefile
SYSCONFDIR ?= /etc
|
|
SUDOERSDIR = $(SYSCONFDIR)/sudoers.d
|
|
POLKIT1DIR = $(SYSCONFDIR)/polkit-1
|
|
PAMDIR = $(SYSCONFDIR)/pam.d
|
|
PAMCONFIGSDIR = /usr/share/pam-configs/
|
|
|
|
.PHONY: install install-debian install-rh
|
|
|
|
install:
|
|
install -d -m 0750 $(DESTDIR)$(SUDOERSDIR)
|
|
if [ -f /etc/redhat-release ] || [ -f /etc/debian_version ]; then \
|
|
exec install -D -m 0440 qubes.sudoers $(DESTDIR)$(SUDOERSDIR)/qubes; \
|
|
else \
|
|
sed -E '/^[^#]/s/\<(ROLE|TYPE)=[A-Za-z0-9_]+[[:space:]]+//g' qubes.sudoers | \
|
|
install -D -m 0440 /dev/stdin $(DESTDIR)$(SUDOERSDIR)/qubes; \
|
|
fi
|
|
install -D -m 0644 polkit-1-qubes-allow-all.pkla $(DESTDIR)$(POLKIT1DIR)/localauthority/50-local.d/qubes-allow-all.pkla
|
|
install -d -m 0750 $(DESTDIR)$(POLKIT1DIR)/rules.d
|
|
install -D -m 0644 polkit-1-qubes-allow-all.rules $(DESTDIR)$(POLKIT1DIR)/rules.d/00-qubes-allow-all.rules
|
|
|
|
install-rh:
|
|
install -D -m 0644 pam.d_su.qubes $(DESTDIR)$(PAMDIR)/su.qubes
|
|
|
|
install-debian:
|
|
install -D -m 0644 pam-configs_su.qubes $(DESTDIR)$(PAMCONFIGSDIR)/su.qubes
|