Skip to content

[ feat ] NFS root_squash 도입에 따른 마운트 구조 변경 #34

Description

@dongmin0204

🛠️ 계획된 개발 기능

  • DECS 컨테이너 내부 sudo 권한 처리 방식을 NFS 기반에서 컨테이너 로컬 생성 방식으로 변경합니다.
  • config-server는 passwd/group/shadow 계정 파일만 NFS로 관리하고, sudoers.d 파일은 더 이상 생성/마운트하지 않는 구조로 분리
  • DECS entrypoint에서 컨테이너 시작 시 /etc/sudoers.d/$USER_ID를 로컬 파일로 생성하여 sudo가 정상 동작하도록 합니다.

🛠 기능 구현 세부사항

  • Synology NFS root to guest(root_squash) 환경에서는 NFS 위 sudoers 파일의 owner가 nobody:nogroup로 저장되어 sudo가 해당 파일을 거부합니다.
  • 이를 해결하기 위해 /etc/sudoers.d/<user>를 NFS subPath로 마운트하지 않고, DECS 컨테이너 내부 entrypoint에서 직접 생성
  • 생성되는 sudoers 파일은 아래 조건을 만족해야 합니다.
    • 경로: /etc/sudoers.d/$USER_ID
    • 소유자: root:root
    • 권한: 0440
    • 내용: $USER_ID ALL=(ALL) NOPASSWD:ALL
  • 기존 /etc/sudoers직접 append하던 방식은 제거하고, sudoers.d 파일 기반으로 관리합니다.

🛠 참고사항

  • sudo 권한은 컨테이너 내부 작업용
  • 컨테이너에서 sudo로 root가 되더라도 Synology NFS의 root to guest 정책에 의해 NFS 접근 시 root는 guest/nobody로 매핑됩니다.
  • 따라서 다른 사용자 디렉토리 접근 권한은 여전히 UID/GID, 그룹, ACL, NFS export 정책에 의해 제어됩니다.
  • 새 이미지 배포 후 컨테이너 내부에서 아래 명령으로 확인합니다.

📝 check-lists

  • [ ]

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions