파일에 대한 정보
리눅스에서 ls -l 명령어를 통해 특정 파일에 대한 정보가 출력됩니다.
[centos@localhost ~]$ ls -l
합계 0
- rw-rw-r--. 1 centos centos 0  4월 11 22:13 testFil


각 항목들이 나타내는 정보는 다음과 같습니다.





리눅스 에서의 파일 및 디렉터리에 대한 권한
리눅스는 서로 다른 여러명의 사용자가 동시에 시스템에 접근 및 로그인하여 사용할 수 있는 멀티 유저(Multi User System) 운영체제입니다.
즉 리눅스 시스템이 설치된 서버 한 대에 여러명이 동시에 접근하여 이용하는 것 입니다.

따라서 시스템의 중요한 자원인 파일과 디렉터리에는 계정에 따라 접근하고 사용할 수 있는 권한이 다르게 주어집니다. 파일과 디렉터리에는 소유권과 허가권이 있는데, 소유권은 해당 파일이나 디렉터리를 어떤 계정이 가지고 있는가에 대한 것이고, 허가권은 해당 파일이나 디렉터리에 대해 특정 계정이 이용할 수 있는 권한을 의미하는 것입니다.




파일의 소유권
위에서 설명했듯이 파일에 대한 권한은 두 가지가 있으며, 소유권은 해당 파일(또는 디렉터리) 를 소유한 계정이나 소유한 그룹이 누구인가를 말하는 것입니다. 소유권은 기본적으로 파일을 생성한 계정과 해당 계정이 속한 그룹이 갖게 됩니다.

다음의 예를 보고 쉽게 이해할 수 있습니다.
centos 라는 계정이 touch 명령어를 통해 비어있는 파일을 생성했습니다.



ls -l 명령어로 자세한 정보를 보게 되면 centos centos 부분을 볼 수 있습니다.
이것은 차례대로 파일의 소유 계정명, 소유 그룹을 의미합니다.




파일의 허가권
파일을 소유했다고 해서 파일에 대한 모든 권한을 갖는것은 아닙니다.
파일에 대해서 사용자는 크게 파일 읽기, 파일 쓰기, 파일 실행 세 가지의 동작을 수행할 수 있습니다.

각각의 행동들은 영어 단어의 대표 글자를 각각 따서 Read(읽기), Write(쓰기), eXcute(실행) 이란 뜻으로 rwx 와 같이 사용합니다.
또한 읽기, 쓰기, 실행 권한이 없는 것을 - (마이너스) 으로 표현합니다.

만약 디렉터리의 허가권이 없다면 해당 디렉터리에는 접근조차 할 수 없을 것입니다.


다음의 예를 보고 자세하게 설명하도록 하겠습니다.
다음은 ls -l 명령어를 통해 콘솔에 출력된 파일의 정보입니다.
- rw-rw-r--. 1 centos centos 0  4월 11 22:13 testFile


자세히 보면 rw-rw-r-- 부분이 있습니다.
어느 파일이나 위와 같이 9글자로 이루어진 허가권 정보가 있습니다.
이것은 다시 세 부분으로 나누어 볼 수 있습니다.
rw- / rw- / r--

슬래쉬를 구분자로 해서 앞에서부터 파일의 소유자(User) / 소유 그룹(Group) / 그 밖의 사용자(Other) 를 나타냅니다.
무슨 뜻이냐 하면 위의 testFile 이라는 파일은 파일의 소유자는 읽고(r) 쓸 수는 있으나(w) 실행은 할 수 없고(-) 소유 그룹 또한 해당 파일에 대해 읽고 쓸 수는 있으나 실행은 할 수 없습니다. 마지막으로 그 밖의 사용자는 해당 파일을 읽기만 할 수 있다는 뜻 입니다.




허가권 숫자 표현
허가권은 rwx 와 같이 표현이 가능하지만 숫자로도 표현할 수 있습니다.
이진법으로 표현할 경우 순서대로 권한이 있는경우에는 1로 없는 경우에는 0으로 표현 가능합니다.
만약 rwx--xrw- 를 표현하고자 한다면 111001110 으로 표현할 수 있습니다. 즉 111/001/110 이 되는 것입니다.

또한 위의 2진수와 같은 원리로 우리가 평소에 사용하는 10진법 표현이 가능합니다.
이진법 111은 십진법 7과 같습니다. 이진법 001은 십진법 1과 같습니다. 이진법 110은 십진법 6과 같습니다.
따라서 7/1/6 과 같으므로 rwx--xrw-를 십진법으로 716으로 표현할 수도 있습니다.


허가권 숫자 진법별 표현
소유자(User)
그룹(Group)
그 밖의 사용자(Other)
r
w
x
-
-
x
r
w
-
4
2
1
0
0
1
4
2
0
1
1
1
0
0
1
1
1
0
7
1
6




파일의 유형
리눅스에서는 모든것이 파일 단위로 구성되어 있습니다.
심지어는 시스템에 연결된 기기들까지도 파일로 관리합니다.
파일의 유형을 알고싶다면 ls -l 명령어를 통해 쉽게 알 수 있습니다.


아주 작게 정보의 맨 앞에 '-' 가 하나 보이는 것을 알 수 있습니다.
이 부분이 해당 파일의 유형을 나타내는 부분입니다.
파일 유형에는 -, d, b, c, l(L 소문자) 이 있습니다.

파일 유형
유형
설명
-
일반적인 파일을 의미합니다.
d
디렉터리를 의미합니다.
b
블록 디바이스를 의미합니다.
하드디스크, CD/DVD 등의 저장 장치들이 있습니다.
또한 블록 디바이스는 블록 단위로 데이터 입출력을 수행합니다.

c
캐릭터(문자) 디바이스를 의미합니다.
문자 디바이스로는 대표적으로 마우스, 키보드, 프린터같은 입출력 장치들이 있습니다.
문자 디바이스는 시스템의 I/O 버퍼를 사용하지 않고 바이트 단위 입출력을 수행합니다.
l (L 소문자)
윈도우즈의 바로가기와 같은 심볼릭 링크(Link) 파일을 의미합니다.
(하드링크는 원본의 파일유형과 동일합니다.)



링크
파일의 링크에는 하드 링크심볼릭 링크(소프트 링크)가 있습니다.
심볼릭 링크는 윈도우즈의 바로가기와 같은 것으로 해당 링크 파일을 지워도 실제 링크가 가리키는 원본 파일은 삭제되지 않습니다.
그러나 하드링크의 경우 링크의 원본 파일과 inode 블록을 공유하므로 해당 하드링크 파일을 지우게 되면 원본 파일이 삭제됩니다.



참고글
블로그 이미지

도로락

IT, 프로그래밍, 컴퓨터 활용 정보 등을 위한 블로그

,