summaryrefslogtreecommitdiffstats
path: root/source/a/etc/doinst.sh
diff options
context:
space:
mode:
Diffstat (limited to 'source/a/etc/doinst.sh')
-rw-r--r--source/a/etc/doinst.sh26
1 files changed, 21 insertions, 5 deletions
diff --git a/source/a/etc/doinst.sh b/source/a/etc/doinst.sh
index cd4ed6a1f..3734bc854 100644
--- a/source/a/etc/doinst.sh
+++ b/source/a/etc/doinst.sh
@@ -54,6 +54,8 @@ config etc/shells.new
config etc/services.new
config etc/issue.net.new
config etc/nsswitch.conf.new
+config etc/profile.d/home-profile.d.csh.new
+config etc/profile.d/home-profile.d.sh.new
config etc/profile.d/lang.csh.new
config etc/profile.d/lang.sh.new
config etc/profile.d/z-dot-in-non-root-path.csh.new
@@ -78,10 +80,8 @@ rm -f etc/mtab.new
rm -f etc/motd.new
rm -f etc/ld.so.conf.new
rm -f etc/hosts.new
-#rm -f etc/shadow.new
rm -f etc/networks.new
rm -f etc/HOSTNAME.new
-#rm -f etc/gshadow.new
rm -f etc/shells.new
rm -f etc/printcap.new
#rm -f etc/issue.new
@@ -92,15 +92,32 @@ rm -f var/run/utmp.new
rm -f var/log/lastlog.new
rm -f var/log/wtmp.new
+# These are just a hazard to keep around, honestly.
+# There's no unique information in them anyway, as any new entries are merged
+# into the existing files automatically.
+rm -f etc/group.new
+rm -f etc/gshadow.new
+rm -f etc/passwd.new
+rm -f etc/shadow.new
+
+# We will add any missing entries to gshadow, but make no attempt to repair existing ones:
+cat etc/group | while read line ; do
+ GRP="$(echo $line | cut -f 1 -d :)"
+ GMEMBERS="$(echo $line | rev | cut -f 1 -d : | rev)"
+ if ! grep -q "^${GRP}:" etc/gshadow ; then
+ echo "${GRP}:x::${GMEMBERS}" >> etc/gshadow
+ fi
+done
+
# Make sure $HOME is correct for user sddm:
chroot . /usr/sbin/usermod -d /var/lib/sddm sddm > /dev/null 2> /dev/null
# Make sure that sddm is a member of group video:
chroot . /usr/sbin/usermod --groups video sddm > /dev/null 2> /dev/null
# Also ensure ownerships/perms:
-chown root.utmp var/run/utmp var/log/wtmp
+chown root:utmp var/run/utmp var/log/wtmp
chmod 664 var/run/utmp var/log/wtmp
-chown root.shadow etc/shadow etc/gshadow
+chown root:shadow etc/shadow etc/gshadow
chmod 640 etc/shadow etc/gshadow
# Match permissions on any leftover config z-dot-in-non-root-path scripts
@@ -112,4 +129,3 @@ fi
if [ -r etc/profile.d/z-dot-in-non-root-path.sh.new ]; then
touch -r etc/profile.d/z-dot-in-non-root-path.sh etc/profile.d/z-dot-in-non-root-path.sh.new
fi
-