[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가 잘 설치 되었고 사용자 등록도 잘된것을 확인할 수 있다
'오늘의 공부 > Linux shell scripting' 카테고리의 다른 글
[책읽기] 초보해커를 위한 칼리리눅스 입문 #6(head,tail,nl사용) (0) | 2023.10.18 |
---|---|
[책읽기]초보해커를 위한 칼리리눅스 #5(1장 리눅스 기본명령:검색(grep 명령어)) (0) | 2023.10.18 |
[책읽기]초보해커를 위한 칼리리눅스 #4(1장 리눅스 기본명령:검색(find 명령어)) (0) | 2023.10.18 |
[책읽기]초보해커를 위한 칼리리눅스 #3(1장 리눅스 기본명령:검색(which, whereis ,locate 명령어)) (0) | 2023.10.17 |
[책읽기] 초보해커를 위한 칼리리눅스 #2(1장 리눅스 기본명령:도움말(ls, man ,help 명령어)) (0) | 2023.10.17 |