2017-11-02 12 views
0

私は、MySQLのload_fileコマンドでファイルを読み込もうとしています。しかし、返される結果はNullであり、クエリにエラーは発生していません。クエリの作成時にMySQLで使用されるUIDは何ですか?

私が読もうとしているファイルはwww-dataで保護されているので、サーバに自分のアイデンティティが何であるか疑問に思っています(www-dataでない場合)。

load_fileを使用すると、/etc/passwdファイルを読むことができるので、かなり奇妙です。

+0

MySQLクエリは、MySQLが持つ同じLinuxユーザー名/ユーザーグループの下に新しいスレッドを生成する必要があります。 –

+0

'ls -l/etc/passwd'は何の出力ですか? –

+1

権限がどのように動作するかによっていくらか混乱するようですね。 "... www-data protected"は何も意味しません。 DBMSはwww-データとして実行されるべきではなく、www-データとしてシステムにログインするべきではありません。ここから始めようと思うかもしれません:https://www.tutorialspun.com/unix/unix-file-permission.htm – symcbean

答えて

2

UIDは関係ありません。 LOAD_FILE関数は、読み込み可能なファイルのみを読み込みます。 documentationから:

ファイルには、すべてとそのサイズ未満max_allowed_packetバイトによって読み取り可能でなければなりません。 secure_file_privシステム変数が空でないディレクトリ名に設定されている場合は、ロードするファイルがそのディレクトリになければなりません。

だから、www-dataユーザーによってのみ読み出し可能だファイルを読むためにこれを使用することはできません。誰でもそのファイルを読むことができるので、/etc/passwdと一緒に使用できます。

+0

それはきれいな答えで、私の問題を理解することができました。ありがとう。 – Addict

関連する問題