Code: Select all
#!/bin/sh
# non volatile directories for user data
DATAMNT=/.data
DIRS=".gnupg
.ssh
.config/codeblocks
.config/kmymoney
.local/share/flatpak
.var
Documents
Music
Pictures
Videos"
for user in /home/* ; do
USERNAME=$(basename "$user")
if [ "$USERNAME" = partimg ] || \
[ "$USERNAME" = lost+found ] ; then
continue
fi
case "$1" in
boot)
for dir in $DIRS ; do
DIRNAME=/home/"$USERNAME"/"$dir"
DATADIR="$DATAMNT"/"$USERNAME"
[ -d "$DIRNAME" ] || mkdir -p "$DIRNAME"
[ -d "$DATADIR"/"$dir" ] || mkdir -p "$DATADIR"/"$dir"
mount -o bind "$DATADIR"/"$dir" "$DIRNAME"
chown -R "$USERNAME":"$USERNAME" "$DIRNAME"
done
;;
shutdown)
for dir in $DIRS ; do
umount /home/"$USERNAME"/"$dir"
done
;;
esac
done
Code: Select all
[Unit]
Description = Mount user data directories
[Service]
Type = oneshot
ExecStart = /usr/local/bin/databind.sh boot
User = root
Group = root
[Install]
WantedBy = multi-user.target
Code: Select all
elementary main -wi-ao---- 12.00g
elementary-home main -wi-ao---- 25.00g
elementary-var main -wi-ao---- 5.00g
swap main -wi-ao---- 16.00g
userdata main -wi-ao---- 200.00g