GNU/Linux >> Znalost Linux >  >> Linux

Oprávnění SELECT INTO OUTFILE odepřeno, ale uživatel může zapisovat do adresáře

To může být způsobeno uživatelskými oprávněními mysql.

Jak je uvedeno zde https://dba.stackexchange.com/questions/17029/cannot-output-mysql-data-to-file

Chcete-li si udělit oprávnění FILE, proveďte následující:

  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

Uživatel linuxu může napsat soubor. Ale služba mysql může být blokována apparmorem.

Zkontrolujte tento soubor:/etc/apparmor.d/usr.sbin.mysqld .

Zde přidejte složku projektu:

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

Nakonec proveďte

sudo /etc/init.d/apparmor reload

Na moderních systémech se mariaDB &mysql instaluje s podporou systemd. Mimo jiné má toto nastavení v /etc/systemd/system/mysql.service:

Zabránit přístupu k /home, /root a /run/user

ProtectHome=true

To je to, co mu brání v zápisu do /home.


Linux
  1. Přidělte uživateli přístup pro čtení/zápis do konkrétního adresáře v systému Linux

  2. SELinux:Nelze zapisovat do adresáře „Config“! [OwnCloud]

  3. Rozdíl mezi uživatelským a servisním účtem?

  1. Proč potřebuje uživatel root oprávnění sudo?

  2. Jaký je účel uživatele „mysql.sys@localhost“.

  3. Po instalaci Jenkins nelze odeslat uživateli jenkins

  1. oprávnění k zápisu odepřeno přes filezilla sftp do /var/www/html

  2. Povolit všem uživatelům vytvářet soubory v adresáři, ale mazat může pouze vlastník

  3. Nelze se připojit k MySQL pomocí 'localhost', ale pomocí '127.0.0.1' je to v pořádku?