CLIEN

본문 바로가기 메뉴 바로가기 보기설정 테마설정
톺아보기 공감글
커뮤니티 커뮤니티전체 C 모두의광장 F 모두의공원 I 사진게시판 Q 아무거나질문 D 정보와자료 N 새로운소식 T 유용한사이트 P 자료실 E 강좌/사용기 L 팁과강좌 U 사용기 · 체험단사용기 W 사고팔고 J 알뜰구매 S 회원중고장터 B 직접홍보 · 보험상담실 H 클리앙홈
소모임 소모임전체 ·굴러간당 ·아이포니앙 ·주식한당 ·방탄소년당 ·일본산당 ·MaClien ·자전거당 ·개발한당 ·AI당 ·이륜차당 ·안드로메당 ·소시당 ·콘솔한당 ·바다건너당 ·소셜게임한당 ·갖고다닌당 ·물고기당 ·VR당 ·노젓는당 ·ADHD당 ·창업한당 ·나혼자산당 ·키보드당 ·테니스친당 ·PC튜닝한당 ·클다방 ·골프당 ·찰칵찍당 ·냐옹이당 ·레고당 ·방송한당 ·라즈베리파이당 ·달린당 ·여행을떠난당 ·어학당 ·IoT당 ·3D메이킹 ·X세대당 ·AI그림당 ·날아간당 ·사과시계당 ·육아당 ·배드민턴당 ·야구당 ·농구당 ·블랙베리당 ·곰돌이당 ·비어있당 ·FM당구당 ·블록체인당 ·보드게임당 ·활자중독당 ·볼링친당 ·캠핑간당 ·문명하셨당 ·클래시앙 ·요리한당 ·쿠키런당 ·대구당 ·DANGER당 ·뚝딱뚝당 ·디아블로당 ·개판이당 ·동숲한당 ·날아올랑 ·전기자전거당 ·e북본당 ·이브한당 ·패셔니앙 ·도시어부당 ·FM한당 ·맛있겠당 ·포뮬러당 ·젬워한당 ·걸그룹당 ·안경쓴당 ·차턴당 ·총쏜당 ·땀흘린당 ·하스스톤한당 ·히어로즈한당 ·인스타한당 ·KARA당 ·꼬들한당 ·덕질한당 ·가죽당 ·리눅서당 ·LOLien ·Mabinogien ·임시소모임 ·미드당 ·밀리터리당 ·땅판당 ·헌팅한당 ·오른당 ·영화본당 ·MTG한당 ·소리당 ·나스당 ·노키앙 ·적는당 ·그림그린당 ·소풍간당 ·심는당 ·패스오브엑자일당 ·품앱이당 ·리듬탄당 ·Sea마당 ·SimSim하당 ·심야식당 ·윈태블릿당 ·미끄러진당 ·축구당 ·스타한당 ·스팀한당 ·파도탄당 ·퐁당퐁당 ·테스트당 ·빨콩이당 ·공대시계당 ·터치패드당 ·트윗당 ·가상화폐당 ·시계찬당 ·WebOs당 ·위스키당 ·와인마신당 ·WOW당 ·윈폰이당
임시소모임
고객지원
  • 게시물 삭제 요청
  • 불법촬영물등 신고
  • 쪽지 신고
  • 닉네임 신고
  • 제보 및 기타 제안
© CLIEN.NET
공지[점검] 잠시후 서비스 점검을 위해 약 30분간 접속이 차단됩니다. (금일 18:15 ~ 18:45)

나스당

잡담 도커의 guid puid에 대해서 16

5
2019-02-15 16:41:41 수정일 : 2019-02-17 00:27:39 182.♡.65.7
이치로


아래 올라온 글을 보고

강좌라고 하기에는 너무 거창하고 또 그럴 실력도 안되지만

삽질을 통해 배운 내용을 같이 알면 좋을 것 같아 글을 적어봅니다.


도커 컨테이너로 만들어진 앱을 실행할 때, 많은 경우(주로 linuxserver.io 이미지가 그러하죠) puid/pgid를 기본 환경변수로 받습니다.


리눅스는 제가 느끼기에 윈도우에 비해 소유자와 권한에 대해서 매우 철저한 편인데 도커로 실행하는 앱, 또 앱이 쓰고 읽는 파일관련 권한도 결국에는 리눅스 위에 돌아가므로 여기에 대한 권한을 명확히 해줘야 합니다.


