swtpm_setup: Only change file and directory ownership if needed

Change the file and directory ownership of tcsd related files only if it
is absolutely needed. It is not needed if we are running as user TCSD_USER
in group TCSD_GROUP because then the files were created with the needed
owner and group. This avoids problems when trying to change file ownership
when invoked by libvirt where we do not have the capabilities to change
file ownership even as root.

Signed-off-by: Stefan Berger <stefanb@linux.ibm.com>
This commit is contained in:
Stefan Berger 2020-07-23 00:55:49 -04:00 committed by Stefan Berger
parent 0d9d33fb05
commit b71a228538

View File

@ -550,16 +550,16 @@ EOF
else else
chmod 0640 "$TCSD_CONFIG" chmod 0640 "$TCSD_CONFIG"
fi fi
if [ $(id -u) -eq 0 ]; then if [ $(id -u) -eq 0 ] && \
[ $(id -u) -ne $(id -u @TSS_USER@) -o $(id -g) -ne $(id -g @TSS_GROUP@) ]; then
chown "@TSS_USER@:@TSS_GROUP@" "$TCSD_CONFIG" 2>/dev/null chown "@TSS_USER@:@TSS_GROUP@" "$TCSD_CONFIG" 2>/dev/null
if [ $? -ne 0 ]; then
logerr "Could not change ownership on $TCSD_CONFIG to ${user}:${group}."
return 1
fi
chown "@TSS_USER@:@TSS_GROUP@" "$TCSD_DATA_DIR" 2>/dev/null chown "@TSS_USER@:@TSS_GROUP@" "$TCSD_DATA_DIR" 2>/dev/null
chown "@TSS_USER@:@TSS_GROUP@" "$TCSD_DATA_FILE" 2>/dev/null chown "@TSS_USER@:@TSS_GROUP@" "$TCSD_DATA_FILE" 2>/dev/null
fi fi
if [ $? -ne 0 ]; then
logerr "Could not change ownership on $TCSD_CONFIG to ${user}:${group}."
ls -l "$TCSD_CONFIG"
return 1
fi
# make sure tcsd is gone # make sure tcsd is gone
stop_tcsd 1 stop_tcsd 1