sql >> Databasteknik >  >> RDS >> Mysql

Hur kan jag få MySQL att skriva utfiler som en annan användare?

Utdatafilen skapas av mysqld-processen, inte av din klientprocess. Därför måste utdatafilen ägas av mysqld-processens uid och gid.

Du kan undvika att behöva sudo för att komma åt filen om du kommer åt den från en process under en uid eller gid som kan komma åt filen. Med andra ord, om mysqld skapar filer som ägs av uid och gid "mysql"/"mysql", lägg till ditt eget konto i gruppen "mysql". Då bör du kunna komma åt filen, förutsatt att filens behörighetsläge inkluderar gruppåtkomst.

Redigera:

Du tar bort en fil i /tmp, med katalogtillståndsläget rwxrwxrwt. Den klibbiga biten ('t') betyder att du bara kan ta bort filer om din uid är densamma som ägaren till filen, oavsett behörigheter för filen eller katalogen.

Om du sparar din utdatafil i en annan katalog som inte har den sticky biten inställd, bör du kunna ta bort filen normalt.

Läs detta utdrag från man-sidan för sticky(8):

KLISTERIGA KAPITALER

En katalog vars 'sticky bit' är inställd blir en katalog som endast kan läggas till, eller, mer exakt, en katalog där radering av filer är begränsad. En fil i en klibbig katalog får endast tas bort eller byta namn av en användare om användaren har skrivbehörighet för katalogen och användaren är ägaren till filen, ägaren till katalogen eller superanvändaren. Den här funktionen är användbar för kataloger som /tmp som måste vara offentligt skrivbara men bör neka användare licensen att godtyckligt ta bort eller byta namn på varandras filer.



  1. Hur visar man en bild från databasen i CodeIgniter?

  2. Varför visas inte min bild?

  3. Java:com.mysql.jdbc.exceptions.jdbc4.MySQLNonTransientConnectionException:Kunde inte skapa anslutning till databasservern

  4. PHP mysql charset utf8 problem