open 파일 권한 때문에 물어볼것이 생겨 질문드립니다

kjr8318의 이미지

재가 Cent os 6.3 버전을 쓰고 있는대요

fd0 = open("./test0", O_CREAT , 0666);
if(fd0 == -1)
{
exit(-1);
}
close(fd0);

위 처럼 파일을 하나 만드는 프로그램인대요
확인해보니 파일의 권한은 644로 되더군요
숫자로 말고 mode_t 변수로도 해보고
CREAT 함수로도 똑같이 만들어 봤는대
역시나 644권한으로 나오더군요
혹시 이건 제가 쓰고 있는 OS 때문에 생기는 현상인가해서요
아시는분이 계시다면 답변좀 부탁드립니다.

익명 사용자의 이미지

아마 umask가 0022로 되어있지 않나 싶네요.

kjr8318의 이미지

umask가 0022로 되있으면 chmod를 재외하고는 권한 변경이 불가능한건가요?
그렇군요 감사합니다

익명 사용자의 이미지

open을 호출하기전에 umask(0)을 호출하여 umask값을 0으로 바꾸고 생성하셔도 되구요.

아니면 open후에 fchmod를 이용해서 권한을 변경하셔도 될 것 같네요.