본문 바로가기

OS/Linux_CentOS

File / Directory 관리

1. Directory : Windows에서의 '폴더' 개념

/ : 최상위 디렉토리

/boot : 부팅 과정에 필요한 정보 파일들의 경로

/etc : 시스템의 대부분의 설정 파일들이 존재하는 경로

/home : 일반 사용자들의 정보가 담겨 있는 경로

/root : 최고관리자 root 계정의 home directory

/var : 시스템 운용 중에 생성되었다가 삭제되는 데이터를 일시적으로 저장하기 위한 경로

/usr : 응용 프로그램 기본 설치 경로

/bin : 일반 사용자들이 사용 가능한 명령어 파일들이 존재하는 경로

/sbin : 관리자용 명령어 파일들이 존재하는 경로. 시스템 운영/관리 명령어가 존재

 

 

 

2. Link : 파일을 '연결'하는 개념

1) Hard link : 완벽하게 동일한 파일, 원본파일과 inode number가 동일하다

ln 원본파일 사본파일

(1) Directory는 링크 불가하다
(2) 파일 시스템이 동일해야 한다. 동일 파티션에 존재해야 한다

(3) 데이터가 있는 위치를 직접 가리키고 있기 때문에, 다른 파일을 가리키고 있는 Soft link에 비해 약간 더 빠르다

(4) 생성된 링크의 파일 크기는 원본 파일과 같다

(5) 원본 파일에 오류가 발생해도 링크는 유지된다

사본이 생긴 것을 확인할 수 있다
원본 파일과 inode number가 동일하고, 파일 크기 역시 같은 것을 확인할 수 있다

원본 파일이 삭제되었는데도 링크가 유지됨을 확인할 수 있다

2) Soft link (Symbolic link) : 원본파일과 inode number가 다르다 (Windows의 바로가기 아이콘 같은 기능)

ln -s 원본파일 사본파일

(1) hard link 단점을 보완했다

(2) 원본 파일에 오류가 발생하면 링크가 깨진다

사본이 생긴 것을 확인할 수 있다
원본파일과 inode number가 다른 것을 확인할 수 있다
원본파일을 삭제하니 빨간색으로 뜬다
링크가 깨진 것을 확인할 수 있다

 

 

 

3. Archive : 백업이나 압축을 위해서 여러 파일이나 디렉터리를 하나의 파일로 관리
tar 옵션 파일명 파일1 파일2 파일3 ...
(옵션)
-c : 생성 (필수)
-v : 상세한 정보를 출력
-f : 파일명 지정 (필수)
-x : 아카이브 해제
-t : 아카이브 파일 해제하지 않고 확인
-r : 기존 아카이브 파일에 파일을 추가
-u : 기존 아카이브 파일에 업데이트된 파일 추가

-cf 옵션으로 숫자로 되어있는 directory들을 묶어봤다
-tvf 옵션은 아카이브 파일을 해제하지 않고 파일의 내용을 자세히 볼 수 있다
directory들을 모두 지우고 아카이브 파일만 남겼다가, 아카이브 파일을 해제해보았다

 

 

 

4. 압축 : 파일의 불필요한 공간을 제거해서 파일 사이즈를 줄이는 작업
1) zip : Windows와의 호환성

zip은 설치를 해야한다
YUM을 통해 패키지 설치를 한다

zip 압축파일명 파일1 파일2 파일3 ...

해제) unzip 압축파일명

압축이 풀리는 것을 확인하기 위해 txt파일을 지운 후 unzip을 하였으나 unzip도 설치를 해야한다
YUM을 통해 패키지 설치를 한다


2) gzip : 확장자가 gz
gzip 옵션 파일명 (archive된 파일)

gzip -1~9 파일명 (1:압축률 낮고 속도 빠름, 9:압축률 높고 속도 느림)


해제)

gunzip 압축파일명

gzip -d 압축파일명

 

3) bzip2 : 확장자가 bz2

bzip2는 설치를 해야한다
YUM을 통해 패키지 설치를 한다

bzip2 파일명 (archive된 파일)


bzip2 -1~9 파일명 (1:압축률 낮고 속도 빠름, 9:압축률 높고 속도 느림)


해제)

bunzip2 압축파일명

bzip2 -d 압축파일명

 

 

 

5. 파일 속성(메타데이터 정보) 분석

- :  directory/file/link file을 구별하는 식별자 (d : directory / - : file / l : symbolic link)

rw- : user의 권한 (r :읽기 / w : 쓰기 / x : 실행 (디렉토리는 진입가능))

r-- : group의 권한 (r :읽기 w : 쓰기 x : 실행 (디렉토리는 진입가능))

r-- : others의 권한 (r :읽기 w : 쓰기 x : 실행 (디렉토리는 진입가능))

. : ACL(Access Control List. 접근제어) 설정여부 (+ : 설정O / . : 설정X)

1 : file의 Hardlink 갯수

root : Owner

root : Group

30 : 용량

9월 24 16:51 : 마지막으로 수정한 날짜

nineman.txt : directory/file의 이름

 

 

 

6. 파일 접근 권한

1) 기호를 사용한 접근 권한 변경

# chmod 사용자or그룹 +/- 권한 파일명 (','를 사용해 중복 설정할 수 있다)

사용자 or 그룹 : u : user / g : group / o : others

권한 : r 읽기 / w 쓰기 / x 실행

(ex)

kim.txt 파일은 user에겐 읽기/쓰기 권한이, group과 others에겐 읽기 권한만 있다

여기서 user와 group에 읽기/쓰기 권한을 주고, others에게서 읽기 권한을 제거해 보면