도커 컨테이너를 실행하고 htop 같은 것으로 모니터링 해보면 해당 앱이 특정 소유자 권한으로 실행되는 것을 쉽게 확인할 수 있죠. 환경(라이브러리 같은)은 지정된 가상 공간(컨테이너)을 참조하지면 결국 앱의 실행은 호스트에서 돌아가는 다른 프로세스와 똑같습니다. 이 도커기반 앱 실행의 사용자/권한을 원하는대로 컨트롤 하기 위한 옵션이 puid/pgid 입니다.


그러면 도커에서 사용자 관리는 어떻게 하는가?


도커는 루트 권한으로 돌아가기 때문에 이미지에서 사용자/소유권 처리 안해주면 그냥 루트권한으로 실행됩니다. 하지만 이 경우 도커 앱이 생성하는 모든 폴더는 루트만 접근 가능해지는 등등... 불편한 점 뿐만 아니라 보안을 생각할때 전지 전능한 루트권한을 3자 프로세스에 주는 것은 매우 위험하므로 도커에서조차도 지양하도록 하고 있죠.


그러면 어떻게 하느냐? 뭐 정답이란 없겠지만 보통 이런 방식을 씁니다.


일단 임시 유저를 하나 만듭니다. 더미 유저라는 편이 더 맞겠네요. 보통 호스트에서 쓰지 않는 user:group uid:gid로 지정을 합니다. abc:abc 911:911 뭐 이런식으로... 911은 왠만한 호스트 시스템에서 사용하지 않을법한 그런 대역이라서 그런걸로 알고 있습니다. id는 호스트와 공유되고 namespace라 할까? abc 이런건 컨테이너 안에서만 유효하더군요.


여기까지만 이미지를 만들때 미리 작업해 놓습니다. 아직 사용자가 어떤 유저로 실행을 원하는지 모르니까요.


그런 다음 사용자가 지정한 PUID/PGID가 있으면 임시로 만들어진 abc 유저의 id 911을 사용자가 지정한 id로 변경해줍니다. 볼륨 매핑처럼 사용자 매핑 같은거죠. 이 부분은 앱을 실행할 때 처리됩니다. 그런 뒤에 이 abc유저를 가지고 파일폴더 권한 설정, 앱 실행 등등을 처리하도록 합니다. 하지만 유저가 지정하지 않으면? 그냥 abc에 911로 그냥 실행하는거죠. 


컨테이너에서 들어가서 볼륨 매핑된 폴더를 ls 해보면 보통 소유자가 abc로 되어 있을겁니다. 하지만 호스트의 매핑된 동일 폴더를 ls 해보면 약간 이야기가 다릅니다. 만약 puid/pgid를 줬다면 호스트의 사용자로, 아니라면 듣도보도 못한 911로 소유권이 종종 바뀌는 것을 경험하게 됩니다.


권한 관련 옵션이 없는 도커앱은 아래의 경우를 생각해 볼 수 있고

1) 루트로 실행됨 (혹시라도 앱에 악성코드나 취약점이 있어서 호스트로 접근 가능하다면 보안 위협)

2) 랜덤 생성된 유저로 실행됨 (php-fpm이나 셀레니움 같이 백엔드 데몬만 떠있어서 요청을 처리하고 돌려주는 단순 기능이면 상관없음)


권한 관리가 되어 있는데도 제대로 지정해주지 않는 다음의 경우도 있겠네요.

1) 귀찮아서 puid=0 pgid=0 넣어서 루트로 실행한다. 위의 1)번과 동일한 상황

2) 지정해주지 않는다. == 도커 컨테이너에게만 abc라고 알려진 911 유저가 활개치고 다닐 수 있음.


정리하면 이렇습니다.


제가 만들어 쓰는 도커 이미지도 간단한거 빼고는 다 puid/pgid를 입력하게 되어 있으니 왠만해서는 입력해서 쓰시는걸 추천합니다.



이치로 님의 게시글 댓글
SIGNATURE
회원가입일 : 2004-08-24
쪽지는 바로바로 확인 못합니다.
 :)
서명 더 보기 서명 가리기
  • 주소복사
  • Facebook
  • X(Twitter)
