Description 🛠️ 계획된 개발 기능
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
Reactions are currently unavailable
You can’t perform that action at this time.
🛠️ 계획된 개발 기능
/etc/sudoers.d/$USER_ID를 로컬 파일로 생성하여 sudo가 정상 동작하도록 합니다.🛠 기능 구현 세부사항
root to guest(root_squash)환경에서는 NFS 위 sudoers 파일의 owner가nobody:nogroup로 저장되어 sudo가 해당 파일을 거부합니다./etc/sudoers.d/<user>를 NFS subPath로 마운트하지 않고, DECS 컨테이너 내부 entrypoint에서 직접 생성/etc/sudoers.d/$USER_IDroot:root0440$USER_ID ALL=(ALL) NOPASSWD:ALL/etc/sudoers에 직접 append하던 방식은 제거하고, sudoers.d 파일 기반으로 관리합니다.🛠 참고사항
root to guest정책에 의해 NFS 접근 시 root는 guest/nobody로 매핑됩니다.📝 check-lists