C, C++ & Linux

[Linux] 리눅스의 파일 권한 (Permission)

서노리 2022. 4. 7. 15:51
반응형

리눅스의 파일 권한에는 세 가지 종류가 있다.

  • 읽기(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

 


 

반응형