이 권한에 관한 개념은 해킹에 있어서 가장 핵심적인 부분이며,
리눅스는 윈도우와는 달리 한 서버에 여러 사용자가 접속하여 사용하게 된다.
이 F.T.Z의 서버에 개인 아이디를 가지고 있다고 하자.
그 개인 계정에 할당된 공간에, 이것저것 필요한 문서들을 올리고, 홈페이지도 만드는 등등 여러 중요한 파일들을 생성하게 된다.
리눅스는 어떠한 방법으로 다른 사람이 나의 파일에 접근하지 못하도록 막는것일까?
권한(PERMISSION)
Permission Denied(접근거부)라는 에러메시지는 당신의 권한 밖에 있는 파일을 건드렸다는 것이다.
리눅스는 각 사용자마다 특별한 권한을 부여하여, 그 권한의 범위를 넘어서지 않는 파일들만 제어할 수 있도록 설정되어 있다.
내가 만약 나만의 아이디를 사용하여 로그인한 후 일기나 패스워드 내용이 담긴 파일을 만들어도,
다른 사람(루트 제외)은 그것을 볼 수 없다.
ls -al 명령을 사용하여 파일들의 권한에 대한 정보를 출력할 수 있다.
리눅스에는 4가지 종류의 사용자가 있다.
유저, 그룹, 아더, 루트
유저: 이것은 자신을 의미한다. 만약 guta 라는 아이디로 로그인을 하면 guta라는 유저가 되는 것이다.
그룹: 모든 유저는 하나 이상의 그룹에 속하게 된다. 임의로 이 그룹을 변경하지 않는 한 모든 유저는 자신의
유저네임과 같은 이름의 그룹에 속하게 된다.
아더: 이것은 유저와 그룹을 제외한 모든 다른 사람을 의미한다.
루트: 절대적인 권한을 가지고 있는 사용자. 이 루트 권한을 가지고 있는 자는 어떤 권한에도 구애받지 않는
상태로 파일들을 제어할 수 있다. 이 절대적인 루트 권한을 얻기 위해 이것저것 가리지 않고 하는 일이
해킹이다.
uid->이것이 User ID이다. 뒤의 2009라는 숫자는 컴퓨터는 영어보다는 숫자를 더욱 좋아해서,
사용자들에게 자기가 알아보기 쉬운 숫자를 부여하고, 그 숫자로 누구인지 판단을 한다.
id라는 명령을 통해서 trainer9=2009라는 것을 알 수 있다.
gid->이것은 Group ID의 약자이다. 각 유저마다 gid를 가지고 있고 다른 사람을 자신의 gid를 가진 그룹에 속하게 할 수 이싸.
특별한 일이 없는 한 gid는 항상 uid와 같다.
groups-> 이것은 현재 자신이 어떤 그룹에 속해 있는지를 말해준다. 임의로 변경을 하지 않으며 기본으로
자신의 uid와 같은 그룹에 속하게 된다.
rwx rwx rwx 가 3번 반복되는데
바로 권한에 관한 정보이다
순서대로 유저의 권한, 그룹의 권한, 아더의 권한을 의미한다.
r,w,x는
r은 읽기 권한
w은 쓰기 권한
x은 실행 권한을 의미한다.
trainer9가 유저, trainer10이 그룹
그리고 이 둘을 제외한 모든 아이디는 자동으로 아더가 되는 것이다.
실행권한에 대해 알아보자
읽기 권한은 쉽다.
읽기 권한이 없다면 cat 명령으로 파일 내용을 불러올려고 할 때, Permission Denied가 나온다.
쓰기권한은 그 파일의 수정권한을 말한다.
쓰기 권한이 있는 파일에는 cat >> 명령을 이용하여 내용을 덧붙일 수도 있고, 편집기를 사용하여 내용은 편집할 수도 있게 된다.
이제 실행권한을 알아보자.
위도우나 도스에서는 어떤 파일이 데이타 파일이고 어느것이 실행파일인지 확장자를 보고 구별했다.
예를 들어 확장자가 exe, bat, com 인 파일이 바로 실행파일이다.
하지만 리눅스에서는 이 확장자만 보고 실행파일인지 아닌지를 알 수 없다 . 예를 들어 linux.exe 라는 파일은 이름만 보고
실행이 되는지 안되는지를 알 수 없다.
그럼 어떻게 실행파일인지 아닌지를 구분하냐.. 바로 실행권한인 x 라는 문자가 있는지 없는지르 보고 판단한다
shadow 라는 파일은 루트(관리자)가 아니면 볼 수 조차 없다.
best!