본문 바로가기
모의해킹 침해대응 과정/Linux 기초

리눅스 기초때기 3일차. 파일 속성 정보 관리(Permission) / CHOWN, CHGRP, CHMOD,UMASK

by 알거음슴 2021. 4. 1.

모든 파일 및 디렉토리에는 소유권 즉 Permission 이 지정되어있다.

권한에 따라서 누군가는 접속이 가능하며, 또는 관리자만 수정할수도 있고, 모두가 파일을 생성할 수도 있으며, 파일을 망가뜨릴수도 있다. 이에 따른 권한(Permission) 을 수정하고 관리하는법을 배워보자

 

ex) 파일의 속성정보의 대한 설명

 -rw-r--r-- 1 root root 1945 611 14:13 file1

-rw-r--r-- : 퍼미션 정보 4/3/3 단위로 끊어서 확인한다

1 : link count

root : owner : 소유주

root : group : 소유그룹

1945 : 파일의 크기

6 11 14:13 : 수정일자

file1 : 파일 이름

 

* 변경방법

Permission Mode : chmod

Link Count : ln

Owner : chown

Group : chgrp

Mtime : touch -t

File Name : mv

 

 

 

chown

파일의 소유주(Owner) 또는 그룹(Group)을 변경한다.

 

1. 형식

[chown] [OPTIONS] [USERNAME(.GROUP)] [FILENAME]

 

2. 옵션

 chown -R : 경로와 그 하위 모든 파일의 소유정보를 바꾼다.

 

 

chgrp

파일의 그룹을 변경한다.

* 위의 chown을 활용할 시 그룹 및 소유주 원하는값으로 변경처리가 가능함으로 궂이 쓰이는 CMD는 아니다.

 

 

chmod

파일의 접근 권한을 변경한다. (permission)

 

1. 형식

[chmod] [OPTIONS] [permission(심볼릭/옥탈)] [FILENAME] 

 

2. 옵션

 chmod -R : 파일과 그 디렉토리의 하위 모든파일을 일괄적으로 변경한다

 

3. Permission을 읽는 방법

# ls -l file1

-rw-r--r-- 1 root fedora 0 Aug 17 16:06 file

위의 경우 -rw-r--r-- 부분이 권한 부분이다. 이부분을 분석해보자

 1) -rw-(user)  r--(group)  r--(other) 의 권한을 표기하며

 2) 각 자리 (심볼) 의 설명

r(reed) = 리드권한 (cat, cp 등의 역할 가능)

w(write) = 수정권한 

x(excute) = 실행권한 (실행 가능한 경우 실행이 가능하다)

 3) 권한 부여 및 제거

+ : 퍼미션을 허가 / 추가한다

- : 퍼미션을 금지 / 제거한다

= : 퍼미션을 지정 (동일하게 지정한다)

 4) 심볼릭(숫자모드)모드와 옥탈(문자모드)모드 

permission의 경우 2가지의 표기방식있다 문자표기방식과 숫자표기방식이 있는데 위의 심볼,옥탈모드로 구분한다

* 심볼모드의 경우 rwx 로 표기하며 옥탈모드의 경우 r=4 w=2 =x=1 이며 숫자의 합으로 계산한다

ex) -rwxr-w-r-- = 754 로 계산할 수 있다

[참조] 퍼미션 심볼모드와 옥탈모드의 경우의 수

---  : 권한 없음         0 000
--x  : 실행 권한         1 001
-w- : 쓰기 권한         2 010

-wx : 쓰기 실행         3 011

r--  : 읽기 권한         4 100

r-x  : 읽기 실행         5 101

rw- : 읽기 쓰기         6 110

rwx : 읽기 쓰기 실행   7 111

 

* 디렉토리의 시점에서의 권한

r = 내용을 볼 수 있다 (예시 : ls -l CMD)

x = 파일의 생성 & 삭제가 가능하다

x = 디렉토리 내부를 이동할 수 있다 ( cd CMD )

 

실습

 1) root 사용자로 권한별 폴더와 파일들을 생성후 fedora 사용자로 접속하여 확인해보자

*예제*

ls -l

drwxr-x--- 2 root root 19 Feb 18 10:37 dir0

drwxr-x--x 2 root root 19 Feb 18 10:37 dir1

drwxr-x-w- 2 root root 19 Feb 18 10:37 dir2

drwxr-x-wx 2 root root 19 Feb 18 10:37 dir3

drwxr-xr-- 2 root root 19 Feb 18 10:37 dir4

drwxr-xr-x 2 root root 19 Feb 18 10:37 dir5

drwxr-xrw- 2 root root 19 Feb 18 10:37 dir6

drwxr-xrwx 2 root root 19 Feb 18 10:37 dir7

 

tree

|-- dir0

| `-- file0

|-- dir1

| `-- file1

|-- dir2

| `-- file2

|-- dir3

| `-- file3

|-- dir4

| `-- file4

|-- dir5

| `-- file5

|-- dir6

| `-- file6

`-- dir7

`-- file7

 

 1)$ ls -l dir# 명령어를 사용하여 디렉토리 하위의 파일이 정상적으로 보이는지 확인

 2) $ touch dir#/hello.txt 명령어를 사용하여 디렉토리 하위에 파일이 생성되는지 확인

 3) fedora 사용자로 디렉토리에 대한 cd 명령어 테스트

 

결과 비교

목록확인(ls -l)

파일생성(touch)

디렉토리이동(cd)

dir0(---)

Permission denied

(---)

Permission denied

(---)

Permission denied

dir1(--x)

Permission denied

(--x)

Permission denied

(--x)

정상

dir2(-w-)

Permission denied

(-w-)

Permission denied

(-w-)

Permission denied

dir3(-wx)

Permission denied

(-wx)

정상

(-wx)

정상

dir4(r--)

Permission denied

(r--)

Permission denied

(r--)

Permission denied

dir5(r-x)

정상

(r-x)

Permission denied

(r-x)

정상

dir6(rw-)

Permission denied

(rw-)

Permission denied

(rw-)

Permission denied

dir7(rwx)

정상

(rwx)

정상

(rwx)

정상

 

[참조]

퍼미션의 적용 순서 : UID -> GID -> other permission 순서로 권한이 부여됨

 

 

 

umask

파일 및 디렉토리 생성될 때 기본 퍼미션을 조정할 수 있다.

 

1. 형식

[umask] [OPTIONS] [permission]

 

 

2. 실습

 1) umask 를 입력해보자 (기본값 확인)

root : 0022

사용자 : 0002 

 * 기본 퍼미션의 최댓값 파일 : 666 / 디렉토리 : 777 의 값에서 umask 값을 뺀 퍼미션이 생성시에 적용됨

 2) 터미널을 추가로 열어서 umask를 입력해보자

터미널1

 umask 027 후 umask

이후 터미널2 를 실행후 umask

 * 해당 쉘이서만 종속되어있는걸 확인할 수 있다.

 3) /etc/bashrc 내 umask 설정 정보를 확인해보자.

if [ $UID -gt 199 ] && [ "`/usr/bin/id -gn`" = "`/usr/bin/id -un`" ]; then

umask 002

else

umask 022

fi

즉.

root : /etc/bashrc  /  사용자 : $HOME/.bashrc 를 통해 umask 값을 관리할 수 있다