반응형
파일 분류 권한의 이해
리눅스 운영체제는 모든 것을 파일로 인식하고 처리한다.
하드디스크, 플로피, 프린터 등 모든 자원을 파일로서 취급한다.
파일의 종류
d | directory | ||
- | file | ||
l | soft (symbolic link) | ||
c | character device | ||
b | block device | ||
s | socket | ||
p | named pipe 프로세스간 통신, 파이프의 한 종류 |
링크 파일 (Link File)
File 복사와 다른 개념이다.
복사는 I-node가 다르고 하드디스크 용량을 차지한다.
링크는 하드디스크 용량을 차지하지 않는다.
Hard Link : I-node가 같다. 공유의 개념. C++에서 reference 이다.
Soft Link : 원본파일에 대해 위치정보만 갖는다. 파일 크기가 클 이유가 없음. 윈도우의 바로가기 아이콘과 같은 개념. Symbolic link.
I-node : I-node 내에는 파일 소유권, 허가권, 타임스탬프 (마지막 수정, 접근) 파일 종류등의 정보가 저장되어 있다.
사용자는 파일명으로 파일들을 구분하지만, 리눅스는 수많은 I-node 들로 이루어져 있어, 시스템 내부적으로는 I-node로서 관리되고 있다.
시스템이 부팅되면서 자동으로 체크하여 필요한 부분은 복구한 다음 부팅하게 되는 것이다.
남아있는 I-node 보기 : $df -i
복사와 링크 개념 이해하기
# 참고
# 17230438 / -rwxr-xr-x. / 1 / root / root / 107496 / Apr 29 23:07 / d20
# I-node / 권한정보 / 파일을 참조하는 링크 수 /소유자/소유그룹/ 파일크기 / 최종수정일 / 파일이름
---복사---
[root@kwc ~]# mkdir bbb && cd bbb
[root@kwc ~/bbb]# touch aa # 빈 파일 aa 생성
[root@kwc ~/bbb]# cal > bb # 달력을 넣은 파일 bb 생성
[root@kwc ~/bbb]# cp aa cpaa # aa 파일을 cpaa라는 이름으로 복사
[root@kwc ~/bbb]# cp bb cpbb # bb 파일을 cpbb라는 이름으로 복사
[root@kwc ~/bbb]# ll -i # I-node 보기
total 8
17230432 -rw-r--r--. 1 root root 0 Apr 29 23:04 aa
17230433 -rw-r--r--. 1 root root 168 Apr 29 23:04 bb
17230434 -rw-r--r--. 1 root root 0 Apr 29 23:05 cpaa
17230435 -rw-r--r--. 1 root root 168 Apr 29 23:05 cpbb
# 파일을 복사했을 때 원본과 복사본의 I-node가 다르다.
# 즉 원본 파일과는 완전히 독립적인 새로운 파일이다.
---하드링크---
[root@kwc ~/bbb]# ln aa lnaa # aa 파일을 lnaa 라는 이름으로 하드링크 생성
[root@kwc ~/bbb]# ln aa lnaa2 # aa 파일을 lnaa2 라는 이름으로 하드링크 생성
[root@kwc ~/bbb]# ln lnaa lnaa3 # aa 파일을 lnaa3 라는 이름으로 하드링크 생성
[root@kwc ~/bbb]# ll -i # I-node 보기
total 8
17230432 -rw-r--r--. 4 root root 0 Apr 29 23:04 aa
17230433 -rw-r--r--. 1 root root 168 Apr 29 23:04 bb
17230434 -rw-r--r--. 1 root root 0 Apr 29 23:05 cpaa
17230435 -rw-r--r--. 1 root root 168 Apr 29 23:05 cpbb
17230432 -rw-r--r--. 4 root root 0 Apr 29 23:04 lnaa
17230432 -rw-r--r--. 4 root root 0 Apr 29 23:04 lnaa2
17230432 -rw-r--r--. 4 root root 0 Apr 29 23:04 lnaa3
# 원본 파일인 aa와 하드링크 파일인 lnaa, lnaa2, lnaa3의 I-node가 모두 동일하다.
# 하드 링크는 I-node를 공유하기 때문에 원본 파일과 링크가 동일한 파일로 취급된다.
# 따라서 aa파일을 복사해도 aa와 lnaa, lnaa2, lnaa3은 여전히 같은 파일을 가리키게 되며,
# lnaa, lnaa2, lnaa3 파일은 aa파일과 크기, 권한, 소유자 등이 모두 동일하다.
# 또한, 하드링크 파일들의 용량이 모두 0인 것을 볼 수 있다.
# 하드링크파일인 lnaa 2,3,4와 원본 파일인 aa파일만 파일권한 옆 숫자가 4인것을 볼 수 있다.
# 연결된 하드링크의 개수가 4개라는 뜻이다.
---소프트링크---
[root@kwc ~/bbb]# ln -s aa saa # aa 파일에 대한 심볼릭 링크 'saa' 생성
[root@kwc ~/bbb]# ln -s ss saa2 # ss 파일에 대한 심볼릭 링크 'saa2' 생성
[root@kwc ~/bbb]# ll -i # I-node 보기
total 8
17230432 -rw-r--r--. 4 root root 0 Apr 29 23:04 aa
17230433 -rw-r--r--. 1 root root 168 Apr 29 23:04 bb
17230434 -rw-r--r--. 1 root root 0 Apr 29 23:05 cpaa
17230435 -rw-r--r--. 1 root root 168 Apr 29 23:05 cpbb
17230432 -rw-r--r--. 4 root root 0 Apr 29 23:04 lnaa
17230432 -rw-r--r--. 4 root root 0 Apr 29 23:04 lnaa2
17230432 -rw-r--r--. 4 root root 0 Apr 29 23:04 lnaa3
17230436 lrwxrwxrwx. 1 root root 2 Apr 29 23:06 saa -> aa
17230437 lrwxrwxrwx. 1 root root 2 Apr 29 23:06 saa2 -> ss
# 원본 파일인 aa와 소프트링크 파일인 saa의 I-node가 다르다.
# 파일 권한 부분이 l로 시작하는 것을 볼 수 있다. (soft link)
# 소프트링크 파일 옆에 원본 파일을 가리키는 화살표가 있다.
# 심볼릭링크는 하나의 파일을 가리키는 링크파일로, 링크 파일이 가리키는 대상 파일이
# 삭제되더라도 링크 파일 자체는 사라지지 않는다.
---복사후 소프트링크---
[root@kwc ~/bbb]# cp /bin/date d20 # /bin/date파일을 d20파일로 복사
[root@kwc ~/bbb]# ln -s /bin/date sdate # /bin/date파일을 가리키는 심볼릭 링크인 sdate생성
[root@kwc ~/bbb]# ll -i # I-node 보기
total 116
17230432 -rw-r--r--. 4 root root 0 Apr 29 23:04 aa
17230433 -rw-r--r--. 1 root root 168 Apr 29 23:04 bb
17230434 -rw-r--r--. 1 root root 0 Apr 29 23:05 cpaa
17230435 -rw-r--r--. 1 root root 168 Apr 29 23:05 cpbb
17230438 -rwxr-xr-x. 1 root root 107496 Apr 29 23:07 d20
17230432 -rw-r--r--. 4 root root 0 Apr 29 23:04 lnaa
17230432 -rw-r--r--. 4 root root 0 Apr 29 23:04 lnaa2
17230432 -rw-r--r--. 4 root root 0 Apr 29 23:04 lnaa3
17230436 lrwxrwxrwx. 1 root root 2 Apr 29 23:06 saa -> aa
17230437 lrwxrwxrwx. 1 root root 2 Apr 29 23:06 saa2 -> ss
17230439 lrwxrwxrwx. 1 root root 9 Apr 29 23:07 sdate -> /bin/date
# d20파일의 크기가 아주 큰 것을 볼 수 있다.
# 하지만 d20을 가리키고 있는 소프트링크 파일 sdate의 용량은 아주 작다.
# 당연히 I-node 값도 다르다.
---디렉터리 소프트링크---
[root@kwc ~/bbb]# ln -s /etc setc # /etc 디렉터리를 가리키는 심볼릭링크 setc생성
[root@kwc ~/bbb]# ll -i # I-node 보기
total 116
17230432 -rw-r--r--. 4 root root 0 Apr 29 23:04 aa
17230433 -rw-r--r--. 1 root root 168 Apr 29 23:04 bb
17230434 -rw-r--r--. 1 root root 0 Apr 29 23:05 cpaa
17230435 -rw-r--r--. 1 root root 168 Apr 29 23:05 cpbb
17230438 -rwxr-xr-x. 1 root root 107496 Apr 29 23:07 d20
17230432 -rw-r--r--. 4 root root 0 Apr 29 23:04 lnaa
17230432 -rw-r--r--. 4 root root 0 Apr 29 23:04 lnaa2
17230432 -rw-r--r--. 4 root root 0 Apr 29 23:04 lnaa3
17230436 lrwxrwxrwx. 1 root root 2 Apr 29 23:06 saa -> aa
17230437 lrwxrwxrwx. 1 root root 2 Apr 29 23:06 saa2 -> ss
17230439 lrwxrwxrwx. 1 root root 9 Apr 29 23:07 sdate -> /bin/date
17230440 lrwxrwxrwx. 1 root root 4 Apr 29 23:07 setc -> /etc
# 하드링크와 다르게 소프트링크는 디렉터리를 가리킬 수 있다.
# 하드링크는 파일만 가능!
하드링크는 같은 파티션에서만 가능.
하드링크는 디렉터리를 가리킬 수 없다. 파일만 연결할 수 있다.
하드링크는 아무리 많아도 용량을 차지하지 않는다.
소프트링크는 파일, 디렉터리 모두 가리킬 수 있다.
다른 파일 시스템도 가능!
반응형
'[네이버클라우드] AIaaS 개발자 과정 > Linux' 카테고리의 다른 글
[네이버클라우드캠프] 2023.4.26 Linux(3) - RockyLinux 설치 (파티션 분할), 설치 후 기본 설정 (0) | 2023.04.30 |
---|---|
[네이버클라우드캠프] 2023.4.26 Linux(2) - 다양한 명령어, 막강한 CLI (0) | 2023.04.30 |
[네이버클라우드캠프] 2023.4.25 Linux(2) - 파일 다루기, vi editor, 홈 디렉토리와 환경설정 (0) | 2023.04.29 |
[네이버클라우드캠프] 2023.4.25 Linux(1) - 로그인과 기초 사용법, 절대경로와 상대경로 (0) | 2023.04.29 |
[네이버클라우드캠프] 2023.4.24 Linux - 운영체제와 리눅스. RockyLinux와 PuTTY설치 및 실습 (0) | 2023.04.27 |