파일 생성.. 그 후 파일의 퍼미션 문제..

파일을 생성했습니다.
방식은 기존의 파일에서 일정부분만을 떼어 다시 파일을 만드는 것입니다.
그리고, 새로 만들어진 파일은 완전한 실행파일이 됩니다.
근데 문제는..
그 새로만든 파일의 퍼미션이 문제가 된다는 겁니다. ㅡㅡ;
int fd, fd2;
fd = open("load_default", (O_RDONLY));
fd2 = open("load_test", (O_WRONLY|O_CREAT));
while(1){
i = read(fd, buf, 1024);
if(i<=0)
break;
write(fd2, buf, i);
}
close(fd);
close(fd2);
새로 만들어진 파일의 퍼미션이... ㅡㅡ;
---------- 1 root root 43804 5월 13 1355 load_test 새로 만든파일
-rwxr-xr-x 1 root root 43804 5월 13 1355 load_default 기존 파일
이렇게 나옵니다. ㅡㅡ;
이게.. 다시 외부실행되려면. 퍼미션이 있어야 할텐데..
물론 execl 류의 명령을 써서 chmod를 콜하는 방법도 있겠지만
파일을 생성할 때 퍼미션도 같이 설정해주는 방법은 없을까요.. ㅡㅡ;
도움 부탁 합니다.
Re: 파일 생성.. 그 후 파일의 퍼미션 문제..
umask()에 대해서 확인 바랍니다.
화일 생성시 permission에 관여를 많이 하죠...
명령어와 같이 참고하십시요.
Re: 파일 생성.. 그 후 파일의 퍼미션 문제..
화일을 오픈할때에 지정해 줄 수 있습니다.
방법은
fd2 = open("load_test", (O_WRONLY|O_CREAT));
에서 옵션을 조금 더 주는 것이거든요.
fd2 = open("load_test", (O_WRONLY|O_CREAT), XXX);
새로 추가된 XXX에 숫자값을 넣어 주는 것입니다.
자세한 사항은 man page를 참조 하세요. ^^
댓글 달기