댓글 • [16]
wanderrr
IP 110.♡.14.31
02-15 2019-02-15 19:25:17
·
늘 좋은정보 감사합니다^^ Qnap(ts-251)에서 이치로님의 도커설치하고 guid,puid생성을 할수 없어 헤매고 있지만(어떻게 생성하는지를ㅠㅠ,tvh epg를 불러오지 못하고 있네요^^) 언젠가는 설정할 수 있을거라 기대해봅니다^^ 현재는 그냥 iptv 몇 안되는 채널 보고 있습니다. 몇번 정독해야겠네요~ 수고많으셨습니다^^
이치로
IP 137.♡.218.202
02-15 2019-02-15 21:33:04
·
아래 올려주신 정보로 id를 알아내고 입력해주면 됩니다. 어렵지 않아요.
liante0904
IP 118.♡.118.76
02-15 2019-02-15 20:26:13
·
개발자지만 도커를 시놀로지에서 처음 알고 GUI로만 쓰다가.. transmission 쓰면서도 저도 puid guid때문에 하루정도 고생한적이 있네요.
https://www.linuxserver.io/docs/puid-pgid/
비슷한 내용이 여기에 적혀 있는데.. 이 내용 찾는것도 상당히 힘들었던걸로.. ㅎㅎ
이치로
IP 137.♡.218.202
02-15 2019-02-15 21:34:40
·
시놀은 독자 권한 체계가 있어서 하다가 잘 안되서 시놀에서는 도커 안쓰는걸로 하고 접었는데 요새는 어떤지 모르겠네요.
liante0904
IP 118.♡.118.76
02-15 2019-02-15 23:14:57 / 수정일: 2019-02-15 23:15:46
·
@이치로님 이미 repo 메인테이너셔서 아시겠지만.. 도커라는게 가상화를 통해서 환경에 구애 받지 않는 배포와 사용이 목적인데.. 조금 아이러니 하긴 합니다.. 아무래도 하드웨어와 직접적으로 interaction하는 것들은.. 확실히 리눅스 자체를 좀 알아야 쓸수 있긴 하다는 생각도 들어요
시놀로지가 엄연히 리눅스인데도.. syno로 시작하는 커스텀이 꽤 많은지라.. 그런듯해요
이치로
IP 137.♡.218.202
02-16 2019-02-16 15:07:05
·
네 특히 사용자 권한 쪽이 그런것 같아요.
삭제 되었습니다.
이치로
IP 137.♡.218.202
02-15 2019-02-15 21:34:53
·
시놀 유저 계정이죠.
아이고성
IP 121.♡.57.231
02-15 2019-02-15 21:35:32 / 수정일: 2019-02-15 21:50:21
·
잘 읽었습니다. 몇가지 질문드려도 될까요
1. id 911은 모든 도커이미지에서 사용되는 건가요? 아니면 이치로님께서 루트권한을 주지 않기 위해서 이치로님의 도커 이미지에서만 911로 지정되도록 해두신 건가요?

2. 다수의 설치기들을 보면 puid, pgid를 0으로 루트권한을 주는데. 그렇게 하면 글에서 말씀하신 접근문제, 보안등의 문제가 다시 발생하는게 아닌지 궁금합니다. 이건 다른 문제인가요?
이치로
IP 137.♡.218.202
02-15 2019-02-15 22:21:43 / 수정일: 2019-02-15 22:29:25
·
1. linuxserver의 이미지에서 그렇게 쓰길래 따라하고 있고 다른 많은 이미지 제작에서도 사용되는 방법입니다. abc에 911은 더미라고 생각하시면 됩니다.

