@@ -46,22 +46,27 @@ check_exit_status() {
4646# If the file has been changed, append telemetry rules to the file
4747# If unchanged, install the new apparmor profile
4848check_apparmor_files () {
49- if ! diff -q /etc/apparmor.d/usr.sbin.mysqld /etc/apparmor.d/old_apparmor > /dev/null; then
50- sed -i ' s: # Site-specific additions and overrides. See local/README for details.::' /etc/apparmor.d/usr.sbin.mysqld
51- sed -i ' s: #include <local/usr.sbin.mysqld>::' /etc/apparmor.d/usr.sbin.mysqld
52- sed -i ' $ s/}//' /etc/apparmor.d/usr.sbin.mysqld
53- echo " # Allow access to PS telemetry directory" >> /etc/apparmor.d/usr.sbin.mysqld
54- echo " /usr/local/percona/telemetry/ps/ rw," >> /etc/apparmor.d/usr.sbin.mysqld
55- echo " /usr/local/percona/telemetry/ps/** rw," >> /etc/apparmor.d/usr.sbin.mysqld
56- echo " " >> /etc/apparmor.d/usr.sbin.mysqld
57- echo " # Site-specific additions and overrides. See local/README for details." >> /etc/apparmor.d/usr.sbin.mysqld
58- echo " #include <local/usr.sbin.mysqld>" >> /etc/apparmor.d/usr.sbin.mysqld
59- echo " }" >> /etc/apparmor.d/usr.sbin.mysqld
60- sed -r -i ' :a; /^\s*$/ {N;ba}; s/( *\n *){2,}/\n/' /etc/apparmor.d/usr.sbin.mysqld
61- rm -f /etc/apparmor.d/usr.sbin.mysqld.in2
62- else
63- mv -f /etc/apparmor.d/usr.sbin.mysqld.in2 /etc/apparmor.d/usr.sbin.mysqld
64- fi
49+ TA_EXISTS=$( grep -c " telemetry" /etc/apparmor.d/usr.sbin.mysqld) 2> /dev/null || true
50+ if [ " $TA_EXISTS " -eq 0 ]; then
51+ if ! diff -q /etc/apparmor.d/usr.sbin.mysqld /etc/apparmor.d/old_apparmor > /dev/null; then
52+ sed -i ' s: # Site-specific additions and overrides. See local/README for details.::' /etc/apparmor.d/usr.sbin.mysqld
53+ sed -i ' s: #include <local/usr.sbin.mysqld>::' /etc/apparmor.d/usr.sbin.mysqld
54+ sed -i ' $ s/}//' /etc/apparmor.d/usr.sbin.mysqld
55+ echo " # Allow access to PS telemetry directory" >> /etc/apparmor.d/usr.sbin.mysqld
56+ echo " /usr/local/percona/telemetry/ps/ rw," >> /etc/apparmor.d/usr.sbin.mysqld
57+ echo " /usr/local/percona/telemetry/ps/** rw," >> /etc/apparmor.d/usr.sbin.mysqld
58+ echo " " >> /etc/apparmor.d/usr.sbin.mysqld
59+ echo " # Site-specific additions and overrides. See local/README for details." >> /etc/apparmor.d/usr.sbin.mysqld
60+ echo " #include <local/usr.sbin.mysqld>" >> /etc/apparmor.d/usr.sbin.mysqld
61+ echo " }" >> /etc/apparmor.d/usr.sbin.mysqld
62+ sed -r -i ' :a; /^\s*$/ {N;ba}; s/( *\n *){2,}/\n/' /etc/apparmor.d/usr.sbin.mysqld
63+ rm -f /etc/apparmor.d/usr.sbin.mysqld.in2
64+ else
65+ mv -f /etc/apparmor.d/usr.sbin.mysqld.in2 /etc/apparmor.d/usr.sbin.mysqld
66+ fi
67+ else
68+ rm -f /etc/apparmor.d/usr.sbin.mysqld.in2
69+ fi
6570}
6671
6772
211216 update-alternatives --force --install /etc/mysql/my.cnf my.cnf " /etc/mysql/mysql.cnf" 300
212217 if [ -f " /etc/apparmor.d/usr.sbin.mysqld" ]; then
213218 check_apparmor_files
219+ else
220+ mv -f /etc/apparmor.d/usr.sbin.mysqld.in2 /etc/apparmor.d/usr.sbin.mysqld 2> /dev/null || true
214221 fi
215222 rm -f /etc/apparmor.d/old_apparmor
216- mv -f /etc/apparmor.d/usr.sbin.mysqld.in2 /etc/apparmor.d/usr.sbin.mysqld 2> /dev/null || true
217223 if aa-status --enabled 2> /dev/null; then
218224 apparmor_parser -r -T -W /etc/apparmor.d/usr.sbin.mysqld 2> /dev/null || true
219225 fi
0 commit comments