_

ls 명령어로 hint를 찾아 읽었다.
레벨이 올라갈 수록 hint를 읽었을 때 '이렇게 하면 되겠다!' 하는게 바로 떠오르지 않는다.
/usr/bin/level5 프로그램이 /tmp 디렉토리에 level5.tmp라는 이름의 임시 파일을 생성한다고 한다.

/usr/bin 디렉토리로 이동하여 level5 파일을 찾았다.
소유자는 level6인 것을 보아 활용해야 하는 파일이 맞다.
소유자에게는 모든 권한이 부여되어 있고, 그룹에게는 실행 권한, 아더에게는 아무런 권한도 없다.

나는 현재 level5의 권한을 가지고 있으므로
이 파일을 cat(read)하면 permission denied 오류가 난다.

/tmp 디렉토리에 hint에서 이야기 한 level5.tmp가 생성되어 있는지
확인하기 위해 이동하여 find 해보았지만 없는 것으로 보아 직접 생성해야 하는 것 같다.


/usr/bin와 /tmp 디렉토리에서 mktemp 명령어로 임시 파일을 생성하려 하였으나
둘 다 생각했던 것 처럼 작동하지 않았다.
아무래도 이번에도 명령어 작동법을 제대로 모르는게 아닐까 해서 찾아봤다 :)....
*mktemp 명령어
- 경로: /usr/bim/mktemp
- mktmep myfile_XXXX.tmp: 임시 파일이 생성된 후 이름이 출력, X는 임의로 할당됨
- mktemp -d mydir_XXX: 임시 디렉토리가 생성된 후 이름이 출력
- mktemp -q: 파일이나 디렉토리 생성이 실패할 경우 이를 무시
- mktemp -u: 아무것도 생성하지 않고 이름만 출력
- tmpdir: 디렉토리를 지정하여 임시 파일을 생성

다시 /tmp 디렉토리로 돌아가서 mktemp 명령어를 사용해 봤다.
아니 왜 대체 왜 이렇게 생성할 수 없다는거지 ?
그냥 mktemp 명령어만 입력해도 작동이 안되고 이해가 안갔다.
이렇게 해도 임시 파일로 작동하는 지는 확신이 없었지만 어쩔 수 없이 touch로 빈 파일을 level5.tmp로 생성했다.

/usr/bin 디렉토리로 이동해서 level5를 실행했다.
이제 /tmp로 돌아가서 이 파일이 임시 파일로 쓰이고 있는지 확인해야 하니까
다시 /tmp로 돌아가서 ls 명령어로 파일 크기를 확인했다.
touch로 만들었던 level5.tmp 파일의 크기가 0이 아니다.
이렇게 해도 임시 파일로 작동을 하는 것 같다.
mktemp 명령어를 사용하는 문제가 아니었나보다 :D..ㅎㅎ

level5.tmp는 실행은 안되고 cat으로 읽으니 level6의 패스워드를 얻을 수 있었다.
어떤 방식으로 작동한건지 어느정도 이해는 되는데
왜 이렇게 해도 임시 파일로 작동하는지는 확신은 없다.