나는 큰 데이터로 작업하는 일이 많아서
작업을 할 때 서버에 jupyter를 docker로 올리고
그 내부에서 데이터를 다운받거나 코딩 작업을 주로 한다
이번에도 그렇게 작업을 하던 중
jupyter 환경에서 sudo 명령어를 사용해야 할 일이 생겼는데
sudo 명령어를 terminal에 치니
jovyan password를 입력하라고 나왔다
이에 관해 열심히 구글링을 했더니
jovyan에 대한 분노 글을 많이 발견했는데..
간단하게 설명하자면
docker로 jupyter를 pull 받아서
사용하는 경우는 대부분 jovyan 계정으로 접속해서 사용하게된다
jovyan이 뭐.. jupyter(목성)의 위성이라
jupyter를 사용하는 사람들..어쩌구 저쩌구 하던데
그런데 문제는 jupyter notebook을 사용하다보면
어쩔 수 없이 sudo 명령어를 사용해야 할 일이 생기는데
이때 입력해야 할 jovyan user의 비밀번호를
공개하고 있지 않아서 많은 사람들의 미움을 받고있었다
아무튼 그래서 비밀번호를 공개하지 않고 있기 때문에
우리가 비밀번호를 입력할 수는 없고
jovyan에서 sudo를 입력해도
비밀번호를 안치고 작업을 수행할 수 있게
우회하는 방법이 있다
생각보다 간단해서 기록하기로 했다
우선 jupyter가 띄워져있는 docker container에
root 계정으로 bash에 접속한다
docker exec -it -u root <container_id> bash
접속한 다음 whoami 명령어로
root임을 한 번 확인해주자
확인했으면 /etc/sudoers 라는 파일에서
jovyan으로 접속할 때 password를
치지 않아도 되게끔 해주는 라인을 추가해줘야한다
echo 명령어로 아래와 같이 추가해주자
echo "jovyan ALL=(ALL) NOPASSWD:ALL" >> /etc/sudoers
그런다음 cat 명령어로 /etc/sudoers 파일을 한 번 확인해주면
cat /etc/sudoers
위에 뭐라 블라블라 있고 가장 마지막에
우리가 추가한 라인이 있는 것을 확인할 수 있다
그런 다음 bash를 나와서
docker를 restart 해주자
docker restart <container_id>
restart한 다음 jupyter의 terminal에 접속해서
아무 sudo 명령어나 쳐보면
비밀번호를 치지 않아도
알음답게 작업이 되는 것을 확인할 수 있다
'기술 > 기타' 카테고리의 다른 글
[c++] gcc 컴파일러로 여러 개의 c++ 파일 link해서 컴파일하기 (0) | 2024.09.22 |
---|---|
[ssh] ssh public key 로컬에 생성하기 (0) | 2024.09.22 |
[python/AzureAI] 발음평가(Pronunciation Assessment) API 사용해보기(cognitive-services-speech-sdk) (1) | 2024.09.09 |
[python] ffmpeg로 wav파일에 header 넣어주기(ffmpeg-python) (feat. microsoft speech cogni (6) | 2024.09.05 |