GNU/Linux >> Linux Esercitazione >  >> Linux

Autorizzazione SELECT INTO OUTFILE negata ma l'utente può scrivere nella directory

Ciò potrebbe essere causato dalle autorizzazioni utente mysql.

Come indicato qui https://dba.stackexchange.com/questions/17029/cannot-output-mysql-data-to-file

Per concederti il ​​privilegio FILE, procedi come segue:

  1. service mysql restart --skip-networking --skip-grant-tables
  2. mysql <hit enter>
  3. UPDATE mysql.user SET File_priv = 'Y' WHERE user='lea' AND host='localhost';
  4. exit
  5. service mysql restart

L'utente Linux può scrivere un file. Ma il servizio mysql potrebbe essere bloccato da apparmor.

Controlla questo file:/etc/apparmor.d/usr.sbin.mysqld .

Aggiungi lì la cartella del tuo progetto:

/usr/sbin/mysqld {
    [...]
    /home/datam/xfers/online/ r,
    /home/datam/xfers/online/* rw
    [...]
}

Infine, fai un

sudo /etc/init.d/apparmor reload

Sui sistemi moderni mariaDB e mysql vengono installati con il supporto systemd. Tra le altre cose, ha questa impostazione in /etc/systemd/system/mysql.service:

Impedisci l'accesso a /home, /root e /run/user

ProtectHome=true

Questo è ciò che gli impedisce di scrivere in /home.


Linux
  1. Impossibile su all'utente jenkins dopo aver installato Jenkins

  2. mysql è morto ma i sottosistemi sono bloccati

  3. Autorizzazione docker.sock negata

  4. Consenti a tutti gli utenti di creare file in una directory, ma solo il proprietario può eliminarli

  5. Non riesco a connettermi a MySQL usando 'localhost' ma usando '127.0.0.1' va bene?

Howto MySQL:creare un utente e concedere l'autorizzazione a un database

SELinux:Impossibile scrivere nella directory "Config"! [OwnCloud]

La differenza tra account utente e account di servizio?

Perché l'utente root ha bisogno dell'autorizzazione Sudo?

FIX:MySQL – Comando SELECT negato all'utente

Non riesci a trovare .so nella stessa directory dell'eseguibile?