*cat : 리눅스 기본 명령
cat "파일이름" 이라고 입력하면 파일의 속내용을 확면으로 뿌려주는 역할을 한다.
cat /etc/passwd 입력! trainer5에서 했던 것 처럼
이 입력은 서버에 어떤 어떤 사람들이 계정을 얻어서 사용하고 있는지 알아보자.을 의미한다.
root:x:0:0:Admin:/root:/bin/bash
을 분석해보자.
일단 패스워드 파일이란 한 서버를 사용하는 사용자들의 모든 정보를 기록에 놓은 파일을 말한다.
: 은 필드를 구분해주는 문자이다.
즉, 여기에선 7개의 필드로 나뉘어져있다.
첫번째 필드 root 이것은 서버에 로그인 할 때 사용되는 아이디(계정)을 말해준다.
지금은 trainer6라는 아이디로 로그인을 했으니, 패스워드 파일에서 정보를 찾아보면 trainer6: ~~~라고 나와 있다.
두번째 필드는 패스워드가 적혀있는 부분이다.
리눅스 버전 5.0까지는 이곳에 암호화된 문자열이 들어가 있었고, 다른 사람들이 이 패스워드를 보아도 알아보기 힘든 글씨로 암호화가 되어있기 때문에 위험하지 않았다.
하지만, 해커들이 해독하였다.
후에 리눅스를 제작하는 사람들은 훨씬 복잡한 방법으로 패스워드를 암호화 시켰다.
그럼에도 해커들이 해독하였고,
결국 두번째 필드의 패스워드를 싹 없애버리고 x라는 문자만 달랑 보여주었다.
그리고 사용자들의 패스워드만 모아서 새로운 파일을 만드렁ㅆ다.
그것이 바로 /etc/shadow라는 파일이다.
그 다음 그 쉐도우 파일을 관리자 권한을 가진 사람이 아니면 펼쳐 볼 수 조차 없도록 만들어 버렸다.
이 방법은 패스워드의 크랙을 피하는 가장 완벽한 방법으로 채택되어 리눅스 6.0이후 지금까지 계속 사용되어지고 있다.
만약 그 쉐도우 파일을 열어보려고 한다면 에러 메세지가 출력될 것이다.
세번째와 네번째 필드!
위의 사용자는 로그인을 할 때 root라는 이름을 사용한다.
이 root라는 단어는 인간들이 사용하기 쉬운 단어이다.
하지만 컴퓨터는 영어보단 숫자를 더 좋아해서 이런 단어가 아닌 숫자를 사용하여 사용자를 판단한다.
따라서 우리가 root라고 입력하면 컴퓨터는 패스워드 파일을 열어보고서, 지금 들어오는 녀석은 0이란 녀석이다 라고 생각해 버린다.
또한 세 번쨰에 이어 네번째에도 0이란 숫자가 있는데, 이것은 해당 사용자가 속해있는 그룹을 말해준다.
다섯번째 필드는 사용자의 이름을 말해주는 부분이다. 위의 Admin은 관리자라는 뜻이다.
대학의 서버들은 모든 학생들에게 리눅스 계정을 주기 때문에 저 다섯번째 필드에 그 학생의 실명이 들어가 있다.
여섯번째 필드는 해당 사용자가 로그인에 성공 했을때 기본으로 위치하게 되는 디렉토리를 말해준다.(위에선 root)
따라서 root라는 아이디로 로그인에 성공하면 /root로 자동으로 들어가게 된다.
지금과 같은 경우 /home/trainer6에 들어가게 된다.
이제 마지막 7번째 필드는 사용자가 처음 로그인 했을 때 실행되게 할 프로그램이다.
위처럼 처음 로그인 하였을 때 쉘이 실행되는 것이 보통이다.
지금까지 패스워드 파일에 대해 분석해 보았다.