리눅스의 파일 권한에는 세 가지 종류가 있다.
- 읽기(read) : 파일을 읽을 수 있는 권한
- 쓰기(write) : 파일을 수정하거나, 쓰거나, 지울 수 있는 권한
- 실행(execute) : 파일을 실행할 수 있는 권한
리눅스의 터미널 창에서 ls -l 명령어를 통해 파일의 권한을 확인할 수 있다.
권한은 총 10개의 문자로 구성되어 있고 네 개의 그룹으로 나뉜다.
1번째 문자 : 파일의 종류를 나타냄
- - : 정규 파일
- d : 디렉토리
- l : 링크
2 ~ 4번째 문자 : 파일 주인의 읽기, 쓰기, 실행 권한
5 ~ 7번째 문자 : 파일 주인이 속한 그룹의 읽기, 쓰기, 실행 권한
8 ~ 10번째 문자 : 그 외 유저들의 읽기, 쓰기, 실행 권한
ex) 어떤 파일의 권한이 -rwxrw-r-- 이라면 1번째 문자 - 로 정규 파일임을 알 수 있고 2 ~ 4번째 문자 rwx로 파일 주인이 읽기, 쓰기, 실행 권한을 가짐을 알 수 있고, 5 ~ 7번째 문자 rw-로 파일 주인이 속한 그룹이 읽기, 쓰기 권한을 가짐을 알 수 있고, 8 ~ 10번째 문자 r--로 그 외 유저들은 읽기만 가능한 것을 알 수 있다.
Open(2), Creat(2) 시스템 콜 함수의 mode 인자
S_IRWXU 파일 소유주에게 읽기, 쓰기, 실행 권한을 설정.
S_IRUSR 파일 소유주에게 읽기 권한을 설정.
S_IWUSR 파일 소유주에게 쓰기 권한을 설정.
S_IXUSR 파일 소유주에게 실행 권한을 설정.
S_IRWXG 파일 그룹에게 읽기, 쓰기, 실행 권한을 설정.
S_IRGRP 파일 그룹에게 읽기 권한을 설정.
S_IWGRP 파일 그룹에게 쓰기 권한을 설정.
S_IXGRP 파일 그룹에게 실행 권한을 설정.
S_IRWXO 다른 사용자에게 읽기, 쓰기, 실행 권한을 설정.
S_ROTH 다른 사용자에게 읽기 권한을 설정.
S_WOTH 다른 사용자에게 쓰기 권한을 설정.
S_XOTH 다른 사용자에게 실행 권한을 설정.
또는 세 자릿수 8진수 형태의 권한 고유값을 넣어줄 수 있다. 예를 들어 0751은 111 101 001 이므로 파일 주인은 모든 권한을 가지고, 파일 주인이 속한 그룹은 읽기, 실행 권한을 가지고, 그 외 유저는 실행 권한만 가지는 것을 의미한다.
파일 권한 변경하기
chmod 명령어
chmod [변경하고자 하는 권한 값] [파일 또는 디렉토리 경로]
ex) chmod 777 ./lsp1/test.c
'C, C++ & Linux' 카테고리의 다른 글
[C & Linux] 파일 디스크립터(file Descriptor) & 파일 입출력 관련 시스템콜 함수 (0) | 2022.04.07 |
---|---|
[Linux] 리눅스 기본 명령어 (0) | 2022.03.08 |