모든 파일 및 디렉토리에는 소유권 즉 Permission 이 지정되어있다.
권한에 따라서 누군가는 접속이 가능하며, 또는 관리자만 수정할수도 있고, 모두가 파일을 생성할 수도 있으며, 파일을 망가뜨릴수도 있다. 이에 따른 권한(Permission) 을 수정하고 관리하는법을 배워보자
ex) 파일의 속성정보의 대한 설명
-rw-r--r-- 1 root root 1945 6월 11 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 값을 관리할 수 있다
'모의해킹 침해대응 과정 > Linux 기초' 카테고리의 다른 글
리눅스 기초때기 4일차 통신관련 명령어 / MAIL, WALL (0) | 2021.04.02 |
---|---|
리눅스 기초때기 3일차. 특수 퍼미션 SetUID/SetGID/Sticky Bit (0) | 2021.04.01 |
리눅스 기초때기 3일차. / VI 편집기 (0) | 2021.04.01 |
리눅스 기초때기 2일차. 기타 관리용 명령어 / WC, SU, SUDO,LAST,WHO,W (0) | 2021.03.31 |
리눅스 기초때기 2일차. / CAT, MORE, HEAD,TAIL (0) | 2021.03.31 |