https://overthewire.org/wargames/bandit/bandit1.html
Level Goal
The password for the next level is stored in a file called - located in the home directory
Commands you may need to solve this level
ls, cd, cat, file, du, find
Helpful Reading Material
Google Search for “dashed filename”
Advanced Bash-scripting Guide - Chapter 3 - Special Characters
-
라는 파일에 저장되어 있다.-
파일은 홈 디렉토리에 있다.이번 단계도 어렵지 않다.
bandit1@bandit:~$ ls
-
bandit1@bandit:~$ file -
^C
bandit1@bandit:~$ cat -
^C
bandit1@bandit:~$ file ./-
./-: ASCII text
bandit1@bandit:~$ cat ./-
C??????????????????????????????
bandit1@bandit:~$
~
이다. 다른 곳으로 이동할 필요가 없다.-
라는 파일이 있다.file -
로 찍어 보니 아무것도 나오지 않는다.cat -
으로 열어봐도 아무것도 나오지 않는다.-
이라는 문자가 리눅스에서 예약된 특수문자라 file
, cat
에서 인자로 넘겨받지 못하는 것으로 보인다../
를 사용하기로 한다.file ./-
로 찍어보니 ASCII text 파일이다.cat ./-
로 열어보니 key file처럼 생긴 텍스트가 보인다.다음 단계로 넘어가자
ssh -p 2220 bandit2@bandit.labs.overthewire.org
-
의 의미-
는 리눅스 명령어에서 옵션을 지정할 때 자주 사용된다.ls
명령어에 옵션으로 -A
를 주어서 현재 경로의 .
, ..
을 제외한 모든 파일을 출력할 수 있다.bandit1@bandit:~$ ls
-
bandit1@bandit:~$ ls -A
- .bash_logout .bashrc .profile
bandit1@bandit:~$
cat -
이라고 입력하면 리눅스는 사용자가 옵션을 넣다가 만 것으로 인식한다.-
를 명령어 자신이 넘겨받는 인자가 아니라 옵션 앞에 오는 문자로 인식한다.cat ./-
이라고 입력하면 현재경로./
에 있는 파일 -
을 인자로 받을 수 있다../
는 리눅스에서 현재 경로를 의미한다.cat readme
나 cat ./readme
나 일단 동일하게 동작하나 cat ./readme
는 명시적으로 현재 디렉토리의 readme 파일에 대해 cat
을 실행하라는 의미이다.--help
로 명령어의 옵션을 간단히 확인할 수 있다.bandit1@bandit:~$ cat --help
Usage: cat [OPTION]... [FILE]...
Concatenate FILE(s) to standard output.
With no FILE, or when FILE is -, read standard input.
-A, --show-all equivalent to -vET
-b, --number-nonblank number nonempty output lines, overrides -n
-e equivalent to -vE
...
man
으로 명령어의 옵션을 아주 자세히 확인할 수 있다.bandit1@bandit:~$ man cat