Bug#915950: workaround (dconf-service: /var/run/user/<UID>/dconf/user switches ownership to root:root)
Dr. A. Stammler
dr_a_stammler at online.de
Tue Dec 25 19:53:54 GMT 2018
Problems can be reduced by running a script to check and reset file ownerships every minute (/etc/crontab). Some processes (like ‘mate-panel’, ‘mate-settings-demon’) still need to be killed, though.
-------------- next part --------------
#!/bin/bash
LOGTAG="$(basename $0)"
RUN_USER_DIR="/var/run/user"
#PROCESSES_TO_RESTART='mate-panel'
EXITVALUE=0
function test_D_Conf_user_file_permissions {
DUFLISTING=$(ls -n "$DCONF_USER_FILE")
#echo "$DUFLISTING"
read DUFPERMISSIONS DUFLINKS DUFUID DUFGID DUFDETAILS <<<$(echo "$DUFLISTING")
#echo "user & group: $RUN_UID:$RUN_GID; D Conf file: $DUFUID:$DUFGID"
logger --tag "$LOGTAG" -p 'user.debug' "user & group: $RUN_UID:$RUN_GID; D Conf file: $DUFUID:$DUFGID"
test "$DUFUID" == "$RUN_UID" -a "$DUFGID" == "$RUN_GID"
} # function test_D_Conf_user_file_permissions
function show_situation {
top -b -n 1 | sed -e '12,$d'
free
} # function show_situation
cd "$RUN_USER_DIR"
for RUN_UID in *
do
if
#test "$RUN_UID" != '0'
test $RUN_UID -ge 1000
then
RUN_GID="$(id -g $RUN_UID)"
DCONF_USER_DIR="$RUN_USER_DIR/$RUN_UID/dconf"
DCONF_USER_FILE="$DCONF_USER_DIR/user"
#ls -al "$DCONF_USER_DIR"
if
! test_D_Conf_user_file_permissions
then
#echo -n "→ Permissions seem wrong. "
#echo "→ Permissions seem wrong; processes accessing $DCONF_USER_DIR:"
#fuser -v "$DCONF_USER_DIR"
#echo "→ Trying to reset ownership of $DCONF_USER_FILE…"
logger --tag "$LOGTAG" -p 'user.notice' "→ Trying to reset ownership of $DCONF_USER_FILE…"
#chown -v "$RUN_UID:$RUN_GID" "$DCONF_USER_FILE"
chown "$RUN_UID:$RUN_GID" "$DCONF_USER_FILE"
#echo '→'
#killall -v -SIGHUP $PROCESSES_TO_RESTART
if
! test_D_Conf_user_file_permissions
then
#echo '* ERROR: could not reset ownership.'
logger --tag "$LOGTAG" -p 'user.crit' '* could not reset ownership.'
EXITVALUE=1
fi
#else
#echo '→ Permissions seem fine; no action taken.'
fi
#else
##echo "Super user (UID $RUN_UID) ignored."
#echo "System user (UID $RUN_UID) ignored."
fi
#echo
done
#echo '⇒'
#show_situation
#echo
exit $EXITVALUE
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 833 bytes
Desc: not available
URL: <http://alioth-lists.debian.net/pipermail/pkg-gnome-maintainers/attachments/20181225/e683d69f/attachment.sig>
More information about the pkg-gnome-maintainers
mailing list