
왜 제대로 진행되지 않는지 찾으려고 몇 시간을 보냈지만 이제 포기하고 여기에 있습니다.
내 설정/문제: SSH를 통해 연결하는 원격 VPS가 있습니다(pub/priv 키, 비밀번호 없음).
사용자는 데비안입니다.
이 VPS에서는 도커 컨테이너를 실행합니다 postgres:14.3-alpine
.
이 도커에는 /home/debian에 두 개의 볼륨이 마운트되어 있습니다:
postgres-certs
postgres-data
Docker에 있는 사용자의 사용자/그룹 ID는 70입니다. 추가 정보여기:
아시다시피 인증서에 대한 보안 규칙이 있으므로 위 링크에 설명된 대로 postgres-certs
폴더에 대한 권한을 640으로 설정했습니다.
drw-r----- 2 0 70 4096 jun 7 22:45 postgres-certs
drwxr----- 19 70 1000 4096 jun 11 20:40 postgres-data
보시다시피 두 폴더 모두 그룹 읽기 권한이 있습니다.
내 그룹을 찾아주세요:
debian@db-dev:~$ id
uid=1000(debian) gid=1000(debian) groups=1000(debian),70(docker-pg-alpine),998(docker)
보시다시피 저는 두 폴더에 정의된 것과 동일한 그룹 70과 1000에 속해 있습니다.
이 폴더 중 하나에 파일을 분류하려고 하면 다음과 같은 결과가 나타납니다(물론 sudo를 사용하면 작동합니다).
debian@db-dev:~$ cat postgres-certs/server.crt
cat: postgres-certs/server.crt: Permission denied
파일이 그의 디렉토리와 동일한 권한을 가지고 있음을 증명하기 위해:
debian@db-dev:~$ sudo ls -ln postgres-certs/server.crt
-rw-r----- 1 0 70 2903 jun 7 22:44 postgres-certs/server.crt
예, 로그아웃했습니다(ssh 연결 끊기, 심지어 재부팅). 문제가 발생하지 않는지 확인하기 위해 컨테이너도 중지했습니다.
폴더에 그룹 읽기 권한이 있고 내가 그룹에 속해 있는데 왜 이 폴더에 있는 파일을 분류할 수 없는지 이해가 안 됩니다...
여러분이 무엇이 잘못되었는지 찾을 수 있다면 정말 좋을 것입니다.
답변1
x
파일에 액세스하려면 디렉터리에 대한 설정이 필요합니다 .
파일의 경우 (x)를 사용하면 파일이 프로그램인 경우 실행할 수 있습니다.
디렉터리의 경우 (x)를 사용하면 디렉터리를 입력하고 파일에 액세스할 수 있습니다.
에 따르면맨 chmod
페이지, (x)는 디렉토리에 대한 검색 권한을 허용합니다.
rwxXst 문자는 영향을 받는 사용자에 대한 파일 모드 비트를 선택합니다. 읽기(r), 쓰기(w), 실행(또는 디렉터리 검색)(x), 파일이 디렉터리이거나 이미 일부에 대한 실행 권한이 있는 경우에만 실행/검색합니다. 사용자(X), 실행 시 사용자 또는 그룹 ID 설정, 제한된 삭제 플래그 또는 고정 비트(t).
이에 따르면유닉스 파일 시스템 문서, (x)를 사용하면 디렉터리에 들어가 파일에 액세스할 수 있습니다.
디렉토리의 경우 실행 권한을 사용하면 디렉토리에 들어갈 수 있고(예: CD로 들어갈 수 있음) 해당 파일에 액세스할 수 있습니다.
나중에 참고할 수 있도록, 다음을 사용할 수 있습니다.
sudo chmod g+x ~/postgres-certs
디렉토리의 그룹에 대한 (x) 권한을 추가합니다.
그러나 권한을 650으로 변경하는 대신 다음을 사용해야 합니다.
sudo cat postgres-certs/server.crt
대신 디렉터리에 설정된 기본 권한을 유지할 수 있습니다.