user와 group은 읽기/쓰기 권한이 있고, others는 아무 권한이 없는 것을 확인할 수 있다

 

2) 8진수를 이용한 접근 권한 변경

# chmod 사용자or그룹별 8진수(u+g+o) 파일명

r(읽기) : 4 / w(쓰기) : 2 / x(실행) : 1 ((ex) rwx : 7, r-x : 5, rw- : 6 -wx : 3 --x : 1)

(ex)

kim.txt 파일은 user와 group은 읽기/쓰기 권한이 있고, others는 아무 권한이 없다

여기서 user에겐 읽기/쓰기/실행 권한을, group에겐 읽기/실행 권한을, others에겐 읽기 권한을 준다면

user에겐 읽기/쓰기/실행 권한이, group에겐 읽기/실행 권한이, others에겐 읽기 권한만 있는 것을 확인할 수 있다

 

3) 기본 허가권 변경

: 특정 directory에 file 및 directory를 생성할 경우 권한을 자동으로 설정하기 위한 명령어이며, umask 명령어를 통해 mask 값을 설정하여 생성될 file 및 directory의 권한을 설정할 수 있다
Directory 최고권한 777 (실행권한이 없으면 directory 접근 불가능)
File 최고권한 666 (실행권한이 없어도 sh 명령어로 실행 가능)

# umask 값

umask 기본값

 

 

7. 특수 권한

user권한에 r/w/x가 아닌 's'가 있다. 특수권한을 의미한다

1) 소유자 관련 권한 : SetUID

소유자만이 접근 가능한 파일을 일반 유저도 접근할 필요가 있을 때 사용한다.

user 권한의 실행권한(x) 자리에 x대신 s가 들어가면 이를 SetUID라 칭한다.

x대신 S가 들어가면 접근 권한이 없음을 의미한다.

권한을 읽을 땐 맨 앞에 숫자 4를 붙여서 읽는다.

nine.txt 파일은 user에겐 읽기/쓰기/실행, group에겐 읽기/쓰기, other에겐 읽기 권한만 있다
user권한의 실행권한 자리에 x대신 s가 생기면서 SetUID가 설정되었다

 

2) 소유 그룹 관련 권한 : SetGID

소유 그룹만 접근 가능한 파일에 일반 유저로 접근이 필요 할 때 사용한다.

group 권한의 실행권한(x) 자리에 x대신 S가 들어가면 이를 SetGID라고 한다.

x대신 S가 들어가면 접근 권한이 없음을 의미한다.

권한을 읽을 땐 맨 앞에 숫자 2를 붙여서 읽는다.

man.txt 파일은 user에겐 읽기/쓰기, group에겐 읽기/쓰기/실행, other에겐 읽기 권한만 있다
group권한의 실행권한 자리에 x대신 s가 생기면서 SetGID가 설정되었다

 

3) Sticky bit

특정 directory를 누구나 자유롭게 사용할 수 있도록 하는 것을 말한다.

file 및 directory 생성은 누구나 가능하지만, 삭제는 생성한 user와 directory 소유자만 가능하다.

일반 사용자 권한의 접근 권한(x)자리에 x대신 t가 들어가면 이를 Sticky bit라 한다.

x대신 T가 들어가면 접근 권한이 없음을 의미한다.

권한을 읽을 땐 맨 앞에 숫자 1을 붙여서 읽는다.

nineman 디렉토리는 user에겐 읽기/쓰기/실행, group와 others에겐 읽기/실행 권한이 있다
others권한의 실행권한 자리에 x 대신 t가 들어가면서 Sticky bit가 설정되었다

 

※ 해당 자리의 기존 권한에 실행 권한이 있어야 정상적으로 적용이 된다

 

 

 

8. 파일의 소유주와 그룹 변경

1) 소유주 변경

# chown 옵션 소유주 파일명

index 파일의 소유주와 그룹 모두 root이다
nineman이라는 계정을 만들고, index파일의 소유주를 바꿔주었다
index파일의 소유주가 nineman으로 바뀐것을 확인할 수 있다

2) 그룹 변경

# chown 옵션 .그룹명 파일명

korea라는 그룹을 만들고, index파일의 그룹을 바꿔주었다
index파일의 그룹이 korea로 바뀐것을 확인할 수 있다

3) 소유주 및 그룹변경

# chown 옵션 소유주:그룹명 파일명

index파일의 소유주와 그룹을 모두 root로 바꿔준다
소유주와 그룹 모두 바뀐것을 확인할 수 있다

옵션)

-R : 하위 디렉터리에 있는 모든 디렉터리와 파일을 변경

 

 

 

9. ACL (Access Control List) : 접근 제어 목록을 설정한 것

1) setfacl 옵션 권한 file/directory

(옵션)

-m : ACL 설정/수정

-x : ACL 삭제

-R : directory인 경우 하위 directory내용까지 권한 변경

setfacl로 user nineman이 test.txt에 대해 rw권한을 갖게되었다
'+'가 추가되었다
diff_user계정으로 접속해 test.txt파일을 읽으려했지만 허가 거부됨
nineman계정은 권한이 있기 때문에 접속하면 test.txt파일을 열 수 있다

2) getfacl 옵션 file/directory

(옵션)

-d : 기본 정보에 대해 확인

-R : directory인 경우 하위 directory내용까지 확인

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

디스크 관리 - Partition, LVM  (0) 2022.09.27
사용자 및 그룹 관리  (0) 2022.09.26
Linux 명령어 - 1  (1) 2022.09.23
Xshell을 이용한 가상머신 연동  (0) 2022.09.19
CentOS7 설치 + Template 생성 + 가상머신 복제  (0) 2022.09.19