GNU/Linux >> Tutoriels Linux >  >> Linux

Autorisation SELECT INTO OUTFILE refusée mais l'utilisateur peut écrire dans le répertoire

Cela peut être dû aux autorisations des utilisateurs mysql.

Comme indiqué ici https://dba.stackexchange.com/questions/17029/cannot-output-mysql-data-to-file

Pour vous accorder le privilège FILE, procédez comme suit :

  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'utilisateur Linux peut écrire un fichier. Mais le service mysql peut être bloqué par apparmor.

Vérifiez ce fichier :/etc/apparmor.d/usr.sbin.mysqld .

Ajoutez-y votre dossier de projet :

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

Enfin, faites un

sudo /etc/init.d/apparmor reload

Sur les systèmes modernes, mariaDB et mysql sont installés avec le support systemd. Entre autres choses, il a ce paramètre dans /etc/systemd/system/mysql.service :

Empêcher l'accès à /home, /root et /run/user

ProtectHome=true

C'est ce qui l'empêche d'écrire dans /home.


Linux
  1. cd dans le répertoire sans avoir la permission

  2. Impossible de suivre l'utilisateur jenkins après l'installation de Jenkins

  3. mysql est mort mais sous-système verrouillé

  4. autorisation docker.sock refusée

  5. autorisation d'écriture refusée via filezilla sftp vers /var/www/html

Attribuer un accès en lecture/écriture à un utilisateur sur un répertoire spécifique sous Linux

La différence entre compte utilisateur et compte de service ?

Pourquoi l'utilisateur racine a-t-il besoin d'une autorisation Sudo ?

CORRECTIF :MySQL - Commande SELECT refusée à l'utilisateur

Impossible de se connecter à MySQL en utilisant 'localhost' mais en utilisant '127.0.0.1' c'est bon?

Comment puis-je répertorier les attributs d'utilisateur Active Directory à partir d'un ordinateur Linux ?