summaryrefslogtreecommitdiff
path: root/libre/filesystem/filesystem.install
diff options
context:
space:
mode:
Diffstat (limited to 'libre/filesystem/filesystem.install')
-rw-r--r--libre/filesystem/filesystem.install79
1 files changed, 79 insertions, 0 deletions
diff --git a/libre/filesystem/filesystem.install b/libre/filesystem/filesystem.install
new file mode 100644
index 000000000..d70906f47
--- /dev/null
+++ b/libre/filesystem/filesystem.install
@@ -0,0 +1,79 @@
+# args: <group> [options]
+_addgroup() {
+ if ! getent group "$1" >/dev/null && groupadd "$@" >/dev/null; then
+ need_group_update=1
+ fi
+}
+
+# args: <group> [options]
+_adduser() {
+ if ! getent passwd "$1" >/dev/null && useradd "$@" >/dev/null; then
+ need_passwd_update=1
+ fi
+}
+
+post_install() {
+ _backup=('etc/fstab' 'etc/crypttab' 'etc/group' 'etc/hosts' 'etc/ld.so.conf' 'etc/passwd'
+ 'etc/shadow' 'etc/gshadow' 'etc/resolv.conf' 'etc/motd' 'etc/nsswitch.conf'
+ 'etc/shells' 'etc/host.conf' 'etc/securetty' 'etc/profile' 'etc/issue')
+ for _bk in ${_backup[@]}; do
+ if [ -f ${_bk}.pacsave ]; then
+ cp -av ${_bk}{.pacsave,}
+ fi
+ done
+}
+
+post_upgrade() {
+ _addgroup optical -g 93
+ _addgroup audio -g 92
+ _addgroup video -g 91
+ _addgroup floppy -g 94
+ _addgroup storage -g 95
+ _addgroup log -g 19
+ _addgroup utmp -g 20
+ _addgroup power -g 98
+ _addgroup network -g 90
+ _addgroup games -g 50
+ _addgroup uucp -g 14
+ _addgroup http -g 33
+ _adduser http -u 33 -d /srv/http -g http -s /usr/bin/nologin
+ _addgroup scanner -g 96
+ _addgroup rfkill -g 24
+ _addgroup lock -g 54
+ _addgroup uuidd -g 68
+ _adduser uuidd -u 68 -d / -g uuidd -s /usr/bin/nologin
+ _addgroup dbus -g 81
+ _adduser dbus -u 81 -d / -g dbus -s /usr/bin/nologin
+ _addgroup input -g 97
+ _addgroup systemd-journal -g 190
+ _addgroup systemd-journal-gateway -g 191
+ _adduser systemd-journal-gateway -u 191 -g 191 -d / -s /usr/bin/nologin
+ _addgroup systemd-timesync -g 192
+ _adduser systemd-timesync -u 192 -g 192 -d / -s /usr/bin/nologin
+ _addgroup systemd-network -g 193
+ _adduser systemd-network -u 193 -g 193 -d / -s /usr/bin/nologin
+ _addgroup systemd-bus-proxy -g 194
+ _adduser systemd-bus-proxy -u 194 -g 194 -d / -s /usr/bin/nologin
+ _addgroup systemd-resolve -g 195
+ _adduser systemd-resolve -u 195 -g 195 -d / -s /usr/bin/nologin
+
+ # update shadow files if needed
+ if (( need_group_update )); then
+ grpconv >/dev/null
+ fi
+
+ if (( need_passwd_update )); then
+ pwconv >/dev/null
+ fi
+
+ if ! grep -q '^include /etc/ld.so.conf.d/\*.conf$' etc/ld.so.conf; then
+ echo 'include /etc/ld.so.conf.d/*.conf' >> etc/ld.so.conf
+ fi
+
+ # set "Last password change" > 0; otherwise su $user wont work
+ for user in bin daemon mail ftp http nobody; do
+ if LANG=C chage -l ${user} | grep -q 'password must be changed'; then
+ chage -d 14871 ${user}
+ fi
+ done
+}