Can't create/write to file (MySQL)

Uit De Vliegende Brigade
Ga naar: navigatie, zoeken

Schrijven naar willekeure locaties (casus okt. 2019)

Normaal kun je maar naar een paar plekken schrijven, zoals /tmp. Op deze manier kan op een gehackte computer (bv. webserver) geen databases worden geëxporteerd binnen de mappen die door de webserver geserved worden. Binnen m'n ontwikkelomgeving zou ik echter handig vinden als MySQL kan schrijven naar dezelfde map als waar projecten draaien waar die exports bij horen.

Probleem

Dit is de foutmelding die ik krijg als ik naar bv. m'n thuismap schrijf:

16:23:57 select * from example_table  into outfile "/home/strompf/test.tmp"
Error Code: 1. Can't create/write to file '/home/strompf/test.tmp' 
(Errcode: 13 - Permission denied)	0,0038 sec

Mogelijke oorzake

  • Beperkingen door AppArmor
  • Beperkingen door MySQL zelf
  • Bestandsrechten.

Aanvullende gegevens

  • MySQL lijkt in complain-mode te werken in AppArmor - Da's goed

Oplossing

Het bleek een rechtenissue te zijn: Als ik binnen m'n thuismap een map mysql-test aanmaakte, en de rechten verruimde met chmod o+w mysql-test, was het probleem verholpen: MySQL draait niet met dezelfde rechten als ik. Vandaar.

Bronnen