본문 바로가기

OS/Linux

10. 파일과 디렉토리의 소유와 허가권

리눅스는 각각의 파일과 디렉토리에 소유권과 허가권이라는 속성이 있다. root 사용자가 자신의 홈 디렉토리에서

'touch sample.txt' 를 실행해 빈 파일을 만들고, 'ls -l' 을 실행하면 다음과 같이 나타난다.


- rw-r--r--.. 뭐 어쩌고 볼 수 있다. 이게 권한이다.



파일 속성




파일 유형

파일이 어떤 종료의 파일이지 나타낸다. 디렉토리일 경우에는 'd' 일반적인 파일일 경우에는 '-'가 표시된다.

그 외에 'b(블록 디바이스)', 'c(문자 디바이스)',  'l(링크)'등이 있다.


# Note

'b' 나 'c'는 디바이스(장치)를 뜻한다. 'ls -l /dev | more ' 명령을 실행해 확인해보면 'b'나 'c'가 많이 보인다.


b : 블록 디바이스(Block Device) ex) 하드디스크, 플로피 디스크, CD/DVD 등의 저장장치

c : 문자 디바이스(Character Device) ex) 마우스, 키보드, 프린터등 입출력 장치

l : 링크(LInk) ex) Windows의 바로가기 아이콘과 비슷한 개념으로 연결된 파일(실제 파일은 다른 곳에 존재)



파일 허가권

파일 허가권(permission)은 'rw-', 'r--', 'r--' 3개씩 끊어서 인식한다.

r : read

w : write

x : execute


rw -- : 읽고 쓰기는 가능한데 실행은 안됨.

rwx : 읽고 쓰고 실행 가능한 파일


1번째 r-- 는 소유자(user)의 파일 접근 권한을, 2번째 r--는 그룹(group)의 파일 접근 권한을, 3번째 r--는 그 외 

사용자(other)의 파일 접근 권한을 의미. sample.txt로 예를 들면

sample.txt : - rw- r--r--

소유자는 읽거나 쓸 수 있고, 그룹은 읽을 수만 있고, 그 외 사용자도 읽을 수만 있다.

소유자의 허가권인 6이라는 숫자는 2진수 11-이므로 'rw-'로 표현할 수 있고

그룹의 허가권인 4라는 숫자는 2진수 100이므로 'r--'로, 그 외 사용자의 허가권인 4라는 숫자도

2진수로 100이므로 'r--'로 표현된다.


ex) 파일 허가권이 754라면?

'rwxr-xr--'

소유자는 읽고/쓰고/실행 가능.

그룹은 읽고/실행만 가능

그 외 사용자는 읽을 수 없다는 것을 의미.


참고로 디렉토리는 해당 디렉토리로 이동하려면 실행('x') 권한이 반드시 있어야 한다. 그래서 디렉토리는 일반적으로

소유자/그룹/기타 사용자 모두에게 실행 권한('x')이 있다.


# Note

Windows의 경우 .exe는 실행파일 .txt는 텍스트 파일등 확장명으로 파일 종류를 확인하는데, 리눅스는

확장자에 별 의미를 두지 않는다. 즉, 실행 파일이건 텍스트 파일이건 모두 일반적으로 확장명을

갖지 않는다. 해당 파일이 어떤 파일인지 알고 싶으면 'file 파일 이름' 명령을 하면 된다.


파일 허가권을 변경하는 명령으로는 'chmod'가 있다. 이 명령은 root 사용자 또는 해당 파일의 소유자만이 실행 가능하다.

예로 chmod 777 sample.txt  라고 실행하면 sample.txt는 모든 사용자가 일고, 쓰고, 실행 할 수 있는 파일이 된다.


# Note

파일의 허가권이 설정되어 있어도, 파일이 실제로 실행 가능한 코드가 아니라면 실행 시 오류 발생. Windows에서 그림 파일인

pic.jpg 파일을 실행하면 실행 파일인 pic.exe로 확장명을 변경할 수는 있으나 실제로 실행은 안되는것과 같은 이치.


'chmod' 명령어를 상대 모드(symbolic method)로드 사용할 수 있다. 

chmod u+x 파일 이름 : 소유자(user)에게 실행(eXecute) 권한을 허가하라(+)

u-wx : 사용자에게 쓰기와 실행 권한을 제거하라

g+rx : 그룹에게 읽기와 실행 권한을 허가하라

o+rwx : 그 외 사용자에게 읽기/쓰기/실행 권한을 허가하라


파일 소유권

파일 소유권(ownership)은 파일을 소유한 사용자와 그룹을 의미.











'OS > Linux' 카테고리의 다른 글

09. 사용자 관리와 파일 속성  (0) 2020.04.07
08. 리눅스 기본 명령어  (0) 2020.04.07
07. 마운트와 CD/DVD/USB의 활용  (0) 2020.04.06
06. 도움말 사용법  (0) 2020.04.06
05. 에디터 사용  (0) 2020.04.06