본문 바로가기

오늘의 공부/Linux shell scripting

[책읽기]초보해커를 위한 칼리리눅스 입문#1(윈도우에서 vm대신 도커이미지로 실행)

 

 

 

 

 

[1.Window docker desktop installer 로 도커설치]

 

 

[2. Docker 이미지 생성을 위한 도커파일 생성]

# Kali Linux 기본 이미지를 사용
#kali linux이미지의 최소한 필요한것들만 설치되어서 용량이 작은 베이스이미지다.
FROM kalilinux/kali-rolling


# ==============================================================

# root 비밀번호 설정
RUN /bin/bash -c "echo 'root:1020' | chpasswd"

#============[echo 'root:1020'/chpasswd]============
#root사용자와 1020 을 맵핑해서 chpasswd 에 전달해 비밀번호를 1020으로 변경되게 한다.


# ==============================================================
RUN apt-get update && apt-get install -y passwd adduser && \
    adduser --quiet --disabled-password seong && \
    echo 'seong:1010' | chpasswd && \
    apt update && apt install sudo vim man-db less -y &&\
    echo "seong   ALL=(ALL:ALL) ALL" >> /etc/sudoers




# 사용자 추가
#===========[adduser 옵션]===========
#adduser는 사용자를 추가 한다는 것이고 

#===========[quiet 옵션]===========
# quiet옵션은 스크립트 내에서 사용자를 생성할 때 
# 유용하게 사용될 수 있습니다. 표준 출력에 불필요한 메시지가 표시되지 않아, 
# 결과를 파싱하거나 로그로 저장할 때 더 깔끔한 출력이 가능합니다

#===========[--disabled-password]===========
# 이 옵션은 새 사용자를 생성할 때 비밀번호 없이 계정을 만듭니다.
# 즉, 초기 비밀번호가 설정되지 않으므로 해당 사용자는 비밀번호를 알지 못한 채로 로그인 할 수 없습니다.
# 이후 echo 'user:password' | chpasswd 와 같은 명령어로 비밀번호를 설정할 수 있습니다.

#===========사용자명===========================
#여기선 seong이라는 사용자를 추가했습니다.

#================[echo 'seong:1010' | chpasswd]================
#seong라는 사용자의 비밀번호를 1010 과 맴핑후 chpasswd 명령어에 전달합니다.

#[apt update && apt install sudo vim -y 옵션]
#apt 패키지 관리자를 업데이트하고 sudo 와 vim,man,less 을 설치합니다


#================[echo "seong   ALL=(ALL:ALL) ALL" >> /etc/sudoers]================
#sudo 라는 명령어를 쓰려면 sudo 그룹에 추가해야 하는데 echo를 통해 인자를  전달합니다.


# ==============================================================
# Bash로 접속 후 seong 사용자로 전환
CMD ["/bin/bash", "-c", "su - seong"]
#bash로 실행한후 c옵션을 받는데 c옵션은 다음에 올 문자열을 받아서 실행하라는 의미
#그래서 su -seong 즉 터미널에서 su seong 라는 명령어를 실행하게 한다. 사용자를 seong 로 전환한다.

 

 

[3.도커파일 기반으로 도커 이미지 빌드]

docker build ./ -t docker_kali:latest

docker kali:latest라는 이름의 이미지로 현재 디렉토리의 도커파일을 빌드합니다.

 

 

[4.도커 이미지로 컨테이너 실행]

docker run -it docker_kali:latest

 

[실행화면]

실행해보면 kalilinux가 잘 설치 되었고 사용자 등록도 잘된것을 확인할 수 있다