파일과 디렉터리의 소유권과 허가권

728x90

안녕하세요!! 오늘은 리눅스의 소유권과 허가권에 대해 알아보도록 하겠습니다.

 

리눅스는 각각의 파일과 디렉터리마다 소유권과 허가권이라는 속성이 있습니다.

root 사용자가 자신의 홈 디렉터리에서 touch sample.txt 명령을 실행해 빈 파일을 만들고 ls -l 명령을 실행해보죠!

 

 

표시된 내용의 정보를 표로 알아보겠습니다.

- rw-r--r-- 1 root root May 30 17:18  sample.txt
파일 유형 파일의 허가권 링크 수 파일 소유자 이름 파일 소유그룹 이름 파일크기(Byte) 마지막 변경
날짜와 시간
파일이름

 

각각의 정보를 처음부터 확인해보겠습니다.

 

 

1. 파일 유형

파일의 종류를 나타냅니다. 기본적으로는 d(디렉터리), f(파일)인 경우가 많고 b(Block Device)는 디바이스를 의미하며 대표적으로 하드디스크, CD/DVD 등의 저장 장치가 있습니다.

c(Character Device)는 문자 디바이스를 의미하며 대표적으로 마우스,  키보드, 프린터, 등의 입출력 장치가 있습니다.

i(link)는 링크를 뜻하며 랑크는 Windows의 바로가기 아이콘과 비슷한 개념으로 연결된 파일을 의미합니다.

 

디렉터리 d
파일 f
블록 디바이스 b
문자 디바이스 c
링크 i

 

 

 

2. 파일 허가권

파일 허가권(permiission)은 rw-, r--, r-- 3개 씩 끊어서 인식을 하면 됩니다.

r은 read, w는 write, x는 execute의 약자 입니다.

rw는 읽고 쓰기가 가능하고 r은 읽기만 가능하다는 의미 입니다.

 

3개씩 끊어서 인식을 하는 이유는 각 부분마다 다른 권한을 표시하기 때문입니다.

또한 권한은 숫자로도 표기 할 수 있습니다.

 

아래의 표를 참고하시면 됩니다.

소유자(User) 그룹(Group) 그 외 사용자(Other)
r w - r - - r - -
4 2 0 4 0 0 4 0 0
6 4 4

rw-r--r--을 풀어서 얘기한다면 sample.txt파일의 소유자는 읽거나 쓸 수 있고 그룹과 그 외 사용자는 읽을 수만 있도록 허가 되어 있다는 의미입니다.

 

  • 권한을 숫자로 표시하는 방법(예시)

       rw------- : r(4)+w(2) = 6, 0, 0 -----> 600

       rwxr--r-- : rwx(7) r--(4) r--(4) ----> 744

 

chmod 명령어를 사용하여 허가권을 변경 할 수 있습니다.

chmod 755 sample.txt

- 리눅스의 경우 파일에 실행 권한을 주었을 때 초록색으로 표시가 됩니다. 해당 부분은 다음에 자세히 알아보도록 하겠습니다.

 

- 파일의 권한에는 rwx외에도 setuid, setgid, stiky bit가 있습니다. 이 3가지 허가권에서도 다음에 다시 다루도록 하겠습니다.

 

3. 파일의 소유권

파일의 소유권(Ownership)은 파일을 소유한 사용자와 그룹을 의미합니다.

sample.txt. 파일은 root라는 이름의 사용자가 소유자이며, 그룹도 root로 되어 있습니다.

 

파일의 소유권을 바꾸는 명령어는 chown입니다.

chown centos sample.txt

chown [새로운사용자 or 새로운 그룹] 파일 이름 형식으로 사용하면됩니다.

이 명령은 centos로 사용자를 바꾸라는 의미입니다.

 

chown centos.cnetos sample.txt

위 명령은 파일의 그룹과 사용자 모두 centos로 바꾸라는 의미입니다.

 

chgrp centos sample.txt

위 명령은 그룹만 centos로 바꾸라는 의미 입니다.

 

 

 

4. 링크(link)

파일의 link는 Hard Link와 Symbolic Link (또는 soft Link) 2가지가 있습니다.

심볼릭 링크(소프트링크)는 Windows의 바로가기 링크와 같습니다. 

바로 가기 파일임으로 삭제한다고 원본 파일이 삭제되거나 하지 않습니다.

다만 원본 파일이 디렉토리에서 없어지면 연결이 끊어지게 됩니다.

 

하드 링크의 경우 같은 inode를 가지게됩니다.

여기서 inode는 리눅스/유닉스의 파일 시스템에서 사용하는 자료구조를 말하며,

파일이나 디렉터리의 여러 정보가 들어 있습니다. 

하드링크의 경우 같은 inode를 공유하기 때문에 한 쪽을 수정하면 다른 한 쪽의 내용도 수정이 됩니다.

 

ln baselink hardlink # 하드링크 생성
ln -s baselink hardlink # 소프트 링크 생성
ls -il # -il 옵션 inode 번호 앞에 출력

 

이상 오늘은 리눅스 파일의 허가권과 소유권에 대해 알아보았습니다. 다음에는 setuid, setgid, stikybit 와 리눅스 터미널의 색상에 대해서 알아보도록 하겠습니다.

 

감사합니다.

728x90
반응형