2017-11-02 1 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

관련 문제