私は、MySQLのload_file
コマンドでファイルを読み込もうとしています。しかし、返される結果はNullであり、クエリにエラーは発生していません。クエリの作成時にMySQLで使用されるUIDは何ですか?
私が読もうとしているファイルはwww-data
で保護されているので、サーバに自分のアイデンティティが何であるか疑問に思っています(www-data
でない場合)。
load_file
を使用すると、/etc/passwd
ファイルを読むことができるので、かなり奇妙です。
私は、MySQLのload_file
コマンドでファイルを読み込もうとしています。しかし、返される結果はNullであり、クエリにエラーは発生していません。クエリの作成時にMySQLで使用されるUIDは何ですか?
私が読もうとしているファイルはwww-data
で保護されているので、サーバに自分のアイデンティティが何であるか疑問に思っています(www-data
でない場合)。
load_file
を使用すると、/etc/passwd
ファイルを読むことができるので、かなり奇妙です。
UIDは関係ありません。 LOAD_FILE
関数は、読み込み可能なファイルのみを読み込みます。 documentationから:
ファイルには、すべてとそのサイズ未満
max_allowed_packet
バイトによって読み取り可能でなければなりません。secure_file_priv
システム変数が空でないディレクトリ名に設定されている場合は、ロードするファイルがそのディレクトリになければなりません。
だから、www-data
ユーザーによってのみ読み出し可能だファイルを読むためにこれを使用することはできません。誰でもそのファイルを読むことができるので、/etc/passwd
と一緒に使用できます。
それはきれいな答えで、私の問題を理解することができました。ありがとう。 – Addict
MySQLクエリは、MySQLが持つ同じLinuxユーザー名/ユーザーグループの下に新しいスレッドを生成する必要があります。 –
'ls -l/etc/passwd'は何の出力ですか? –
権限がどのように動作するかによっていくらか混乱するようですね。 "... www-data protected"は何も意味しません。 DBMSはwww-データとして実行されるべきではなく、www-データとしてシステムにログインするべきではありません。ここから始めようと思うかもしれません:https://www.tutorialspun.com/unix/unix-file-permission.htm – symcbean