본문으로 바로가기

[C] 파일 권한 변경 chmod 함수

category 프로그래밍/C 2023. 1. 30. 21:32
728x90
반응형

오늘은 C언어에서 파일 권한 변경에 대해 알아보겠습니다.

리눅스에서는 파일에 권한을 부여하여 사용자에 따라서 읽기/쓰기/실행을 할 수 있도록 컨트롤할 수 있습니다.

권한이 없다면, 임의의 사용자가 모든 파일에 접근하여 문제를 야기할 수 있습니다.

윈도우에서도 관리자 권한이라는 것을 보셨을 겁니다.

이 기능 또한 임의의 사용자가 특정 설정을 변경할 수 없도록 해놓은 기능입니다.

C언어에서 이 권한을 어떻게 변경하는지에 대해 알아보겠습니다.

리눅스 권한은 owner/group/other 에 따라 권한이 나뉘고, 그 하위에는 읽기/쓰기/실행으로 나뉘게됩니다

권한은 이진수로 체크를 하여 십진수로 보여집니다.

하위 권한별 값은 읽기(r) = 4, 쓰기(w) = 2, 실행(x) = 1 입니다. 합으로 계산하여 7이 됩니다.

제일 앞의 숫자가 owner 두번째의 숫자가 group 세번째의 숫자가 other 에 대한 권한입니다.

값이 777이라면 owner의 읽기/쓰기/실행, group의 읽기/쓰기/실행, other의 읽기/쓰기/실행 권한이 부여됩니다.

리눅스 상에서는 rwxrwxrwx 가 됩니다.

값이 641이라면 owner의 읽기/쓰기, group의 읽기, other의 실행 권한이 부여됩니다.

리눅스 상에서는 rw-r----x 가 됩니다

C언어에서는 chmod 함수를 사용하여 권한을 부여할 수 있습니다.

함수의 원형은 아래와 같습니다.

int chmod(const char *filepath, mode_t mode);

첫번째 인자에는 파일을 입력합니다.

 

두번째 인자에는 변경할 권한을 입력합니다.

 

리눅스에서 touch 명령어로 파일을 만들면 기본 권한은 644(rw-r--r--)가 됩니다

아래의 예제 프로그램을 간단히 만들어서 실행해보았습니다.

결과는 아래와 같습니다.

오늘 포스팅은 여기까지입니다.

728x90
반응형