리눅스 파일권한 질문 드립니다..

zzang3757의 이미지


간단하게 로그를 찍는 클래스를 만들어서 사용하고 있습니다.

분별로 로그파일을 생성하는데,, ls -l 명령어로 생성된 파일의 권한을 보면 좀 이상합니다..

파일 생성은 open 함수에 O_CREAT | O_WR0NLY | O_TRUNC 플래그를 썻구요,

생성된 파일권한을 보면

-r--r--r-- 1 root root 120 Apr 23 17:54 test_log-201204231754.log
---------- 1 root root 120 Apr 23 17:55 test_log-201204231755.log
---------- 1 root root 120 Apr 23 17:56 test_log-201204231756.log
---------- 1 root root 60 Apr 23 17:57 test_log-201204231757.log

위와 같이,, 최초 생성된것에만 권한이 -r--r--r-- 이렇게 되있고 나머진 --------- 이렇게 되어있네요,,

이게 왜 이런건가요 ㅜ

조언 부탁드립니다.

planetarium의 이미지

open() 사용했던 괄호 안의 전체 내용을 적어보세요.

zzang3757의 이미지

BOOL CLogger::OpenLogFile(string szFile)
{
if (m_bOpenFlag)
{
m_bOpenFlag = FALSE;
close(m_FileFd);
}

if ((m_FileFd = open(szFile.c_str(), O_CREAT | O_RDWR | O_TRUNC)) < 0)
{
m_FileFd = -1;

return FALSE;
}

m_bOpenFlag = TRUE;

return TRUE;
}

open 이 들어가있는 함수 입니다..

RDONLY 에서 RDWR로도 해보았는데 똑같은 현상이네요 ㅜ

planetarium의 이미지

O_CREAT 옵션을 줄땐 세번째 인자도 있습니다.
open(szFile.c_str(), O_CREAT | O_RDWR | O_TRUNC, 0644)
자세한건 man 2 open
앞으로도 질문은 충분히 자세하게 올려주세요.

zzang3757의 이미지

아 권한도 해줘야하는군요, ,답변 감사드립니다