2. 다수의 설치기 어떤 곳에서 그러던가요? (공격아님) 보통 권장하는 방법이 아닐텐데요...
아이고성
IP 223.♡.23.96
02-15 2019-02-15 22:32:02
·
@이치로님 답변 감사합니다:) 구글에 설치기들은 site:clien.net puid=0으로 검색하면 뜹니다. tvh라서 그런걸까요?
이치로
IP 137.♡.218.202
02-15 2019-02-15 22:40:22
·
@아이고성님 저도 사실 초반에는 귀찮아서 0/0넣고 썼는데 이제는 부득이한 경우를 제외하고는 안합니다. 그 부득이한 경우라하면 tvheadend vaapi를 실행할때 /dev/dri에 접근해야 하는데 이럴때 좀 더 높은 권한이 요구될 때가 있습니다. 그런 경우에 사용자들이 잘 안되면 0/0으로 해보라는 조언이 굳어져서 그렇게 된게 아닐까 싶네요.
아이고성
IP 121.♡.57.231
02-15 2019-02-15 22:41:56
·
@이치로님 그렇군요... 감사합니다.
이치로
IP 137.♡.218.202
02-16 2019-02-16 15:07:53
·
글을 고치고 덧붙이고 했더니 동어반복에 엉망이네요. 감안해서 봐주시길...
서버
IP 39.♡.190.216
02-17 2019-02-17 21:57:37 / 수정일: 2019-02-17 21:59:22
·
이치로님 도움좀 부탁드립니다 ㅠ
도커도 완전초보인데 어렵게 설정하는거 하나하나 해서 잘사용중입니다
download: 필터를 활용해서 토렌트파일 백업하려고 여러사이트들 적용중에보니
마그넷링크로 제공하는 사이트는 오류가 나더라구요 그래서 공홈검색해보니
마그넷링크로 제공되면 파일로저장하기위해선 convert_magnet: yes 필터를써야 한다고 되있고
libtorrent패키지 가 필요하다고 되어있네요 또 열심히 검색해보니
https://pypi.org/ pypi 공식패키지에 litorrent가 누락되어있다고 확인하였고
대체제로 docker run wiserain_flexget pip install libtorrent-test
pip install vext.libtorrent
을사용해서 설치까진 했는데 파일설치만가지곤 작동하지않는지 플렉스겟에선 여전히 오류가 나네요 ㅠ
"https://discuss.flexget.com/t/solved-convert-magnet-cannot-work-libtorrent-ceased-to-exist/3537/2"
공홈에서 저와 똑같은 이유로 올라온 문제고 저분은 해결이 되었다는데
제가 초보라 봐도 하나도 모르겠습니다
단순하게는 저인스톨한 리브토렝을 실행하면 될거같기도해서 실행하는법은 모르지만
일단 도커 컨터이너에 접속해보려고 docker exec -t -i wiserain_flexget /bin/bash 해도 접속은 안되고
개인선에서 찾아볼거 정말 다찾아보고 막혀서 질문드립니다 ㅠ
저렇게 설치까지 한다음 어떻게 해야하는지 도움이 필요합니다
이치로
IP 182.♡.65.7
02-17 2019-02-17 22:29:18
·
서버님// libtorrent해봤는데 잘안되더군요. python 2.7만 지원하구요.
서버
IP 39.♡.190.216
02-17 2019-02-17 22:38:20 / 수정일: 2019-02-17 22:38:40
·
@이치로님 아 그럼 저해결하신분은 파이썬 2.7을 사용해서 된거겠군여 다른 방법을 찾아봐야겠네요 확인해봐주셔서 감사합니다
새로운 댓글이 없습니다.
이미지 최대 업로드 용량 15 MB / 업로드 가능 확장자 jpg,gif,png,jpeg,webp
지나치게 큰 이미지의 크기는 조정될 수 있습니다.
목록으로
글쓰기
글쓰기
목록으로 댓글보기 이전글 다음글
아이디  ·  비밀번호 찾기 회원가입
이용규칙 운영알림판 운영소통 재검토요청 도움말 버그신고
개인정보처리방침 이용약관 책임의 한계와 법적고지 청소년 보호정책
©   •  CLIEN.NET
보안 강화를 위한 이메일 인증
안전한 서비스 이용을 위해 이메일 인증을 완료해 주세요. 현재 회원님은 이메일 인증이 완료되지 않은 상태입니다.
최근 급증하는 해킹 및 도용 시도로부터 계정을 보호하기 위해 인증 절차가 강화되었습니다.

  • 이메일 미인증 시 글쓰기, 댓글 작성 등 게시판 활동이 제한됩니다.
  • 이후 새로운 기기에서 로그인할 때마다 반드시 이메일 인증을 거쳐야 합니다.
  • 2단계 인증 사용 회원도 최초 1회는 반드시 인증하여야 합니다.
  • 개인정보에서도 이메일 인증을 할 수 있습니다.
지금 이메일 인증하기
등록된 이메일 주소를 확인하고 인증번호를 입력하여
인증을 완료해 주세요.