덜 개방적이고 덜 모호한 권한은 무엇입니까?

덜 개방적이고 덜 모호한 권한은 무엇입니까?

문제를 설명해 드리겠습니다.

rsfile.key가 필요합니다.

mkdir keys
openssl rand -base64 768 > rsfile.key

rskey.file권한이 너무 공개되면 MongoDB가 시작되지 않습니다. rskey.file을 Docker로 이동해야 하므로 Docker는 rskey.file에 액세스해야 합니다. 먼저 chmod 600을 설정합니다.

sudo chmod 600 ./keys/

이것은 작동하지 않습니다. MongoDB는 권한이 너무 열려 있기 때문에 작동을 거부합니다. 아마도 소유권 때문일까요? MongoDB는 일반적으로 Docker 컨테이너에서 999를 사용합니다.

sudo chown 999:999 ./keys/rsfile.key 

그러면 MongoDB가 파일에 액세스할 수 있지만 Docker는 더 모호한 권한으로 인해 파일을 컨테이너로 이동할 수 없습니다. 이렇게 하지 않으면 chown 999:999MongoDB는 파일에 액세스할 수 없지만 Docker는 파일을 컨테이너로 이동할 수 있습니다.

파일 대신 폴더의 소유권을 설정하고 Docker가 폴더를 컨테이너로 이동하도록 하면,

sudo chmod 0444 ./keys/

다시는 작동하지 않습니다. Docker의 MongoDB는 읽기 전용 폴더의 파일을 읽을 수 없습니다.

#!/bin/bash

mkdir keys
openssl rand -base64 768 > rsfile.key
sudo cp rsfile.key ./keys/rsfile.key
sudo chmod 0444 ./keys/
sudo chown 999:999 ./keys/rsfile.key
# Start MongoDB service
docker-compose up -d
  mongodb:
    container_name: mongodb 
    ...
    volumes:
      - ./container-data/mongo/db:/data/db
      - ./keys/:/etc/mongodb/pki/

여기서 무엇을 해야 합니까?

답변1

디렉터리는 다음에서 액세스할 수 있어야 합니다.

chmod 700 keys

그러면 컨테이너 내부에 키 파일이 표시됩니다. 그런 다음 파일 자체의 권한을 제한해야 합니다.

chmod 600 keys/rsfile.key

Docker는 파일을 이동하거나 복사하지 않으며, 포함된 볼륨을 탑재하여 컨테이너에서 해당 파일을 사용할 수 있도록 만듭니다.

관련 정보