- 파일 취약점 진단2023년 11월 22일 15시 00분 34초에 업로드 된 글입니다.작성자: 채이_E
Linux Ownership(소유권)
소유권
- 개체에 대한 소유자와 소유 그룹
- Linux 시스템의 모든 개체는 소유자와 소유 그룹이 지정되어 있음
- 파일 생성 시 파일을 생성한 계정이 파일의 소유자가 됨
- 파일 생성 시 파일을 생성한 계정의 기본 그룹이 파일의 소유 그룹이 됨
- 명령어를 이용해 소유자와 소유 그룹 변경 가능
- 소유권 확인 하는법 : # ls -l [파일 이름]
소유권 관리 명령어
chown 파일의 소유권 변경 chgrp 파일의 소유 그룹 소유권 변경 소유권 관리 명령어
chown 명령어
- 개체(파일 및 디렉터리)의 소유자 및 소유 그룹 변경
- 계정이름 / 그룹 이름 대신 UID / GID 로 사용 가능
- 사용법
> # chown [옵션] <계정 이름> <파일 이름>
> # chown [옵션] <:그룹 이름> <파일 이름>
> # chown [옵션] <계정 이름:그룹 이름> <파일 이름>
-R 하위 디렉터리 및 파일 전체의 소유권 변경 chgrp 명령어
- 개체(파일 및 디렉터리)의 소유 그룹 변경
- 사용법 : # chgrp [옵션] <gid 또는 그룹 이름> <파일 이름>
-R 하위 디렉터리 및 파일 전체의 소유권 변경 Linux Permission(허가권)
허가권
- 멀티 유저 환경에서 개체(파일, 디렉터리 등)에 접근할 수 있는 자격
- 개체를 읽거나, 쓰거나, 실행하는 행위
- 소유자, 소유그룹, 나머지 사용자 단위로 권한을 부여함
- 허가권 확인하는 법 : ls -l [파일 이름]
허가권 관리 명령어
chmod 파일의 허가권 변경 umask 개체가 생성될 때 부여되는 기본 permission 설정 허가권 구분
소유자(user) 파일의 소유자일 경우 적용되는 권한 소유 그룹(group) 파일의 소유 그룹 멤버 일 경우 적용되는 권한 나머지 사용자(other) 소유자 또는 소유 그룹의 멤버가 아닌 나머지 사용자일 경우
적용되는 권한허가권 종류
문자 허가권 파일 / 디렉터리 r 읽기 - 파일 내용을 읽을 수 있는 권한
- 디렉터리 목록 확인 권한w 쓰기 - 파일 내용을 쓰거나 삭제할 수 있는 권한
- 디렉터리 안에서 파일을 생성, 삭제 할 수 있는 권한x 실행 - 실행파일에 대한 실행 권한
- 디렉터리의 경로 변경, 디렉터리 안에 있는 항목을 읽을 수 있는 권한허가권 관리 명령어
chmod 명령어
- 개체의 허가권 변경
- 상대모드 또는 절대모드로 허가권을 지정함
- 사용법 : # chmod <상대모드 또는 절대모드 허가권> <파일 이름>
허가권 상대 모드
- <소유자> <연산자> <허가권>
소유권 연산자 허가권 u = user + = 권한 추가 r = 읽기 g = group -= 권한 삭제 w = 쓰기 o = other == 권한 지정 x = 실행 a = all s = 소유자, 소유 그룹만 실행 허가권 절대 모드
- 권한을 숫자 형태로 표현
소유자 소유 그룹 나머지 사용자 r w x r w x r w x 4 2 1 4 2 1 4 2 1 초기 허가권 관리(umask)
umask
- 리눅스 시스템에서 자원을 생성할 때 설정되는 기본 권한을 통합 관리하기 위해 사용
- 디렉터리는 777 권한, 파일은 666 권한에서 umask 값을 뺀 값이 기본 권한으로 설정됨
> 파일은 기본 실행권한을 빼고 설정됨
- umask 값 확인 : # umask
- umask 값 변경 : # umask [값]
- umask 값 영구 변경 : /etc/profile 파일에서 설정
리눅스 특수 권한(spedial permission)
특수 권한
- 시스템 관리의 효율성을 높이기 위해 사용하는 특별한 권한
- 보안의 취약점이 될 수 있으므로 꼭 필요한 경우가 아니면 사용하지 않는 것이 좋음
특수 권한 절대 모드 상대 모드 SetUID 4000 u + s SetGID 2000 g + s Sticky bit 1000 o + t SetUID (4000 = u + s)
- 파일을 실행하는 동안 해당 파일의 소유주의 권한으로 실행
- 실행 파일에만 설정이 가능함
- 소유자의 허가권에서 실행 권한이 x가 아닌 s로 표시됨 (예 : rwsr--r--)
SetGID (2000 = g + s)
- 파일을 실행하는 동안 해당 파일의 소속 그룹 권한으로 실행
- 파일 및 디렉터리에서 설정 가능
- 소속 그룹의 허가권에서 실행 권한이 x가 아닌 s로 표시됨 (예 : rwxr-sr--)
Sticky bit (1000 = o + t)
- 모든 소유권에 모든 허가권을 부여하지만 삭제를 소유주만 가능함
- 디렉터리에 설정함
- 나머지 사용자의 허가권에서 실행 권한이 x가 아닌 t로 표시됨 (예 : rwxr-xr-t)
Linux 확장 권한(ACL)
확장 권한(ACL)
- 기본적인 소유권과 허가권 외의 세부설정이 필요한 경우 사용되는 permission
- 파일 및 디렉터리에 특성 소유자 / 소유 그룹의 권한을 부여할 때 사용함
확장 권한 관리 명령어
getfacl 권한 ACL 확인 setfacl 권한 ACL 설정 getfacl
- 파일 및 디렉터리에 설정된 권한 ACL 확인
- 사용법 : # getfacl [옵션] <파일 이름>
-n 소유자, 소속 그룹의 정보를 uid, gid 형태로 출력 -d 기본 권한 정보만 출력 -c 확장 권한 정보만 출력 -R 디렉터리 하위의 파일, 디렉터리의 정보도 함께 출력 setfacl
- 파일 및 디렉터리에 설정된 권한 ACL 설정
- 사용법 : # setfacl <옵션> <정책> <파일 이름>
-m 권한 ACL 설정 -x 한 항목 씩 ACL 설정 삭제 -b ACL 모두 삭제(초기화) -R 이미 존재하는 하위 경로의 파일 및 디렉터리에도 함께 설정 -d 하위 경로의 파일 및 디렉터리가 생성될 때 즉시 설정 파일시스템의 파일 속성
파일 속성
- 특정 파일 시스템에서 지원하는 파일의 속성
- 파일의 손상을 방지하여 보호하기 위한 목적으로 사용됨
- 허가되지 않은 사용자가 파일을 변경하지 못하게 하여 파일 보안을 제공함
a 파일에 추가로 쓰기만 가능(덮어쓰기 불가능) c 디스크에 압축상태로 저장함(자동 압축 / 해제) d Dump 명령에 의해 백업되지 않음(덤프 방지) i 변경, 삭제, 이름변경, 추가쓰기, 링크 등이 모두 불가능함 s 파일을 삭제할 때 블록이 모두 0으로 덮어써지고 다시 저장됨(안전한 삭제) S 파일의 수정된 내용이 디스크상에 바로 동기화 u 삭제된 파일의 내용을 저장함(데이터 복구 가능) 파일 속성 관리 명령어
lsattr 지정된 파일의 속성 확인 chattr 지정된 파일의 속성 변경 lsattr
- 파일에 설정된 속성 확인
- 사용법 : # lsattr [옵션] [파일 이름]
-R 지정된 디렉터리 하위의 모든 파일의 속성 정보 확인 -a 숨김 파일을 포함한 지정된 디렉터리 내부의 모든 파일의 속성 정보 확인 -d 디렉터리 구조를 무시하고 모두 일반파일 형식으로 속성 정보 확인 -v 파일의 버전 정보 확인 chattr
- 파일에 설정된 속성 확인
- 사용법 : # chattr [옵션] [mode] [파일 이름]
OPTIONS -R 지정된 디렉터리 하위의 모든 파일의 속성 정보 변경 -V 변경된 속성 정보에 대해 상세한 정보 출력 -f 오류 메시지 출력 -v version 파일의 버전 정보를 설정 속성 연산자(mode) + 속성을 추가함 - 속성을 제거함 = 정확히 지정된 속성만 설정함 댓글