거누네룸

    docker alpine ( 로컬호스트에 alpine-linux실행해서 접속)

    우선 Dockerfile에 FROM alpine RUN apk --no-cache add tzdata && \ cp /usr/share/zoneinfo/Asia/Seoul /etc/localtime && \ echo "Asia/Seoul" > /etc/timezone && \ apk add --no-cache openssh && \ sed 's/#PermitRootLogin prohibit-password/PermitRootLogin yes/' -i /etc/ssh/sshd_config && \ echo "root:1111" | chpasswd && \ ssh-keygen -f /etc/ssh/ssh_host_rsa_key -N '' -t rsa && \ ssh-keygen -f /etc/ssh/ssh_..

    [SSH Known-Host] - Failed to load HostKeys from /root/.ssh/known_hosts. You will need to explicitly load HostKeys 오류 발생시

    docker python3에서 .py 스크립트를 실행시켰을 때, 이런 오류가 발생하였다. 이유를 알아보니, SSH로 다른 호스트를 접근하려면, 처음에, 해당 호스트의 FingerPrint를 등록할것인지를 물어보는데, 이로 인해서 스크립트를 처음 실행할때, 이 물어보는 프롬프트 때문에, 스크립트가 중간에 멈추거나 또는 입력을 받지 못해서 대상 호스트로 접속이 안될 수 있다 한번 Finger Print를 등록해놓으면, 다음부터는 물어보지 않기 때문에 문제는 없지만, 이를 해결하기 위해서는 처음에도 물어보지 않도록 미리 등록을 해놓아야 한다. Finger Print를 등록하는 프롬프트에서 등록을 하게 되면, 해당 호스트는 ~/.ssh/known_hosts 라는 파일에 등록이 된다. 미리 등록하는 방법에는 1...

    리눅스 권한주기(r 읽기, w 쓰기, x 실행)

    리눅스 파일 권한 리눅스 파일은 user, group, others 별로 read, write, execute 권한을 부여할 수 있습니다. ls 명령으로 현재 파일에 부여되어 있는 권한을 확인할 수 있습니다. [root@peterdev ch]# ls -l total 0 -rw-r--r-- 1 root root 0 Jun 4 08:45 test.txt -rw-r--r-- 에서 맨앞의 - 는 file 인지 directory인지 구분하는 symbol 입니다. [root@peterdev test]# ls -l total 44 -rwxr-xr-x 1 root root 8576 May 10 08:38 a.out -rw-r--r-- 1 root root 214 May 10 08:38 arr1.c -rw-r--r-- ..

    리눅스 group 권한 주기

    sudo vi /etc/group 들어가서 계정권한 주고 싶은곳에 :옆에 계정이름 적어주면됨 또는 $ # id 명령으로 현재 설정된 id 정보나 group 정보를 알 수 있다. $ sudo id leocat uid=1000(leocat) gid=1000(leocat) groups=1000(leocat) $ # -G 옵션으로 secondary group으로 foo 설정 $ sudo usermod -G foo leocat $ sudo id leocat uid=1000(leocat) gid=1000(leocat) groups=1000(leocat),10000(foo) $ # -G 옵션만 주면 secondary group이 덮어써진다. foo -> bar $ sudo usermod -G bar leocat $ ..

    Validator분리 - @InitBinder, @Validated

    @InitBinder를 사용한 검증 @InitBinder public void init(WebDataBinder dataBinder) { log.info("init binder {}", dataBinder); dataBinder.addValidators(itemValidator); } 이렇게 'WebDataBinder'에 검증기를 추가하면 해당 컨트롤러에서는 검증기를 자동으로 적용할 수 있다. '@InitBinder' -> 해당 컨트롤러에만 영향을 준다. 글로벌 설정은 별도로 해야함 이 후 해당 컨트롤러에서 '@Validated' 어노테이션을 붙여주면 됨 '@Validated'는 검증기를 실행하라는 어노테이션이다. 이 어노테이션이 붙으면 앞서 'WebDataBinder'에 등록한 검증기를 찾아서 실행한다..