[debian-mysql] Bug#736087: Bug#736087: Bug#736087: mysql-5.5: Please install AppArmor profile on Debian too
Clint Byrum
spamaps at debian.org
Tue Jan 21 19:51:42 UTC 2014
Excerpts from Kristian Nielsen's message of 2014-01-21 03:18:10 -0800:
> intrigeri <intrigeri at debian.org> writes:
>
> > Hi,
> >
> > Kristian Nielsen wrote (21 Jan 2014 09:18:05 GMT) :
> >> In my experience, there are a lot of problems with installing an apparmor
> >> profile by default for the MySQL server. This is from 4 years of experience
> >> maintaining MariaDB .deb packages.
> >
> > Thank you for this very useful input. I want to contrast this with:
> >
> > * Ubuntu has been enabling the MySQL profile by default since 8.04
> > LTS; perhaps we could ask them how much of a user support mess it
> > caused.
> >
> > * Debian does not enable AppArmor by default. So, only people who
> > explicitly, and manually, enabled it themselves may be affected by
> > any problems caused by the MySQL AppArmor profile. My assumption
> > here is that these people are more knowledgeable about AppArmor,
> > and its potential adverse effects, than the averable Ubuntu +
> > MySQL user. In particular, I hope they would be able to 1.
> > guess that a particular problem might be caused by AppArmor; 2.
> > look at the system log to find out what exact action is blocked;
> > and 3. add stuff to /etc/apparmor.d/local/.
> >
> > What do you think?
>
> I think those are valid arguments.
>
> I think in the end, it comes down to whether one considers apparmor useful. I
> can see the use for apparmor for running eg. proprietary desktop binaries like
> adobe reader or something, to create a kind of sandbox. But for mysqld, I
> don't see much use, only annoyances.
>
The next time MySQL has an exploit allowing one to write arbitrary
files, the users who have contained their mysqld's with AppArmor will
not be annoyed.
> Others might have different opinions.
>
> One thing that would be nice is if we could fix the problem that
> mysql-test-run (the test suite) cannot be run when apparmor is enabled. Nor
> can /usr/sbin/mysqld be run as a separate instance by a non-privileged user in
> their own home directory (eg. for testing).
>
> I am not very familiar with how apparmor works, but one option would seem to
> be to introduce a wrapper /usr/sbin/mysqld_apparmor_wrapper that does nothing
> but call execve() of /usr/sbin/mysqld. Then /etc/init.d/mysql could start the
> wrapper, and the apparmor profile could be tied to the wrapper, and users
> would be free to use /usr/sbin/mysqld for other purposes.
>
> If supported by apparmor, another option might be to only have the
> restrictions active when /usr/sbin/mysqld is running as the `mysqld' user.
>
> Put another way, the problem is that the current apparmor profiles prevent a
> number of perfectly valid ways to run /usr/sbin/mysqld. If that problem could
> be solved, then maintaining apparmor profiles would become much more
> attractive.
>
This is a constant source of confusion caused by Debian's choice to
be a fully-automatic fully-integrated system. Sometimes users just want
binaries. The leaf packages for services like mysql tend to over-reach and
do a mediocre job, but they're liked by many who just want something easy.
My answer there would be to have mysql-server-5.5 and mariadb-server-5.5
contain the apparmor profiles for the users who enable AppArmor. But for
users who want to run mysqld in interesting ways, *-server-core-5.5 has
everything you need to write your own my.cnf and init scripts.
More information about the pkg-mysql-maint
mailing list