Enable systemd-homed
[workstation-ostree-config.git] / pitti-post.sh
1 #!/usr/bin/env bash
2 set -xeuo pipefail
3
4 # Enable SysRQ
5 echo 'kernel.sysrq = 1' > /usr/lib/sysctl.d/90-sysrq.conf
6
7 # power saving
8 echo 'blacklist e1000e' > /usr/lib/modprobe.d/blacklist-local.conf
9
10 # NetworkManager config
11 cat <<EOF > /usr/lib/NetworkManager/conf.d/local.conf
12 [main]
13 plugins=
14
15 [device]
16 wifi.backend=iwd
17 EOF
18 ln -sfn ../iwd.service /usr/lib/systemd/system/multi-user.target.wants/iwd.service
19 ln -sfn /run/NetworkManager/resolv.conf /etc/resolv.conf
20
21 # set up PAM for systemd-homed (https://bugzilla.redhat.com/show_bug.cgi?id=1806949)
22 patch /etc/pam.d/system-auth <<EOF
23 --- /usr/etc/pam.d/system-auth  1970-01-01 01:00:00.000000000 +0100
24 +++ /etc/pam.d/system-auth      2020-04-13 14:31:16.866558333 +0200
25 @@ -3,16 +3,20 @@
26  # User changes will be destroyed the next time authselect is run.
27  auth        required      pam_env.so
28  auth        sufficient    pam_unix.so try_first_pass nullok
29 +-auth     sufficient pam_systemd_home.so                                  # added
30  auth        required      pam_deny.so
31
32 -account     required      pam_unix.so
33 +account     sufficient    pam_unix.so
34 +-account  sufficient pam_systemd_home.so                                  # added
35
36  password    requisite     pam_pwquality.so try_first_pass local_users_only retry=3 authtok_type=
37  password    sufficient    pam_unix.so try_first_pass use_authtok nullok sha512 shadow
38 +-password sufficient pam_systemd_home.so                                  # added
39  password    required      pam_deny.so
40
41  session     optional      pam_keyinit.so revoke
42  session     required      pam_limits.so
43 +-session  optional   pam_systemd_home.so                                  # added
44  -session     optional      pam_systemd.so
45  session     [success=1 default=ignore] pam_succeed_if.so service in crond quiet use_uid
46  session     required      pam_unix.so
47 EOF
48 patch /etc/pam.d/password-auth <<EOF
49 --- password-auth
50 +++ password-auth
51 @@ -3,16 +3,20 @@
52  # User changes will be destroyed the next time authselect is run.
53  auth        required      pam_env.so
54  auth        sufficient    pam_unix.so try_first_pass nullok
55 +-auth       sufficient    pam_systemd_home.so            # added
56  auth        required      pam_deny.so
57
58 -account     required      pam_unix.so
59 +account     sufficient    pam_unix.so
60 +-account  sufficient pam_systemd_home.so                 # added
61
62  password    requisite     pam_pwquality.so try_first_pass local_users_only retry=3 authtok_type=
63  password    sufficient    pam_unix.so try_first_pass use_authtok nullok sha512 shadow
64 +-password   sufficient    pam_systemd_home.so            # added
65  password    required      pam_deny.so
66
67  session     optional      pam_keyinit.so revoke
68  session     required      pam_limits.so
69 +-session    optional      pam_systemd_home.so            # added
70  -session     optional      pam_systemd.so
71  session     [success=1 default=ignore] pam_succeed_if.so service in crond quiet use_uid
72  session     required      pam_unix.so
73 EOF
74
75 # homed is missing a lot of SELinux policy (https://bugzilla.redhat.com/show_bug.cgi?id=1809878)
76 # "disabled" breaks rpm-ostree (https://bugzilla.redhat.com/show_bug.cgi?id=1882933), so just use permissive
77 sed -i 's/SELINUX=enforcing/SELINUX=permissive/' /etc/selinux/config
78
79 # enable other units
80 mkdir -p /usr/lib/systemd/system/getty.target.wants
81 ln -s ../getty@.service /usr/lib/systemd/system/getty.target.wants/getty@tty1.service
82 ln -s ../systemd-timesyncd.service /usr/lib/systemd/system/sysinit.target.wants/systemd-timesyncd.service
83 ln -s ../systemd-homed.service /usr/lib/systemd/system/multi-user.target.wants/systemd-homed.service
84 ln -s ../cockpit.socket /usr/lib/systemd/system/sockets.target.wants/cockpit.socket
85 ln -s ../sshd.socket /usr/lib/systemd/system/sockets.target.wants/sshd.socket
86
87 # disable unwanted services
88 ln -sfn /dev/null /usr/lib/systemd/user/at-spi-dbus-bus.service
89
90 # move OS systemd unit defaults to /usr
91 cp -a --verbose /etc/systemd/system /etc/systemd/user /usr/lib/systemd/
92 rm -r /etc/systemd/system /etc/systemd/user
93
94 # avoid LVM spew in /etc
95 sed -i 's/backup = 1/backup = 0/; s/archive = 1/archive = 0/' /etc/lvm/lvm.conf
96
97 # update for Red Hat certificate
98 ln -s /etc/pki/ca-trust/source/anchors/2015-RH-IT-Root-CA.pem /etc/pki/tls/certs/2015-RH-IT-Root-CA.pem
99 update-ca-trust